Session 简介
session 是我们 jsp 九大隐含对象的一个对象 。
session 称作域对象 , 他的作用是保存一些信息 , 而 session 这个域对象是一次会话期间使用同一个对象 。 所以这个对象可以用来保存共享数据 。
- 使用 Cookie 有一个非常大的局限 , 就是如果 Cookie 很多 , 则无形的增加了客户端与服务端的数据传输量 。 而且由于浏览器对 Cookie 数量的限制 , 注定我们不能再 Cookie 中保存过多的信息 , 于是 Session 出现 。
Session 的作用就是在服务器端保存一些用户的数据 , 然后传递给用户一个名字为JSESSIONID 的 Cookie , 这个 JESSIONID 对应这个服务器中的一个 Session 对象 , 通过它就可以获取到保存用户信息的 Session 。
在用户第一次使用 session 的时候(访问 jsp 页面会获取 session , 所以一般访问 index.jsp 就算是第一次使用 session 了) , 服务器会为用户创建一个 session 域对象 。 使用jsessionid 和这个对象关联 , 这个对象在整个用户会话期间使用 。 响应体增加 set-cookie:jsessionid=xxx 的项 。 用户下次以后的请求都会携带 jsessionid 这个参数 , 我们使用request.getSession()的时候 , 就会使用 jsessionid 取出 session 对象 。
session 原理图:
文章插图
回到顶部
HttpSession 的生命周期
什么时候创建 HttpSession 对象
①. 对于 JSP: 是否浏览器访问服务端的任何一个 JSP, 服务器都会立即创建一个 HttpSession 对象呢?
不一定 。
- 若当前的 JSP 是客户端访问的当前 WEB 应用的第一个资源 , 且 JSP 的 page 指定的 session 属性值为 false,则服务器就不会为 JSP 创建一个 HttpSession 对象;
若当前 JSP 不是客户端访问的当前 WEB 应用的第一个资源 , 且其他页面已经创建一个 HttpSession 对象 , 则服务器也不会为当前 JSP 页面创建一个 HttpSession 对象 , 而会把和当前会话关联的那个 HttpSession 对象返回给当前的 JSP 页面.
page 指令的 session=“false“ 表示什么意思?
当前 JSP 页面禁用 session 隐含变量!但可以使用其他的显式的 HttpSession 对象
在 Serlvet 中如何获取 HttpSession 对象?
request.getSession(boolean create): create 为 false, 若没有和当前 JSP 页面关联的 HttpSession 对象, 则返回 null; 若有, 则返回 true
create 为 true, 一定返回一个 HttpSession 对象. 若没有和当前 JSP 页面关联的 HttpSession 对象, 则服务器创建一个新的HttpSession 对象返回, 若有, 直接返回关联的.
request.getSession(): 等同于 request.getSession(true)
什么时候销毁 HttpSession 对象
①. 直接调用 HttpSession 的 invalidate() 方法: 该方法使 HttpSession 失效
②. 服务器卸载了当前 WEB 应用.
③. 超出 HttpSession 的过期时间.
④. 并不是关闭了浏览器就销毁了 HttpSession.
回到顶部
session 使用
获取 session 对象
HttpSession session = request.getSession(); session 是我们的四大域对象之一 。 用来保存数据 。 常用的方法
session.setAttribute("user", new Object()); session.getAttribute("user");session.setMaxInactiveInterval(60*60*24);//秒为单位session.invalidate();//使 session 不可用Session 时 效
①、基本原则
Session 对象在服务器端不能长期保存 , 它是有时间限制的 , 超过一定时间没有被访问过的 Session 对象就应该释放掉 , 以节约内存 。 所以 Session 的有效时间并不是从创建对象开始计时 , 到指定时间后释放——而是从最后一次被访问开始计时 , 统计其“空闲” 的时间 。
②、默认设置
在全局 web.xml 中能够找到如下配置:
30
推荐阅读
- 超简单雪人简笔画画法步骤
- 超人垃圾分类手抄报图文教程
- 美食饮品主题简笔画9款超萌咖啡简笔画
- 羡慕!选老公眼光超好的星座女
- 秋葵酿虾滑的做法
- word中的超链接怎么打不开怎么回事欢迎阅读
- 桃花超旺!三大星座5月不缺爱
- 超强的记忆里让你过目不忘不再总是狗熊掰棒子
- 越睡越困是怎么回事(睡觉超过1小时的危害)
- 超级勾魂营销文案模板,简单执行,日吸粉3000!