expirace HttpSession

Rastislav Rehak rehak na eea.sk
Neděle Září 13 08:51:59 CEST 2009


Ahoj

o session sa mozes dozvediet zaujimave veci cez metody :
HttpServletRequest.getRequestedSessionId()  the session id specified by 
this request, or null if the request did not specify a session id  ,
alebo HttpSession.isNew() true if the session has been created by the 
server but the client has not yet acknowledged joining the session; 
false otherwise  .


Takze mozu nastat tri situacie :
1. Uzivatel prave prisiel na stranku - session is new,  
requestedSessionId == null .
2. Uzivatel ma platnu session - session != new
3. Prvy request po expirovanej session - session is new, 
requestedSessionId != null

prve dva pripady su jasne. treti pripad - zobrazis mu spravu , ze jeho 
session expirovala a posles ho napriklad na home stranku.
Problem s tretim pripadom je, ze ked ked ma niekto linku s JSESSIONID ( 
napriklad bookmark, google ) a niekto na nu klikne, tak nastane treti 
pripad aj ked sa jedna o novu session.

Mnohe frameworky ti riesia vyrabanie objektov pre session takze tam je 
nova session dost transparentna.

Rasto

tomasjurman na email.cz wrote:
> Dobrý den
>
> do HttpSession webové aplikace si obecně většinou ukládám info o uživately, stavy aplikace, jiné objekty, ...
> Pokud dojde k expiraci dané session, například z důvodu dlouhé nečinnosti na straně uživatele, aplikace vyhodí vyjímku NullPointerException, protože došlo ke ztrátě objektů v dané session.
>
> Jak se toto řeší? Při expiraci session a ztrátě objektů v session uložených mám uživatele někam přesměrovat?
>
> děkuji za cenou radu
> Tomáš Jurman
>
>   



Další informace o konferenci Konference