Tomcat 中的 Session 和 Cookie的爱恨情仇
一个 Web 应用对应一个会话打点器,也就是说 StandardContext 内部有一个 Manager 实例。每个容器组件城市启动一个靠山线程,周期的挪用自身以及内部组件的 backgroundProcess() 要领,Manager 靠山处理赏罚就是搜查 Session 是否逾期。 搜查的逻辑是,获取全部 session 行使它的 isValid 判定是否逾期,代码如下:
3.3 Session 耐久化 耐久化就是把内存中勾当的 Session 工具,序列化到文件,可能存储到一个数据库中。假如会话打点组件切归并启用了耐久化成果,那么就会在它生命周期变乱 stop 要领中执行存储;在 start 要领中执行加载。 耐久化到文件,StandardManager 也提供了耐久化到文件的成果,它会把 session 池中勾当的会话所有写入到CATALINA_HOME/work/Catalina/ FileStore 也提供了耐久化到文件的成果,与 StandardManager 的区别是,它会把每个会话写入到单个文件中,以 耐久化到数据库,行使以下 SQL,别离把 session 相干数据存储到一个表中,包罗序列化后的二进制数据,表字段信息如下:
留意:必要把数据库驱动措施的 jar 文件,放到 $CATALINA_HOME/lib 目次中,以便让 Tomcat 内部的类加载器可见。 4. 小结 本文简朴说明白 Tomcat 对 Session 的打点,虽然了忽略的许多细节,有乐趣的可以深入源码,后续将会对 Tomcat 集群 Session 的实现举办说明。 (编辑:湖南网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |