Java Servlets
-
Upload
ivo-calado -
Category
Documents
-
view
249 -
download
0
Transcript of Java Servlets
Introducao Praticando Aprofundando... Gerenciamento de Sessao
Programacao para WebServlets
Ivo Calado
Instituto Federal de Educacao, Ciencia e Tecnologia de Alagoas
13 de Novembro de 2012
1 / 33 Ivo Calado IFAL
Programacao para Web
Introducao Praticando Aprofundando... Gerenciamento de Sessao
Roteiro
1 Introducao
2 Praticando
3 Aprofundando...
4 Gerenciamento de Sessao
2 / 33 Ivo Calado IFAL
Programacao para Web
Introducao Praticando Aprofundando... Gerenciamento de Sessao
Observacao sobre o conteudo
Parte deste material e baseada na apostila FJ-21 - Java paraDesenvolvimento Web desenvolvido pela Caelum(www.caelum.com.br)
3 / 33 Ivo Calado IFAL
Programacao para Web
Introducao Praticando Aprofundando... Gerenciamento de Sessao
Definicoes
O que sao?
As Servlets sao a primeira forma que veremos de criar paginasdinamicas com Java
Criaremos classes que terao a capacidade de gerar conteudoHTML!!
O nome “servlet” vem da ideia de um pequeno servidor(servidorzinho, em ingles) cujo objetivo e receber chamadasHTTP, processa-las e devolver uma resposta ao cliente
4 / 33 Ivo Calado IFAL
Programacao para Web
Introducao Praticando Aprofundando... Gerenciamento de Sessao
Definicoes
A classe javax.servlet.http.HttpServlet
Trata-se da classe principal de uma servlet
Possui um metodo generico (service) e diversos metodoscomo especıficos como doGet, doPost, doDelete, doPost eoutros representando as diversas operacoes HTTP
O nosso papel e implementa-las!
Cada um desses metodos recebem como parametro um objetoHttpServletRequest e um HttpServletResponserepresentando a requisicao e a resposta!
5 / 33 Ivo Calado IFAL
Programacao para Web
Introducao Praticando Aprofundando... Gerenciamento de Sessao
Definicoes
A classe javax.servlet.http.HttpServlet
Trata-se da classe principal de uma servlet
Possui um metodo generico (service) e diversos metodoscomo especıficos como doGet, doPost, doDelete, doPost eoutros representando as diversas operacoes HTTP
O nosso papel e implementa-las!
Cada um desses metodos recebem como parametro um objetoHttpServletRequest e um HttpServletResponserepresentando a requisicao e a resposta!
5 / 33 Ivo Calado IFAL
Programacao para Web
Introducao Praticando Aprofundando... Gerenciamento de Sessao
Nosso primeiro exemplo
O metodo doGet
p r o t e c t e d v o i d doGet ( H t t p S e r v l e t R e q u e s t r e q u e s t ,H t t p S e r v l e t R e s p o n s e r e s p o n s e )
throws S e r v l e t E x c e p t i o n , I O E x c e p t i o n {S e r v l e t O u t p u t S t r e a m out = r e s p o n s e . getOutputStream ( ) ;out . p r i n t l n ("<html >" ) ;out . p r i n t l n ("<head >" ) ;out . p r i n t l n ("<title >Minha primeira pagina dinamica </
title >" ) ;out . p r i n t l n ("</head >" ) ;out . p r i n t l n ("<body >" ) ;out . p r i n t l n ("<h1>Hello World!!!</h1>" ) ;out . p r i n t l n ("</body >" ) ;out . p r i n t l n ("</html >" ) ;}
6 / 33 Ivo Calado IFAL
Programacao para Web
Introducao Praticando Aprofundando... Gerenciamento de Sessao
Nosso primeiro exemplo
Habilitando a execucao da Servlet
Acabamos de definir uma Servlet, mas como iremos acessa-lapelo navegador?
Qual o endereco podemos acessar para fazermos com que elaexecute?
O container nao tem como saber essas informacoes, a nao serque digamos isso para ele
Para isso, vamos fazer um mapeamento de uma URLespecıfica para uma servlet atraves do arquivo web.xml, quefica dentro do WEB-INF
7 / 33 Ivo Calado IFAL
Programacao para Web
Introducao Praticando Aprofundando... Gerenciamento de Sessao
Nosso primeiro exemplo
Habilitando a execucao da Servlet
Acabamos de definir uma Servlet, mas como iremos acessa-lapelo navegador?
Qual o endereco podemos acessar para fazermos com que elaexecute?
O container nao tem como saber essas informacoes, a nao serque digamos isso para ele
Para isso, vamos fazer um mapeamento de uma URLespecıfica para uma servlet atraves do arquivo web.xml, quefica dentro do WEB-INF
7 / 33 Ivo Calado IFAL
Programacao para Web
Introducao Praticando Aprofundando... Gerenciamento de Sessao
Nosso primeiro exemplo
Web.xml
No arquivo web.xml configuramos todas as propriedades donosso projeto JavaA partir da versao 3.0 todas as configuracoes podem serrealizadas via annotations! Porem veremos isso so mais nafrente!
<? xml v e r s i o n="1.0" e n c o d i n g="UTF -8"?><web−app . . .>
<d i s p l a y−name>M e u P r i m e i r o P r o j e t o 3 . 0</ d i s p l a y−name><welcome− f i l e − l i s t>
<welcome− f i l e> i n d e x . html</ welcome− f i l e><welcome− f i l e> i n d e x . htm</ welcome− f i l e><welcome− f i l e> i n d e x . j s p</ welcome− f i l e><welcome− f i l e>d e f a u l t . html</ welcome− f i l e><welcome− f i l e>d e f a u l t . htm</ welcome− f i l e><welcome− f i l e>d e f a u l t . j s p</ welcome− f i l e>
</ welcome− f i l e − l i s t></web−app>
8 / 33 Ivo Calado IFAL
Programacao para Web
Introducao Praticando Aprofundando... Gerenciamento de Sessao
Nosso primeiro exemplo
web.xml: tags servlet e servlet-mapping
Para configurarmos a execucao da Servlet criada peloContainer fazemos uso da tag servlet
A tag servlet-mapping serve para criar um alias ou umconjunto de aliases para referenciar a servlet
9 / 33 Ivo Calado IFAL
Programacao para Web
Introducao Praticando Aprofundando... Gerenciamento de Sessao
Nosso primeiro exemplo
web.xml: exemplos de servlet e servlet-mapping
< s e r v l e t><s e r v l e t −name>m i n h a P r i m e i r a S e r v l e t</ s e r v l e t −name><s e r v l e t −c l a s s>br . edu . i f a l . M i n h a S e r v l e t</ s e r v l e t −
c l a s s></ s e r v l e t>
<s e r v l e t −mapping><s e r v l e t −name>m i n h a P r i m e i r a S e r v l e t</ s e r v l e t −name><u r l−p a t t e r n>/minha−p a g i n a</ u r l−p a t t e r n><u r l−p a t t e r n>/minha−segunda−forma−de−a c e s s o</ u r l−
p a t t e r n><u r l−p a t t e r n>/ end / l o n g o / para / minha / p a g i n a /web</ u r l−
p a t t e r n></ s e r v l e t −mapping>
10 / 33 Ivo Calado IFAL
Programacao para Web
Introducao Praticando Aprofundando... Gerenciamento de Sessao
Nosso primeiro exemplo
A estrutura de diretorios
Se voces notarem, o nosso endereco nao tem qualquer relacaocom a estrutura fısica do projeto
Trata-se de um referenciamento puramente virtual!
11 / 33 Ivo Calado IFAL
Programacao para Web
Introducao Praticando Aprofundando... Gerenciamento de Sessao
Nosso primeiro exemplo
Exercıcio
Crie sua primeira servlet. Ela deve implementar os metodosdoGet e doPost onde no doGet deve ser retornado uma paginacom uma mensagem ao usuario e no doPost com a data dodia.
Deve ser criado uma pagina HTML estatica que faca acessotanto via GET quanto via POST
12 / 33 Ivo Calado IFAL
Programacao para Web
Introducao Praticando Aprofundando... Gerenciamento de Sessao
Nosso primeiro exemplo
Possıveis erros comuns ate agora
Esquecer da barra inicial no URL pattern
Digitar errado o nome do pacote da sua servlet
Esquecer de colocar o nome da classe no mapeamento daservlet
13 / 33 Ivo Calado IFAL
Programacao para Web
Introducao Praticando Aprofundando... Gerenciamento de Sessao
Recuperando parametros passados
Ate agora vimos como requisitar uma pagina sem passarqualquer parametros
Para recuperar os parametros passados em um formulariousamos os metodos getParameter, getParameterMap,getParameterNames, getParameterValues
Map<Str ing , St r ing [ ]> mapa = r e q u e s t . getParameterMap ( ) ;P r i n t W r i t e r out = r e s p o n s e . g e t W r i t e r ( ) ;f o r ( S t r i n g s : mapa . k e y S e t ( ) ) {out . p r i n t l n ("Chave: " + s ) ;f o r ( S t r i n g s t r : mapa . g e t ( s ) ) {out . p r i n t l n ("Valor: " + s t r ) ;}out . p r i n t l n ( ) ;
14 / 33 Ivo Calado IFAL
Programacao para Web
Introducao Praticando Aprofundando... Gerenciamento de Sessao
Atividade
Altere o exemplo anterior para inclur um formulario deinscricao de uma pessoa. No lado servidor, recupere os valorespassados e salve em um arquivo XML formando uma agendade contatos.
15 / 33 Ivo Calado IFAL
Programacao para Web
Introducao Praticando Aprofundando... Gerenciamento de Sessao
Capturando excecoes
Tratando excecoes dentro da Servlet
O que acontece se alguma excecao for lancada na nossaaplicacao?
a stacktrace da excecao ocorrida sera mostrada em uma telapadrao do container
Qual o problema disso?
O que seria ideal acontecer? O ideal seria mostrarmos umapagina de erro dizendo: “Um erro ocorreu” e com informacoesde como notificar o administrador
Para fazermos isso, basta configurarmos nossa aplicacaodizendo que, caso aconteca uma Exception no web.xml!
16 / 33 Ivo Calado IFAL
Programacao para Web
Introducao Praticando Aprofundando... Gerenciamento de Sessao
Capturando excecoes
Tratando excecoes dentro da Servlet
O que acontece se alguma excecao for lancada na nossaaplicacao?
a stacktrace da excecao ocorrida sera mostrada em uma telapadrao do container
Qual o problema disso?
O que seria ideal acontecer? O ideal seria mostrarmos umapagina de erro dizendo: “Um erro ocorreu” e com informacoesde como notificar o administrador
Para fazermos isso, basta configurarmos nossa aplicacaodizendo que, caso aconteca uma Exception no web.xml!
16 / 33 Ivo Calado IFAL
Programacao para Web
Introducao Praticando Aprofundando... Gerenciamento de Sessao
Capturando excecoes
Tratando excecoes dentro da Servlet
O que acontece se alguma excecao for lancada na nossaaplicacao?
a stacktrace da excecao ocorrida sera mostrada em uma telapadrao do container
Qual o problema disso?
O que seria ideal acontecer?
O ideal seria mostrarmos umapagina de erro dizendo: “Um erro ocorreu” e com informacoesde como notificar o administrador
Para fazermos isso, basta configurarmos nossa aplicacaodizendo que, caso aconteca uma Exception no web.xml!
16 / 33 Ivo Calado IFAL
Programacao para Web
Introducao Praticando Aprofundando... Gerenciamento de Sessao
Capturando excecoes
Tratando excecoes dentro da Servlet
O que acontece se alguma excecao for lancada na nossaaplicacao?
a stacktrace da excecao ocorrida sera mostrada em uma telapadrao do container
Qual o problema disso?
O que seria ideal acontecer? O ideal seria mostrarmos umapagina de erro dizendo: “Um erro ocorreu” e com informacoesde como notificar o administrador
Para fazermos isso, basta configurarmos nossa aplicacaodizendo que, caso aconteca uma Exception no web.xml!
16 / 33 Ivo Calado IFAL
Programacao para Web
Introducao Praticando Aprofundando... Gerenciamento de Sessao
Capturando excecoes
Configurando excecoes no Web.xml
<er ro r−page><e x c e p t i o n−type> j a v a . l a n g . E x c e p t i o n</ e x c e p t i o n−type>< l o c a t i o n>/ e r r o . html</ l o c a t i o n>
</ er ro r−page>
17 / 33 Ivo Calado IFAL
Programacao para Web
Introducao Praticando Aprofundando... Gerenciamento de Sessao
Capturando excecoes
Tratando codigos de erros
O que acontece se tentarmos acessar uma pagina inexistente?
Qual seria a abordagem mais apropriada?
<er ro r−page><er ro r−code>404</ er ro r−code>< l o c a t i o n>/ 4 0 4 . html</ l o c a t i o n>
</ er ro r−page>
18 / 33 Ivo Calado IFAL
Programacao para Web
Introducao Praticando Aprofundando... Gerenciamento de Sessao
Capturando excecoes
Tratando codigos de erros
O que acontece se tentarmos acessar uma pagina inexistente?
Qual seria a abordagem mais apropriada?
<er ro r−page><er ro r−code>404</ er ro r−code>< l o c a t i o n>/ 4 0 4 . html</ l o c a t i o n>
</ er ro r−page>
18 / 33 Ivo Calado IFAL
Programacao para Web
Introducao Praticando Aprofundando... Gerenciamento de Sessao
Capturando excecoes
Enviando mensagem de erro
Pesquisar sobre o processo de envio de mensagens de erro e comoisso se relaciona com ponto anterior! Ver metodoresponse.sendError
19 / 33 Ivo Calado IFAL
Programacao para Web
Introducao Praticando Aprofundando... Gerenciamento de Sessao
Capturando excecoes
Metodos Init e Destroy
Toda servlet deve possuir um construtor default
Metodos init e destroy sao chamados no inıcio e no fim dociclo de vida da servlet
Quais seriam um possıvel uso de tais metodos?
20 / 33 Ivo Calado IFAL
Programacao para Web
Introducao Praticando Aprofundando... Gerenciamento de Sessao
Capturando excecoes
Metodos Init e Destroy
Toda servlet deve possuir um construtor default
Metodos init e destroy sao chamados no inıcio e no fim dociclo de vida da servlet
Quais seriam um possıvel uso de tais metodos?
20 / 33 Ivo Calado IFAL
Programacao para Web
Introducao Praticando Aprofundando... Gerenciamento de Sessao
Capturando excecoes
Recuperando parametros iniciais do servlet
E possıvel definir parametros iniciais na servlet no web.xml erecupera-lo no metodo init
< s e r v l e t><d e s c r i p t i o n></ d e s c r i p t i o n><d i s p l a y−name>S e r v l e t 1</ d i s p l a y−name><s e r v l e t −name>S e r v l e t 1</ s e r v l e t −name><s e r v l e t −c l a s s>S e r v l e t 1</ s e r v l e t −c l a s s>< i n i t −param><param−name>Nome</param−name><param−va lue>V a l o r</param−va lue></ i n i t −param></ s e r v l e t>
21 / 33 Ivo Calado IFAL
Programacao para Web
Introducao Praticando Aprofundando... Gerenciamento de Sessao
Capturando excecoes
Recuperando parametros iniciais do servlet
E possıvel definir parametros iniciais na servlet no web.xml erecupera-lo no metodo init
< s e r v l e t><d e s c r i p t i o n></ d e s c r i p t i o n><d i s p l a y−name>S e r v l e t 1</ d i s p l a y−name><s e r v l e t −name>S e r v l e t 1</ s e r v l e t −name><s e r v l e t −c l a s s>S e r v l e t 1</ s e r v l e t −c l a s s>< i n i t −param><param−name>Nome</param−name><param−va lue>V a l o r</param−va lue></ i n i t −param></ s e r v l e t>
21 / 33 Ivo Calado IFAL
Programacao para Web
Introducao Praticando Aprofundando... Gerenciamento de Sessao
Capturando excecoes
Redirecionando paginas
Existem duas formas de realizar redirecionamento
sendRedirect: retorna um codigo ao browser indicando que eledeve realizar o redirecionamento
forward: realiza o redirecionamento internamente
Alem disso, existe a possibilidade de utilizar o metodo include!!.
22 / 33 Ivo Calado IFAL
Programacao para Web
Introducao Praticando Aprofundando... Gerenciamento de Sessao
Capturando excecoes
sendRedirect e forward
p r o t e c t e d v o i d doGet ( H t t p S e r v l e t R e q u e s t r e q u e s t ,H t t p S e r v l e t R e s p o n s e r e s p o n s e )
throws S e r v l e t E x c e p t i o n , I O E x c e p t i o n {r e s p o n s e . s e n d R e d i r e c t ("http://www.google.com" ) ;}
p r o t e c t e d v o i d doGet ( H t t p S e r v l e t R e q u e s t r e q u e s t ,H t t p S e r v l e t R e s p o n s e r e s p o n s e )
throws S e r v l e t E x c e p t i o n , I O E x c e p t i o n {R e q u e s t D i s p a t c h e r d i s p a t c h e r = r e q u e s t .
g e t R e q u e s t D i s p a t c h e r ("s2" ) ;d i s p a t c h e r . f o r w a r d ( r e q u e s t , r e s p o n s e ) ;}
23 / 33 Ivo Calado IFAL
Programacao para Web
Introducao Praticando Aprofundando... Gerenciamento de Sessao
Capturando excecoes
include
p r o t e c t e d v o i d doGet ( H t t p S e r v l e t R e q u e s t r e q u e s t ,H t t p S e r v l e t R e s p o n s e r e s p o n s e )
throws S e r v l e t E x c e p t i o n , I O E x c e p t i o n {R e q u e s t D i s p a t c h e r d i s p a t c h e r = r e q u e s t .
g e t R e q u e s t D i s p a t c h e r ("s2" ) ;d i s p a t c h e r . i n c l u d e ( r e q u e s t , r e s p o n s e ) ;}
Qual a diferenca entre forward e include?
forward: a servlet atual nao pode alterar a stream de saıdainclude: a servlet atual pode alterar (a pagina redirecionada e“inclusa” na resposta original)
Como inserir conteudos padroes estaticos?
24 / 33 Ivo Calado IFAL
Programacao para Web
Introducao Praticando Aprofundando... Gerenciamento de Sessao
Capturando excecoes
include
p r o t e c t e d v o i d doGet ( H t t p S e r v l e t R e q u e s t r e q u e s t ,H t t p S e r v l e t R e s p o n s e r e s p o n s e )
throws S e r v l e t E x c e p t i o n , I O E x c e p t i o n {R e q u e s t D i s p a t c h e r d i s p a t c h e r = r e q u e s t .
g e t R e q u e s t D i s p a t c h e r ("s2" ) ;d i s p a t c h e r . i n c l u d e ( r e q u e s t , r e s p o n s e ) ;}
Qual a diferenca entre forward e include?
forward: a servlet atual nao pode alterar a stream de saıdainclude: a servlet atual pode alterar (a pagina redirecionada e“inclusa” na resposta original)
Como inserir conteudos padroes estaticos?
24 / 33 Ivo Calado IFAL
Programacao para Web
Introducao Praticando Aprofundando... Gerenciamento de Sessao
Capturando excecoes
include
p r o t e c t e d v o i d doGet ( H t t p S e r v l e t R e q u e s t r e q u e s t ,H t t p S e r v l e t R e s p o n s e r e s p o n s e )
throws S e r v l e t E x c e p t i o n , I O E x c e p t i o n {R e q u e s t D i s p a t c h e r d i s p a t c h e r = r e q u e s t .
g e t R e q u e s t D i s p a t c h e r ("s2" ) ;d i s p a t c h e r . i n c l u d e ( r e q u e s t , r e s p o n s e ) ;}
Qual a diferenca entre forward e include?
forward: a servlet atual nao pode alterar a stream de saıdainclude: a servlet atual pode alterar (a pagina redirecionada e“inclusa” na resposta original)
Como inserir conteudos padroes estaticos?
24 / 33 Ivo Calado IFAL
Programacao para Web
Introducao Praticando Aprofundando... Gerenciamento de Sessao
O que e?
O que e?
Uma das caracterısticas fundamentais do HTTP e nao possuirestado. Mas o que viria a ser isso?
Isso que dizer que o HTTP nao guarda lembranca derequisicoes anteriores
Qual o problema disso? Qual seria uma situacao onde guardarinformacoes de sessoes e importante?
Login!
Sendo assim, precisamos, implementar em nıvel de servlet, ocontrole de sessao!
25 / 33 Ivo Calado IFAL
Programacao para Web
Introducao Praticando Aprofundando... Gerenciamento de Sessao
O que e?
O que e?
Uma das caracterısticas fundamentais do HTTP e nao possuirestado. Mas o que viria a ser isso?
Isso que dizer que o HTTP nao guarda lembranca derequisicoes anteriores
Qual o problema disso? Qual seria uma situacao onde guardarinformacoes de sessoes e importante?
Login!
Sendo assim, precisamos, implementar em nıvel de servlet, ocontrole de sessao!
25 / 33 Ivo Calado IFAL
Programacao para Web
Introducao Praticando Aprofundando... Gerenciamento de Sessao
Quais abordagens existe?
Quais abordagens existe?
Existem basicamente 4 formas de prover sessao
Reescrita de URL
Campos ocultos
Cookies
Objetos de sessao
26 / 33 Ivo Calado IFAL
Programacao para Web
Introducao Praticando Aprofundando... Gerenciamento de Sessao
Quais abordagens existe?
1a abordagem: Reescrita de URL
Consiste em adicionar as URLs de envio, identificadores dasessao a ser acessada
Todos os forms, links etc que facam mencao a URL deve seralterado
Parametros sao enviados na URL
27 / 33 Ivo Calado IFAL
Programacao para Web
Introducao Praticando Aprofundando... Gerenciamento de Sessao
Quais abordagens existe?
2a abordagem: Campos ocultos
Semelhante a abordagem anterior, porem o campo e enviadocomo um atributo hidden no HTML
Nao sao visıveis na URL mas sao facilmente recuperaveis!
28 / 33 Ivo Calado IFAL
Programacao para Web
Introducao Praticando Aprofundando... Gerenciamento de Sessao
Quais abordagens existe?
3a abordagem: Cookies
Cookies sao pequenos “pedacos” de informacao passado emrequisicoes e respostas HTTP
Embora seja possıvel criar um Cookie do lado cliente, ele egerado principalmente pelo servidor
Tem a estrutura de chave valor!
Cook ie c1 = new Cook ie ("MeuCookie" , "MeuValor" ) ;r e s p o n s e . addCookie ( c1 ) ;
29 / 33 Ivo Calado IFAL
Programacao para Web
Introducao Praticando Aprofundando... Gerenciamento de Sessao
Quais abordagens existe?
Definido tempo maximo de vida de um cookie
Nas abordagens anterioes os links e campos ocultospermaneciam disponıveis indefinidamente
Porem podemos querer definir um tempo limite para que asessao esteja disponıvel por um tempo limite de inatividade!
Cookie possibilita tal recurso a partir da definicao dapropriedade maxAge
Cook ie c1 = new Cook ie ("MeuCookie" , "MeuValor" ) ;c1 . setMaxAge (1000) ; // Numero de segundos que o c o o k i e
permanecer a no c l i e n t e . Apos i s s o e l e e d e s c a r t a d oe nao s e r a mais e n v i a d o
r e s p o n s e . addCookie ( c1 ) ;
30 / 33 Ivo Calado IFAL
Programacao para Web
Introducao Praticando Aprofundando... Gerenciamento de Sessao
Quais abordagens existe?
HTTPSession
As abordagens anteriores possuem series restricoes:
Atributos ocultos e reescrita de url deixam visıveis todos oscamposApesar de mais difıcei, os cookies tb podem ser visualizados!Alem disso, temos de ter o trabalho de em todas assolicitacoes adicionar as informacoes a serem enviadas demodo a manter o estado
A solucao e o HTTPSession!
Trata-se da maneira mais simples e facil de se trabalhar comgerenciamento de sessaoE mantido um mapa com todos os valores que a aplicacaoprecisar armazenarPossibilita o armazenamento de valores de tipos complexos(nao apenas String)Um identificador da sessao e automaticamente enviado viacookie pelo servlet
31 / 33 Ivo Calado IFAL
Programacao para Web
Introducao Praticando Aprofundando... Gerenciamento de Sessao
Quais abordagens existe?
Exemplo
HTTPSession s e s s i o n = r e q u e s t . g e t S e s s i o n ( t r u e ) ;s e s s i o n . s e t A t t r i b u t e ("chave" , new S t r i n g ( v a l o r ) )
Mas e se os cookies estiverem desabilitados? a sessao caira nomesmo problema classico dos cookies. A solucao e enviar o id desessao por reescrita de url.O objeto session gera um parametro jsessionid com o numero desessao.
32 / 33 Ivo Calado IFAL
Programacao para Web
Introducao Praticando Aprofundando... Gerenciamento de Sessao
Quais abordagens existe?
Exemplo
HTTPSession s e s s i o n = r e q u e s t . g e t S e s s i o n ( t r u e ) ;s e s s i o n . s e t A t t r i b u t e ("chave" , new S t r i n g ( v a l o r ) )
Mas e se os cookies estiverem desabilitados?
a sessao caira nomesmo problema classico dos cookies. A solucao e enviar o id desessao por reescrita de url.O objeto session gera um parametro jsessionid com o numero desessao.
32 / 33 Ivo Calado IFAL
Programacao para Web
Introducao Praticando Aprofundando... Gerenciamento de Sessao
Quais abordagens existe?
Exemplo
HTTPSession s e s s i o n = r e q u e s t . g e t S e s s i o n ( t r u e ) ;s e s s i o n . s e t A t t r i b u t e ("chave" , new S t r i n g ( v a l o r ) )
Mas e se os cookies estiverem desabilitados? a sessao caira nomesmo problema classico dos cookies. A solucao e enviar o id desessao por reescrita de url.O objeto session gera um parametro jsessionid com o numero desessao.
32 / 33 Ivo Calado IFAL
Programacao para Web
Introducao Praticando Aprofundando... Gerenciamento de Sessao
Quais abordagens existe?
Filtros
Suponha que tenhamos nossa aplicacao tenha 100 servlets edesejamos adicionar verificacao de autenticacao em todoseles. Teremos de verificar o id em todos os servlets?
33 / 33 Ivo Calado IFAL
Programacao para Web