有什么方法可以预测会话超时?

有没有办法“捕获”会话超时事件,以便在无效之前从HttpSession中检索数据?

我们正在实现filter接口,并且在doFilter方法中,当会话超时时,我们在登录时存储在会话对象中的用户为空。

提前致谢。

您应该能够为您的webapp注册一个HttpSessionListener ,以便在会话被销毁时得到通知。

它有两个回调方法:

  • public void sessionCreated(HttpSessionEvent se)
  • public void sessionDestroyed(HttpSessionEvent se)

HttpSessionEvent类有一个getSession方法,可以让你获得受影响的会话。

侦听器类在web.xml注册

  My Session Listener  my.package.MySessionListener   

让用户对象实现HttpSessionBindingListener,然后它可以在会话中添加或删除时自行查看。

您可以随时添加一段JSP来检查您的会话是否仍处于活动状态或有效状态 – 基本上检查会话var是否存在(!= null),如果不存在,则将用户重定向到另一个页面 –

 <% // check for session object HttpSession validuser = request.getSession(); // check to see if session var exists if (validuser.getValue("auth_user") == null) { response.sendRedirect("admin3.jsp?access+denied"); } // if the session var is null then redirect the user 

希望这有助于马克

资料来源: http : //www.coderanch.com/t/279538/JSP/java/jsp-session-timeout