为了提高服务器内存资源的利用率,WEB服务器通常将那些暂时不活动但未超时的HttpSession对象转移到文件系统或数据库中保存,一旦服务器需要使用它们时,再将它们从文件系统或数据库中装载进内存,这种技术称为Session的持久化。
将HttpSession对象保存到文件系统或数据库中时,需要采用序列化的方式将HttpSession对象中的每个属性对象保存到文件系统或数据库中;将HttpSession对象从文件系统或数据库中装载进内存时,需要采用反序列化的方式恢复HttpSession对象中的每个属性对象。
存储在HttpSession对象中的每个属性对象必须是可序列化的,即必须是实现了Serializable接口的对象。
Session持久化的作用:
提高服务器内存资源的利用率
在集群系统中同步Session对象
保障重启服务器和应用程序时,一些客户端的会话活动仍可继续
Tomcat中的Session持久化管理
org.apache.catalina.session.StandardManager
默认的存储文件为:
<tomcat安装目录>\work\Catalina\<主机名>\<应用程序名>\SESSIONS.ser
org.apache.catalina.session.PersistentManager
要求设备提供实现org.apache.catalina.Store接口的驱动类
配置
<Context path= "/it315" docBase="it315">
<Manager className="org.apache.catalina.session.PersistentManager" …>
<Store className="…" …>
</Manager>
</Context>