代码之家  ›  专栏  ›  技术社区  ›  danny.lesnik

Servlet会话超时

  •  3
  • danny.lesnik  · 技术社区  · 15 年前

    我把我的课时定为10080分钟等于一周。 现在我想让用户每次打开浏览器时都保持登录状态:

    sessionService.setcurrentUser(myuser);
          HttpSession session = request.getSession();
          Cookie cookie = new Cookie("JSESSIONID", session.getId());
          cookie.setMaxAge(timeout);
          response.addCookie(cookie);
    

    cookie.setMaxAge(10080);
    

    这是好的做法吗?

    3 回复  |  直到 15 年前
        1
  •  1
  •   Roalt    15 年前

    您使用cookie来引用会话id。如果cookie的超时时间低于会话,它将不再找到您的会话。因此,建议将cookie的超时设置为至少会话的超时。

        2
  •  7
  •   BalusC    15 年前

    您应该在中配置它 web.xml ,而不是通过破解默认会话cookie。

    <session-config>
        <session-timeout>10080</session-timeout>
    </session-config>
    

        3
  •  2
  •   Community Mohan Dere    9 年前

    下面的帖子包含了有趣的信息。
    就良好实践而言,您可能需要考虑两件事:

    • 内存问题,您的会话将被序列化,并且您希望将其保持在最小值。尤其是如果用户数量可以大幅增长的话。

    Discussion 1
    Discussion 2
    Discussion 3