在Tomcat中具有过期日期的JSESSIONID Cookie

Tim*_*sen 26 cookies session tomcat servlets jsessionid

设置Tomcat为servlet会话发送的JSESSIONID cookie的截止日期的最佳方法是什么?

默认情况下,cookie的到期日期似乎是"会话",这意味着一旦浏览器重新启动,会话就会在客户端中消失.但是我想让它保持打开12小时,即使在浏览器重启后(然后会相应地在服务器中配置会话超时).

有没有办法在Tomcat中设置过期日期,例如使用某些配置选项或扩展模块?或者是否有可靠的方法使用Servlet过滤器为JSESSIONID设置过期日期?

小智 60

从Servlet 3.0开始,可以在web.xml中简单地指定:

<session-config>
    <session-timeout>720</session-timeout> <!-- 720 minutes = 12 hours -->
    <cookie-config>
        <max-age>43200</max-age> <!-- 43200 seconds = 12 hours -->
    </cookie-config>
</session-config>
Run Code Online (Sandbox Code Playgroud)

请注意,session-timeout以分钟max-age为单位测量,但以秒为单位.