(5)JavaWeb Session域对象
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了(5)JavaWeb Session域对象,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1893字,纯文字阅读大概需要3分钟。
内容图文
![(5)JavaWeb Session域对象](/upload/InfoBanner/zyjiaocheng/646/42e46af44c224bc3a673c20f5f417890.jpg)
- 获取专属于当前对话的Session对象
- 若果服务器端没有该会话的Session对象,会创建一个新的Session返回
- 如果已经有了属于该会话的Session对象,直接将已有的Session返回
- 本质就是根据SESSIONID判断该客户端是否在服务器上已经存在session了
调用request即可得到Session对象
//使用request来获取session
HttpSession session = request.getSession();
session.setAttribute("lk", "it666");
session的生命周期:
- 创建
- 第一次执行request.getSession()时创建
- 销毁
- 服务器关闭时
- session过期/失效(默认30分钟),是从最后一次操作结束时计时
- 手动销毁,session.invalate(较少使用)
- 浏览器关闭,session就销毁,这句话时不正确的
- 作用范围
- 默认在一次会话中,也就是说在一次会话中任何资源公用一个session对象。
session的声明周期可以更改:
在全局的web.xml中有session的配置,粘贴到想要修改的项目里边的web.xml里边即可。
还有一种情况,在关闭浏览器之后,我们会发现获取不到之前存的session对象了。
原因:我们在创建session对象的时候,会创建一个sessionid,在写id的时候,是以cookie的形式来写的,而cookie的生命周期默认为会话级别,所以我们在关闭浏览器之后,会访问不到我们存的session对象。
!!!浏览器关闭,session对象没有被销毁,只是id被销毁。
//sessionServlet1
//使用request来获取session
HttpSession session = request.getSession();
//我们来创建一个Cookie,JSESSIONID可以通过session直接来获取
Cookie cookie = new Cookie("JSESSIONID", session.getId());
//设置cookie的携带路径
cookie.setPath("/10-Cookie-Session");
//设置cookie的生命周期
cookie.setMaxAge(60*2);
//将cookie发送给浏览器
response.addCookie(cookie);
System.out.println(session);
session.setAttribute("lk", "it666");
//sessionServlet2
//通过sessionServlet2来获取session对象
HttpSession session = request.getSession();
System.out.println(session.getAttribute("lk"));
我们可以模拟session的创建过程,JSESSIONID我们自己创建一个cookie对象,来存放JSESSIONID,我们把他的生命周期设置为2分钟,这样浏览器关闭的时候,我们仍然可以访问到session对象
无敌少年小旋风 发布了6 篇原创文章 · 获赞 1 · 访问量 72 私信 关注内容总结
以上是互联网集市为您收集整理的(5)JavaWeb Session域对象全部内容,希望文章能够帮你解决(5)JavaWeb Session域对象所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。