Fork me on GitHub

HTTP会话的使用与管理

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接口。

 

posted @ 2018-03-14 19:47  TaoTao~  阅读(319)  评论(0编辑  收藏  举报