HTTP会话的使用与管理
一、会话简介
http是无状态协议,需要在http请求中添加一些额外的用于跟踪客户状态的数据来区分不同的用户。
会话机制是用来跟踪客户状态的普遍解决方案。会话是指在一段时间内单位客户与web应用的一连串相关的交互过程。
在购物网上,一个用户从开始购物到最后结账,整个过程为一个会话。
二、javax.servlet.http.HttpSession接口
会话开始,servlet创建一个HttpSession对象,该对象存放客户状态信息。每个HttpSession对象有一个唯一的标志符。SessionID
会话运作流程
三、生命周期与会话范围
注意区别一下三个范围:
web应用范围:共享数据作为ServletContext对象的属性而存在
请求范围:共享数据作为ServletRequest对象的属性存在
会话范围:浏览器端与一个web应用进行一次会话的过程,共享数据作为HttpSession对象的属性存在
HttpSession接口常见方法
getId():返回sessionID
invalidate():销毁当前的会话,Servlet容器会释放HttpSession对象占用的资源
setAttribute(String name,Object value):将一对name/value属性保存在httpSession对象中
getAttribute(String name):根据Name参数返回保存在HttpSession对象里面的属性值
getAttributeNames():以数组的方式返回HttpSession里面的所有的属性名
四、会话持久化
把内存中的HttpSession对象保存到文件系统或数据库中。
好处:
节约内存空间---把处于不活动状态的HttpSession对象转移到文件系统或数据库中,提高对内存资源的利用率。
确保服务器在重启或单个web应用重启后,能恢复重启前的会话。
servelt对所有可以序列化的属性进行持久化,确保存放在会话范围内的共享数据不会丢失。----可序列化的属性是指属性所属的类实现了java.io.Seralizable接口。
原文地址:https://www.cnblogs.com/taoHongFei/p/8568189.html