会话追踪技术之Session


Session是一种记录浏览器状态的机制。

session的生命周期:

创建:

1,第一次打开浏览器,访问服务器成功,由服务器在服务器端创建。
session对象存储在浏览器端,将id号响应到浏览器中。
2,客户端sessionId号存在,但服务器端session会话销毁,当再次发起请求时服务器就会再次创建session对象。
3.服务器关闭,但缓存(序列化),当服务器重启时,反序列化session。

设置session对象的非活动时间:

	/* Servlet设置session的非活动时间以秒为单位 */
		session.setMaxInactiveInterval(5);
	<!-- 配置文件web.xml 设置session非活动时间,以分钟为单位 -->
	  <session-config>
	  	<session-timeout>10</session-timeout>
	  </session-config>

销毁:

错误源:会话结束,浏览器关闭,session对象不会销毁。因为sessioin对象存储在服务器中,浏览器关闭,服务器并不知道。浏览器关闭本地sessionID号销毁,再次打开浏览器请求,就是一次全新的请求,服务器会生成新的session对象。

  • 1,当session长时间(默认30分钟)不被使用时,session对象会被服务器销毁,再将当前的session对象发送个服务器,服务器其实已经将与之对应的session对象销毁,就没有与之对应的sesssionId,就会重新创建一个对象。
  • 2,服务器关闭session会话销毁。但是服务器tomcat会在关闭时,将session对象序列化缓存session对象。生成SESSIONS.ser文件,在启动服务器时再读取回来,SESSIONS.ser文件消失。SESSIONS.ser文件本机(eclipse)位置:D:\Program Files (x86)\apache-tomcat-9.0.33\work\Catalina\localhost\JavaEE\org可以通过配置让服务器不缓存服务器对象。在Server文件夹中的context.xml将下面注释放开
	<!-- 禁止序列化,持久化,session对象缓存 -->
		<Manager pathname="" />

当服务器关闭时间超过最大时间时,直接销毁。同理,客户端有ID,而服务器已经销毁。

  • 3,安全退出时,强制销毁session会话。

session.invalidate()

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值