使用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
}