2012-04-07 66 views
1

使用JSP的默認<session-timeout>設置,我想在會話過期後顯示「您的會話過期(30分鐘)」消息,並將用戶帶回登錄頁面。如何在JSP中正確傳遞會話超時?

若要使用((HttpServletRequest) request).getSession(false) == null來檢測它沒有正確執行工作,因爲會話在用戶首次進入應用程序時已經爲空,從而使消息正確顯示。

我該如何避免這種情況?有沒有一種方法來定製JSP的HttpSession,以便我可以知道真實事件何時發生?

回答

2

如何設置指示上次登錄的cookie?如果cookie有效且url不是登錄網址,則會顯示會話超時消息。

0

如何使用request.isRequestedSessionIdValid()方法(僞碼):

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 
}