繁体   English   中英

Servlet会话超时

[英]Servlet Session timeout

我正在编写我的SPring MVC Web应用程序。

我将会话时间设置为10080分钟,等于1周。 现在我想让用户每次打开浏览器时都会登录:

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

我的cookie Max Age应该与会话超时相同吗?

cookie.setMaxAge(10080);

这是好习惯吗?

您应该在web.xml配置它,而不是通过黑客攻击默认会话cookie。

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

请注意,您不应在会话中存储过多数据和/或您的服务器有足够的内存。

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

  • 使会话长时间保持活动状态的安全性方面。
  • 内存含义,您的会话将被序列化,并且您希望将其保持在最低限度。 特别是如果用户数量急剧增长。

讨论1
讨论2
讨论3

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM