2012-04-07 56 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 
}