有什么方法可以预测会话超时?
有没有办法“捕获”会话超时事件,以便在无效之前从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