Session

Session

跟踪客户状态

Web服务器跟踪客户状态通常有4种方法:建立含有跟踪数据的隐藏字段;重写包含额外参数的URL;使用持续的Cookie;使用Servlet API中的Session(会话)机制

概念

Session用于跟踪客户的状态。Session指的是在一段时间内,单个客户与Web服务器的一连串相关的交互工程。在一个Session中,客户可能会多次请求访问同一个网页,也有可能请求访问各种不同的服务器资源。eg:在电子邮件应用中,从一个客户登录到电子邮件系统开始,经过收信写信和发信等一系列操作,直到最后退出邮件系统,整个过程为一个Session。

运行机制(重要)

1.当一个Session开始时,Servlet容器将创建一个HttpSession对象,在HttpSession对象中可以存放客户状态的信息(例如购物车)
2.Servlet容器为HttpSession分配一个唯一标志符,称为Session ID。Servlet容器把Session ID作为Cookie保存在客户的浏览器中。
3.每次客户发出HTTP请求时,Servlet容器可以从HttpServletRequest对象中读取Session ID,然后根据Session ID找到相应的HttpSession对象,从而获取客户的状态信息。

HttpSession重要接口

1.getId() 返回Session的ID
2.invalidate() 使当前的Session失效,Servlet容器会释放HttpSession对象占用的资源。
3.setAttribuate(string name,object value) 将一堆name/value属性保存在HttpSession对象中。
4.getAttribute(string name) 根据name参数返回保存在HttpSession对象中的属性值。
5.isNew() 判断是否新创建的Session。如果是新创建的Session,返回true,否则返回false
6.setMaxInactiveInterval() 设定一个Session可以处于不活动状态的时间间隔,以秒为单位。如果超过这个时间,Session自动失效,如果设置为负数,表示不限制Session处于不活动状态的时间

生命周期

1432532-20180703221638033-1243608950.png
1432532-20180703221650314-1145223860.png
关闭浏览器本质上Session并没有结束生命周期,是一个假象,关闭浏览器后,当不活动状态的时间到了,Session才会失效
1432532-20180703221703600-410754570.png
1432532-20180703221715944-1909996465.png

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值