使用JSP的默認<session-timeout>
設置,我想在會話過期後顯示「您的會話過期(30分鐘)」消息,並將用戶帶回登錄頁面。如何在JSP中正確傳遞會話超時?
若要使用((HttpServletRequest) request).getSession(false) == null
來檢測它沒有正確執行工作,因爲會話在用戶首次進入應用程序時已經爲空,從而使消息正確顯示。
我該如何避免這種情況?有沒有一種方法來定製JSP的HttpSession,以便我可以知道真實事件何時發生?
使用JSP的默認<session-timeout>
設置,我想在會話過期後顯示「您的會話過期(30分鐘)」消息,並將用戶帶回登錄頁面。如何在JSP中正確傳遞會話超時?
若要使用((HttpServletRequest) request).getSession(false) == null
來檢測它沒有正確執行工作,因爲會話在用戶首次進入應用程序時已經爲空,從而使消息正確顯示。
我該如何避免這種情況?有沒有一種方法來定製JSP的HttpSession,以便我可以知道真實事件何時發生?
如何設置指示上次登錄的cookie?如果cookie有效且url不是登錄網址,則會顯示會話超時消息。
如何使用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
}