Servlet会话超时

我正在编写我的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); 

这是好的做法吗?

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

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

  10080  

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

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

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

讨论1
讨论2
讨论3