代码之家  ›  专栏  ›  技术社区  ›  Tom

有没有办法预测会话超时?

  •  2
  • Tom  · 技术社区  · 15 年前

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

    3 回复  |  直到 12 年前
        1
  •  11
  •   jimr    15 年前

    你应该可以注册一个 HttpSessionListener 对于您的webapp,它将允许您在会话被破坏时获得通知。

    它有两种回调方法:

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

    HttpSessionEvent 班级有一个 getSession 方法获取受影响的会话。

    侦听器类在 web.xml

    <listener>
      <description>My Session Listener</description>
      <listener-class>
        my.package.MySessionListener
      </listener-class>
    </listener>
    
        2
  •  0
  •   user207421    15 年前

        3
  •  0
  •   J D    12 年前

    您可以随时添加一段JSP来检查会话是否仍然处于活动状态或有效—基本上是检查会话变量是否存在(=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

    推荐文章