java servlets - barbon.com.br · java servlets sylvio barbon jr 3 d ecembre 2015. dc - uellaborat...

21
dc - uel laborat´ orio de programa¸ ao Java Servlets Sylvio Barbon Jr <[email protected]> 3 d´ ecembre 2015

Upload: trinhdung

Post on 19-Nov-2018

221 views

Category:

Documents


0 download

TRANSCRIPT

d c - u e l l a b o r a t o r i o d e p r o g r a m a c a o

Java Servlets

Sylvio Barbon Jr <[email protected]>

3 decembre 2015

d c - u e l l a b o r a t o r i o d e p r o g r a m a c a o

Escopos Web

• Escopo : Areas de memorias onde um objeto (variavel) evalido.

Pagina

PageContext : variaveis declaradas neste escoppo sao validasapenas na pagina ;

Requisicao

HttpServletRequest : Os dados sao validos somente pararequisicoes, quando o servidor responder para o cliente, nao estaramais valida.

Sylvio Barbon Jr <[email protected]> — Laboratorio de Programacao - 5COP088 — 3 decembre 2015

2/21

d c - u e l l a b o r a t o r i o d e p r o g r a m a c a o

Escopos Web

Sessao

Session : Os dados estarao disponıveis em toda a sessao dedeterminado ”browser”. Exemplo, usuario de um login que mantemas informacoes armazenadas durante toda a sessao (tempo oulogout).

Aplicacao

ServletContext : Os dados estarao disputados durante toda avida da aplicacao no servidor de aplicacao web.ServletContext context = request.getSession().getServletContext() ;

Sylvio Barbon Jr <[email protected]> — Laboratorio de Programacao - 5COP088 — 3 decembre 2015

3/21

d c - u e l l a b o r a t o r i o d e p r o g r a m a c a o

Escopos Web

• Como manipular os dados de um escopo ?

Set

public void setAttribute(String chave, Object objeto)Insere um valor no escopo selecionado, de acordo com uma chavepara a sua futura recuperacao.

Get

public Object getAttribute(String chave)Recupera o valor dado uma chave, lembrando que normalmentedeve-se fazer um ”cast” para o objeto desejado.

Sylvio Barbon Jr <[email protected]> — Laboratorio de Programacao - 5COP088 — 3 decembre 2015

4/21

d c - u e l l a b o r a t o r i o d e p r o g r a m a c a o

Escopos Web

Exemplo : Inserindo objeto na Request

Sylvio Barbon Jr <[email protected]> — Laboratorio de Programacao - 5COP088 — 3 decembre 2015

5/21

d c - u e l l a b o r a t o r i o d e p r o g r a m a c a o

Escopos Web

Exemplo : Recuperando objeto da Request

Sylvio Barbon Jr <[email protected]> — Laboratorio de Programacao - 5COP088 — 3 decembre 2015

6/21

d c - u e l l a b o r a t o r i o d e p r o g r a m a c a o

Escopos Web

• Gerencia de Sessao :• Existem 3 solucoes tıpicas para implementar a sessao :

• Cookie : E uma estrutura de dados que armazena informacoesdo browser do cliente, podendo ser requisitadas pelo servidor.

• URL-rewriting : A URL e reescrita inserindo um identificadorpelo servidor no final da URL, possibilitando identificar ocliente.

• Campos Hidden : Sao introduzidos campos ocultos aosformularios HTML com um valor definido para a sessao emparticular. E um metodo limitado e pouco elegante.

Sylvio Barbon Jr <[email protected]> — Laboratorio de Programacao - 5COP088 — 3 decembre 2015

7/21

d c - u e l l a b o r a t o r i o d e p r o g r a m a c a o

Escopos Web

Exemplo : Declarando um objeto HttpSession

Sylvio Barbon Jr <[email protected]> — Laboratorio de Programacao - 5COP088 — 3 decembre 2015

8/21

d c - u e l l a b o r a t o r i o d e p r o g r a m a c a o

Escopos Web

Exemplo : Usando HttpSession

Sylvio Barbon Jr <[email protected]> — Laboratorio de Programacao - 5COP088 — 3 decembre 2015

9/21

d c - u e l l a b o r a t o r i o d e p r o g r a m a c a o

Escopos Web

Exemplo : Recuperando um objeto da HttpSession

Sylvio Barbon Jr <[email protected]> — Laboratorio de Programacao - 5COP088 — 3 decembre 2015

10/21

d c - u e l l a b o r a t o r i o d e p r o g r a m a c a o

Escopos Web

Exemplo : Removendo a HttpSession

Sylvio Barbon Jr <[email protected]> — Laboratorio de Programacao - 5COP088 — 3 decembre 2015

11/21

d c - u e l l a b o r a t o r i o d e p r o g r a m a c a o

Escopos Web

Exemplo : Logout

Sylvio Barbon Jr <[email protected]> — Laboratorio de Programacao - 5COP088 — 3 decembre 2015

12/21

d c - u e l l a b o r a t o r i o d e p r o g r a m a c a o

Escopos Web

Exemplo : Reescrita de URL

Sylvio Barbon Jr <[email protected]> — Laboratorio de Programacao - 5COP088 — 3 decembre 2015

13/21

d c - u e l l a b o r a t o r i o d e p r o g r a m a c a o

Filter Web

• Filtros sao componentes WEB indroduzidos a partir da versao2.3 das Servlets ;

• Sao componentes que se interpoe entre uma requisicao docliente e um determinado recurso ;

• Qualquer tentativa de recuperar o recurso deve passar pelofiltro, exemplo : Html, Jsp, Gif, etc.

• Os filtros funcionam interceptando as requisicoes do clienteao servidor por meio de um encadeamento de filtros.

• O uso dos Filtros Web Java, sao feitos por meio da interface :javax.servlet.Filter

Sylvio Barbon Jr <[email protected]> — Laboratorio de Programacao - 5COP088 — 3 decembre 2015

14/21

d c - u e l l a b o r a t o r i o d e p r o g r a m a c a o

Filter Web

• Os metdos da interface javax.servlet.Filter sao :

1 void init(FilterConfig config)2 void destroy()3 void doFilter(ServletRequest request, ServletResponse

response, FilterChain chain) throws IOException,ServletException

• O metodo init(FilterConfig config) e chamado pelocontainer durante a primeira vez que o filtro e carregado paraa memoria. Codigos de inicializacao devem ser inseridos noweb.xml.

• O metodo destroy() e invocado quando o filtro edescarregado da memoria. Normalmente isso ocorre quando aaplicacao e encerrada.

Sylvio Barbon Jr <[email protected]> — Laboratorio de Programacao - 5COP088 — 3 decembre 2015

15/21

d c - u e l l a b o r a t o r i o d e p r o g r a m a c a o

Filter Web

• O metodo doFilter(...) contem toda a funcionalidade dofiltro. Este metodo e chamado a cada request que interceptaruma determinada requisicao ou resposta do cliente.

• Os parametro recebidos sao os objetos :

1 ServletRequest2 ServletResponse3 FilterChain

Exemplo : Metodo doFilter(...) para criar um log de acesso

Sylvio Barbon Jr <[email protected]> — Laboratorio de Programacao - 5COP088 — 3 decembre 2015

16/21

d c - u e l l a b o r a t o r i o d e p r o g r a m a c a o

Filter Web

• Cadeia de Filtros• A sequencia da cadeia de filtros (filter chain) e determinada

pela localizacao da declaracao de um filtro no web.xml (deploydescriptor).

• A classe javax.servlet.FilterChain representa a sequencia defiltros que serao chamados antes de uma requisicao atingir seuponto final.

• Caso nao seja chamado o metodo doFilter(...), o resto dacadeia de filtros nao sera chamada (assim como o recursofinal).

• Um bom exemplo de filtro e aplicado na seguranca de umaplicativo, evitando acesso indevido a recursos de umaaplicacao obedecendo criterios implementados no metododoFilter(...).

Sylvio Barbon Jr <[email protected]> — Laboratorio de Programacao - 5COP088 — 3 decembre 2015

17/21

d c - u e l l a b o r a t o r i o d e p r o g r a m a c a o

Filter WebExemplo : Filtro para seguranca validando por sessao

Sylvio Barbon Jr <[email protected]> — Laboratorio de Programacao - 5COP088 — 3 decembre 2015

18/21

d c - u e l l a b o r a t o r i o d e p r o g r a m a c a o

Filter Web

• Assim como o mapeamento de uma Servlet, o Filter se baseiano url-pattern para interceptar uma request.

Exemplo : configuracao do Filtro ”LoggingFilter” no web.xml

Sylvio Barbon Jr <[email protected]> — Laboratorio de Programacao - 5COP088 — 3 decembre 2015

19/21

Perguntas ?

ReferenciasUse a Cabeca ! (Head First) Servlets JSP (2008)