Beruflich Dokumente
Kultur Dokumente
ao
Praticando
Aprofundando...
Gerenciamento de Sess
ao
22 de Fevereiro de 2016
1 / 33
Programac
ao para Web
Ivo Calado
IFAL
Introduc
ao
Praticando
Aprofundando...
Gerenciamento de Sess
ao
Roteiro
Introducao
Praticando
Aprofundando...
Gerenciamento de Sessao
2 / 33
Programac
ao para Web
Ivo Calado
IFAL
Introduc
ao
Praticando
Aprofundando...
Gerenciamento de Sess
ao
3 / 33
Programac
ao para Web
Ivo Calado
IFAL
Introduc
ao
Praticando
Aprofundando...
Gerenciamento de Sess
ao
Definic
oes
O que sao?
4 / 33
Programac
ao para Web
Ivo Calado
IFAL
Introduc
ao
Praticando
Aprofundando...
Gerenciamento de Sess
ao
Definic
oes
A classe javax.servlet.http.HttpServlet
5 / 33
Programac
ao para Web
Ivo Calado
IFAL
Introduc
ao
Praticando
Aprofundando...
Gerenciamento de Sess
ao
Definic
oes
A classe javax.servlet.http.HttpServlet
5 / 33
Programac
ao para Web
Ivo Calado
IFAL
Introduc
ao
Praticando
Aprofundando...
Gerenciamento de Sess
ao
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 ,
HttpServletResponse response )
throws ServletException , IOException {
ServletOutputStream out = r e s p o n s e .
getOutputStream ( ) ;
o u t . p r i n t l n ( " <html >" ) ;
o u t . p r i n t l n ( " <head >" ) ;
o u t . p r i n t l n ( " <title > Minha primeira pagina
dinamica </ title >" ) ;
o u t . p r i n t l n ( " </ head >" ) ;
o u t . p r i n t l n ( " <body >" ) ;
o u t . p r i n t l n ( " <h1 > Hello World !!! </ h1 >" ) ;
o u t . p r i n t l n ( " </ body >" ) ;
o u t . p r i n t l n ( " </ html >" ) ;
}
6 / 33
Programac
ao para Web
Ivo Calado
IFAL
Introduc
ao
Praticando
Aprofundando...
Gerenciamento de Sess
ao
7 / 33
Programac
ao para Web
Ivo Calado
IFAL
Introduc
ao
Praticando
Aprofundando...
Gerenciamento de Sess
ao
7 / 33
Programac
ao para Web
Ivo Calado
IFAL
Introduc
ao
Praticando
Aprofundando...
Gerenciamento de Sess
ao
Web.xml
No arquivo web.xml configuramos todas as propriedades do
nosso projeto Java
A partir da versao 3.0 todas as configurac
oes podem ser
realizadas via annotations! Porem veremos isso so mais na
frente!
<? xml v e r s i o n=" 1.0 " e n c o d i n g=" UTF -8 " ?>
<webapp . . . >
<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 . h t ml</ 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 . ht m l</ 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 >
8 / 33
Ivo Calado
Programa
c
ao para Web
</webapp>
IFAL
Introduc
ao
Praticando
Aprofundando...
Gerenciamento de Sess
ao
9 / 33
Programac
ao para Web
Ivo Calado
IFAL
Introduc
ao
Praticando
Aprofundando...
Gerenciamento de Sess
ao
10 / 33
Programac
ao para Web
Ivo Calado
IFAL
Introduc
ao
Praticando
Aprofundando...
Gerenciamento de Sess
ao
A estrutura de diretorios
11 / 33
Programac
ao para Web
Ivo Calado
IFAL
Introduc
ao
Praticando
Aprofundando...
Gerenciamento de Sess
ao
Exerccio
12 / 33
Programac
ao para Web
Ivo Calado
IFAL
Introduc
ao
Praticando
Aprofundando...
Gerenciamento de Sess
ao
13 / 33
Programac
ao para Web
Ivo Calado
IFAL
Introduc
ao
Praticando
Aprofundando...
Gerenciamento de Sess
ao
Ivo Calado
IFAL
Introduc
ao
Praticando
Aprofundando...
Gerenciamento de Sess
ao
Atividade
15 / 33
Programac
ao para Web
Ivo Calado
IFAL
Introduc
ao
Praticando
Aprofundando...
Gerenciamento de Sess
ao
Capturando excec
oes
16 / 33
Programac
ao para Web
Ivo Calado
IFAL
Introduc
ao
Praticando
Aprofundando...
Gerenciamento de Sess
ao
Capturando excec
oes
16 / 33
Programac
ao para Web
Ivo Calado
IFAL
Introduc
ao
Praticando
Aprofundando...
Gerenciamento de Sess
ao
Capturando excec
oes
16 / 33
Programac
ao para Web
Ivo Calado
IFAL
Introduc
ao
Praticando
Aprofundando...
Gerenciamento de Sess
ao
Capturando excec
oes
16 / 33
Programac
ao para Web
Ivo Calado
IFAL
Introduc
ao
Praticando
Aprofundando...
Gerenciamento de Sess
ao
Capturando excec
oes
<e r r o 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 . ht m l</ l o c a t i o n>
</ e r r o r page>
17 / 33
Programac
ao para Web
Ivo Calado
IFAL
Introduc
ao
Praticando
Aprofundando...
Gerenciamento de Sess
ao
Capturando excec
oes
18 / 33
Programac
ao para Web
Ivo Calado
IFAL
Introduc
ao
Praticando
Aprofundando...
Gerenciamento de Sess
ao
Capturando excec
oes
18 / 33
Programac
ao para Web
Ivo Calado
IFAL
Introduc
ao
Praticando
Aprofundando...
Gerenciamento de Sess
ao
Capturando excec
oes
19 / 33
Programac
ao para Web
Ivo Calado
IFAL
Introduc
ao
Praticando
Aprofundando...
Gerenciamento de Sess
ao
Capturando excec
oes
20 / 33
Programac
ao para Web
Ivo Calado
IFAL
Introduc
ao
Praticando
Aprofundando...
Gerenciamento de Sess
ao
Capturando excec
oes
20 / 33
Programac
ao para Web
Ivo Calado
IFAL
Introduc
ao
Praticando
Aprofundando...
Gerenciamento de Sess
ao
Capturando excec
oes
21 / 33
Programac
ao para Web
Ivo Calado
IFAL
Introduc
ao
Praticando
Aprofundando...
Gerenciamento de Sess
ao
Capturando excec
oes
21 / 33
Programac
ao para Web
Ivo Calado
IFAL
Introduc
ao
Praticando
Aprofundando...
Gerenciamento de Sess
ao
Capturando excec
oes
Redirecionando paginas
22 / 33
Programac
ao para Web
Ivo Calado
IFAL
Introduc
ao
Praticando
Aprofundando...
Gerenciamento de Sess
ao
Capturando excec
oes
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 ,
HttpServletResponse response )
throws ServletException , IOException {
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 ,
HttpServletResponse response )
throws ServletException , IOException {
RequestDispatcher dispatcher = request .
g e t R e q u e s t D i s p a t c h e r ( " s2 " ) ;
dispatcher . forward ( request , response ) ;
}
23 / 33
Programac
ao para Web
Ivo Calado
IFAL
Introduc
ao
Praticando
Aprofundando...
Gerenciamento de Sess
ao
Capturando excec
oes
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 ,
HttpServletResponse response )
throws ServletException , IOException {
RequestDispatcher dispatcher = request .
g e t R e q u e s t D i s p a t c h e r ( " s2 " ) ;
dispatcher . include ( request , response ) ;
}
24 / 33
Programac
ao para Web
Ivo Calado
IFAL
Introduc
ao
Praticando
Aprofundando...
Gerenciamento de Sess
ao
Capturando excec
oes
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 ,
HttpServletResponse response )
throws ServletException , IOException {
RequestDispatcher dispatcher = request .
g e t R e q u e s t D i s p a t c h e r ( " s2 " ) ;
dispatcher . include ( request , response ) ;
}
24 / 33
Programac
ao para Web
Ivo Calado
IFAL
Introduc
ao
Praticando
Aprofundando...
Gerenciamento de Sess
ao
Capturando excec
oes
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 ,
HttpServletResponse response )
throws ServletException , IOException {
RequestDispatcher dispatcher = request .
g e t R e q u e s t D i s p a t c h e r ( " s2 " ) ;
dispatcher . include ( request , response ) ;
}
Ivo Calado
IFAL
Introduc
ao
Praticando
Aprofundando...
Gerenciamento de Sess
ao
O que
e?
O que e?
25 / 33
Programac
ao para Web
Ivo Calado
IFAL
Introduc
ao
Praticando
Aprofundando...
Gerenciamento de Sess
ao
O que
e?
O que e?
25 / 33
Programac
ao para Web
Ivo Calado
IFAL
Introduc
ao
Praticando
Aprofundando...
Gerenciamento de Sess
ao
26 / 33
Programac
ao para Web
Ivo Calado
IFAL
Introduc
ao
Praticando
Aprofundando...
Gerenciamento de Sess
ao
27 / 33
Programac
ao para Web
Ivo Calado
IFAL
Introduc
ao
Praticando
Aprofundando...
Gerenciamento de Sess
ao
28 / 33
Programac
ao para Web
Ivo Calado
IFAL
Introduc
ao
Praticando
Aprofundando...
Gerenciamento de Sess
ao
3a abordagem: Cookies
29 / 33
Programac
ao para Web
Ivo Calado
IFAL
Introduc
ao
Praticando
Aprofundando...
Gerenciamento de Sess
ao
30 / 33
Programac
ao para Web
Ivo Calado
IFAL
Introduc
ao
Praticando
Aprofundando...
Gerenciamento de Sess
ao
HTTPSession
As abordagens anteriores possuem series restric
oes:
Atributos ocultos e reescrita de url deixam visveis todos os
campos
Apesar de mais difcei, os cookies tb podem ser visualizados!
Alem disso, temos de ter o trabalho de em todas as
solicitacoes adicionar as informac
oes a serem enviadas de
modo a manter o estado
A solucao e o HTTPSession!
Trata-se da maneira mais simples e facil de se trabalhar com
gerenciamento de sessao
mantido um mapa com todos os valores que a aplicacao
E
precisar armazenar
Possibilita o armazenamento de valores de tipos complexos
(nao apenas String)
31 / 33
Ivo Calado
Programac
ao para
Webidentificador da sess
Um
ao e automaticamente enviado via
IFAL
Introduc
ao
Praticando
Aprofundando...
Gerenciamento de Sess
ao
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 ) )
32 / 33
Programac
ao para Web
Ivo Calado
IFAL
Introduc
ao
Praticando
Aprofundando...
Gerenciamento de Sess
ao
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 ) )
32 / 33
Programac
ao para Web
Ivo Calado
IFAL
Introduc
ao
Praticando
Aprofundando...
Gerenciamento de Sess
ao
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 ) )
32 / 33
Programac
ao para Web
Ivo Calado
IFAL
Introduc
ao
Praticando
Aprofundando...
Gerenciamento de Sess
ao
Filtros
33 / 33
Programac
ao para Web
Ivo Calado
IFAL