HttpSession【重点】
会话:同一个用户对应用程序的一次访问,一次会话。
Session:服务端记录用户状态的技术
Session使用
HttpSession接口
//获取当前用户的session对象
HttpSession session = request.getSession()
操作方式【作用域】
存储:session.setAttribute(String name , Object value);
获取:session.getAttribute(String name);
Request和Session区别:
request:一次请求有效 更换请求失效
session:一次会话(浏览器)有效 更换浏览器失效
更换浏览器进程(重启、换品牌)都失效
request session
forward √ √
redirect × √
直接访问B × √
更换浏览器 × ×
Session实际的应用:
购物车 session
验证码 session
1.引入工具jar包
2.引入验证码的程序并且配置对外访问路径
3.在需要使用验证码的页面中
4.获取原始验证码
session.getAttribute(“validationCode”)
强制登录(没登录不能进行后续操作)
session的生命周期
创建:request.getSession();
销毁:
手工销毁:Session.invalidate();//销毁当前session对象
自动销毁:会话访问最后一次 之后 30分钟自动销毁
Tomcat—>confweb.xml
不建议直接改服务器 在项目中(web.xml)覆盖配置
session的核心原理
在第一次使用session对象时,服务器会自动创建一个Cookie对象(“JSESSIONID”,”当前session的id值”),Cookie对象会随着响应返回客户端存储在操作系统中,后续每次访问都会携带当前Cookie。服务器拿到Cookie对象之后就能获取Session对象的id值,从而找到session对象。
request的使用依据,数据在后续程序中不需要
Session的使用语句,和用户相关的数据存在Session里