如何在JSP中正确地发送会话超时消息?

如何在JSP中正确地发送会话超时消息?,jsp,session,servlets,session-timeout,Jsp,Session,Servlets,Session Timeout,使用JSP的默认设置,我希望在会话过期后显示一条“您的会话已过期(30分钟)”消息,并将用户带回登录页面 使用((HttpServletRequest)请求).getSession(false)=null来检测它没有正确执行任务,因为在用户第一次进入应用程序时,会话将为null,从而使消息立即弹出 我怎样才能避免这种情况?有没有办法自定义JSP的HttpSession,这样我就可以知道真正的事件是什么时候发生的?设置一个cookie指示上次登录如何?如果cookie有效且url不是登录url,则

使用JSP的默认
设置,我希望在会话过期后显示一条“您的会话已过期(30分钟)”消息,并将用户带回登录页面

使用
((HttpServletRequest)请求).getSession(false)=null
来检测它没有正确执行任务,因为在用户第一次进入应用程序时,会话将为null,从而使消息立即弹出


我怎样才能避免这种情况?有没有办法自定义JSP的HttpSession,这样我就可以知道真正的事件是什么时候发生的?

设置一个cookie指示上次登录如何?如果cookie有效且url不是登录url,则可以显示会话超时消息。

设置一个指示上次登录的cookie如何?如果cookie有效且url不是登录url,则可以显示会话超时消息。

使用
request.isRequestedSessionIdValid()
方法(伪代码)如何:


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