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