2012-04-07 4 views
1

Mit der Standardeinstellung <session-timeout> für JSP möchte ich nach Ablauf der Sitzung die Meldung "Ihre Sitzung ist abgelaufen (30 min)" anzeigen und den Benutzer auf die Anmeldeseite zurückbringen.Wie kann ein Session-Timeout in JSP ordnungsgemäß gemeldet werden?

Um ((HttpServletRequest) request).getSession(false) == null zu verwenden, um festzustellen, dass es die Aufgabe nicht ordnungsgemäß ausführt, wird die Sitzung bereits bei der ersten Eingabe des NULL-Werts ungültig, wenn die Benutzer die Anwendung öffnen.

Wie kann ich dies vermeiden? Gibt es eine Möglichkeit, JSPs HttpSession so anzupassen, dass ich weiß, wann das wirkliche Ereignis passiert ist?

Antwort

2

Wie wäre es mit einem Cookie, der die letzte Anmeldung anzeigt? Wenn der Cookie gültig ist und URL nicht Login-URL ist, kann die Sitzungszeitüberschreitungsnachricht angezeigt werden.

0

Wie wäre es mit request.isRequestedSessionIdValid() Verfahren (Pseudocode):

if(request.getRequestedSessionId() == null) { 
    // no session yet -> need to create new one 
} 
else if(request.isRequestedSessionIdValid()) { 
    // we have valid session 
} 
else { 
    // session invalid due to timeout -> handle timeout 
}