过期罐头电脑论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 5308|回复: 0
收起左侧

Session的耐久 化的作用与原理

[复制链接]
中国饭 2013-6-18 18:48:58 | 显示全部楼层
为什么需要.耐久化
客户端访问了某个能开启会话功能的资源, web服务器就会创建一个与该客户端对应的HttpSession对象,每个HttpSession对象都要站用一定的内存空间。假如在某一时间段内访问站点的用户很多,web服务器内存中就会积聚大量的HttpSession对象,耗费大量的服务器内存,即便用户已经分开或者关闭了浏览器,web服务器仍要保留与之对应的HttpSession对象,在他们超时之前,一直占用web服务器内存资源。
web服务器通常将那些暂时不活动但未超时的HttpSession对象转移到文件系统或数据库中保存,服务器要使用他们时再将他们从文件系统或数据库中装载入内存,这种技术称为Session的耐久化。
将HttpSession对象保存到文件系统或数据库中,需要.采用序列化的方式将HttpSession对象中的每个属性对象保存到文件系统或数据库中;将HttpSession对象从文件系统或数据库中装载如内存时,需要.采用反序列化的方式,恢复HttpSession对象中的每个属性对象。所以存储在HttpSession对象中的每个属性对象必须实现Serializable接口
Session的耐久化的作用:
1.提高服务器内存的应用率,保证那些暂停活动的客户端在会话超时之前继续原来的会话
2.在多台web服务器协同对外提供服务的集群系统中,使用Session的耐久化技术,某台服务器可以将其中发作改变的Session对象复制给其他服务器。保证了在某台服务器停止工作后可以由其他服务器来接替它与客户端的会话
3.在一个web应用程序重启时,服务器也会耐久化该应用程序中所有HttpSession对象,保证客户端的会话活动仍可以继续。
Tomcat使用Session Manager 类来管理Session的耐久化,他提供了两个SessionManager类
org.apache.catalina.session.StandardManager
org.apache.catalina.session.PersistentManager
StandardManager是tomcat默认使用的,在web应用程序关闭时,对内存中的所有HttpSession对象进行耐久化,把他们保存到文件系统中。默认的存储文件为:
/work/Catalina///sessions.ser
PersistentManager比StandardManager更为灵活,只需某个设备提供了实现org.apache.catalina.Store接口的驱动类,PersistentManager就可以将HttpSession对象保存到该设备
您需要登录后才可以回帖 登录 | 注册

本版积分规则

一键重装系统|雨人系统下载|联系我们|网站地图|过期罐头电脑论坛

GMT+8, 2024-12-23 08:59 , Processed in 0.040207 second(s), 25 queries .

官方免责声明:本站内容来自网友和互联网.若侵犯到您的版权.请致信联系,我们将第一时间删除相关内容!

Powered by Discuz!

专注于win7_win10_win11系统下载装机

© 2010-2023 GQGTPC.Com

快速回复 返回顶部 返回列表