Session的学习

* session学习:
* 解决问题:一个用户不同请求处理的数据共享怎么办?
* 特点:存储在服务器端,在服务器端创建,依赖Cookie技术。
* 生命周期:一次会话
* 使用:1、创建session对象/获取session对象
* HttpSession hs = req.getSession();
* 如果请求中拥有session的标识符(JSESSIONID),则返回对应的session对象
* 如果请求中没有session的标识符(JSEESIONID),则创建新的session对象,并将cookie数据存储到浏览器内存中。
* (当JSESSIONID存储了Cookie临时存储空间内,浏览器关闭即失效)
* 2、Session的默认存储时间是三十分钟(常见到页面超过一定时限,session失效,会发生重新建立session的过程),当关闭服务器再打开时,由于session对象被释放,所以调用servlet时,会创建新的session对象,对应ID会发生改变。
*
* 设置session存储时间
* hs.setMaxIncativeInterval(int seconds)
* 注意:此方法的含义是: 当出现seconds秒未使用session对象,则session对象会被释放。
*
* 设置session强制失效
* hs.invalidate()
* 3、存储和获取数据
* 存储: hs.setAttribute(String name,Object value)
* 获取: hs.getAttribute(String name)

4、使用时机
* 一般用户在登录web项目时,会将用户的个人信息存储到Session中,供该用户的其他请求使用。(用户在这里可理解为浏览器
* 5、作用域:
* 在JSESSIONID和Session对象不失效的情况下,为整个项目。    那么失效的标准是sessionId

注意: request请求解决的是用户一次请求内的数据问题;  session解决的是同一用户在多次不同请求内的数据共享问题;

    ServletContext解决的是不同用户之间的数据共享问题

原文地址:https://www.cnblogs.com/fjwjw/p/10152044.html