我设置了会话超时。
<session-config> <session-timeout>11520</session-timeout>
</session-config>
每次关闭浏览器并通过调用servlet再次打开浏览器时,都会看到创建了新会话。每次重新打开浏览器时,都可以从在HttpSessionListener中执行的SessionCreated方法中看到。
我是tomcat / Java的新手,但是如果我在ASP.NET环境中工作,则可以通过设置与会话名称相同的cookie来解决。
在Tomcat中解决该问题的最佳实践是什么?
先感谢您。
丹妮
每次关闭浏览器并通过调用servlet再次打开浏览器时,都会看到创建了新会话。
这符合指定的行为。会话cookie没有使用期限,因此只要客户端打开了Web浏览器实例,或者直到客户端没有访问session- timeout服务器端的时间(如服务器端设置中指定的那样),它就可以存在。
session- timeout
您基本上需要一个寿命比会话cookie长的cookie。您可以使用CookieAPI 创建一个新的长寿Cookie,使用设置其使用期限,然后使用将其Cookie#setMaxAge()添加到HTTP响应中HttpServletResponse#addCookie()。在后续的HTTP请求中,您可以使用确定Cookie的存在HttpServletRequest#getCookies()。
Cookie
Cookie#setMaxAge()
HttpServletResponse#addCookie()
HttpServletRequest#getCookies()
顺便说一下,这不是特定于Tomcat的。您可以在其他所有servlet容器上执行相同的操作。