Java Servlets - barbon.com.br · Java Servlets Sylvio Barbon Jr 3 d ecembre 2015. dc - uellaborat...
Transcript of Java Servlets - barbon.com.br · Java Servlets Sylvio Barbon Jr 3 d ecembre 2015. dc - uellaborat...
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