Tomcat 会话持久化配置

在 Java Web 应用中,会有一些应用重启的操作,怎么在重启后中,如何保证 Session 也能被恢复呢,这就可以通过 Tomcat 的会话持久化配置实现。

Tomcat 默认支持会话持久化,在服务重启时将当前在线会话信息持久化本地磁盘。其配置文件为 context.xml

<!-- apache-tomcat-9.0.21 -->
<Context>

    <!-- Default set of monitored resources. If one of these changes, the web application will be reloaded. -->
    <WatchedResource>WEB-INF/web.xml</WatchedResource>
    <WatchedResource>WEB-INF/tomcat-web.xml</WatchedResource>
    <WatchedResource>${catalina.base}/conf/web.xml</WatchedResource>

    <!-- Uncomment this to disable session persistence across Tomcat restarts -->
    <!--  如果不需要 Tomcat 的默认会话持久化功能,解开该注释
    <Manager pathname="" />
    -->

    <!-- Tomcat 8,7 存在以下内容 -->
    <!-- Uncomment this to enable Comet connection tacking (provides events
         on session expiration as well as webapp lifecycle) -->
    <Valve className="org.apache.catalina.valves.CometConnectionManagerValve" />
    -->
</Context>

我们也可以定义配置 Manager 信息,指定持久化文件的目录:

<Manager className="org.apache.catalina.session.PersistentManager"
    debug=0
    saveOnRestart="true"
    maxActiveSession="-1"
    minIdleSwap="-1"
    maxIdleSwap="-1"
    maxIdleBackup="-1">
    <Store className="org.apache.catalina.session.FileStore" directory="指定目录" />
    <!-- 存储到数据库,使用 org.apache.catalina.session.JDBCStore -->
</Manager>

为了成功恢复会话属性的状态,所有这些属性必须实现 java.io.Serializable 接口。可以通过在(/WEB-INF/web.xml)中包含 <distributable/> 元素,使 Manager 强制实施此限制。

详细文档:http://tomcat.apache.org/tomcat-9.0-doc/config/manager.html

https://blog.csdn.net/wojiushiwo945you/article/details/78712136


转载请注明来源,欢迎对文章中的引用来源进行考证,欢迎指出任何有错误或不够清晰的表达。可以在下面评论区评论,也可以邮件至 bin07280@qq.com

文章标题:Tomcat 会话持久化配置

文章字数:405

本文作者:Bin

发布时间:2019-06-12, 14:51:25

最后更新:2019-08-06, 00:57:36

原始链接:http://coolview.github.io/2019/06/12/Java/Tomcat%20%E4%BC%9A%E8%AF%9D%E6%8C%81%E4%B9%85%E5%8C%96%E9%85%8D%E7%BD%AE/

版权声明: "署名-非商用-相同方式共享 4.0" 转载请保留原文链接及作者。

目录