
Session 的简单学习
一次会话过程中之所以可以共享数据,原因就是使用的是同一个 Session,客户端和服务器之间通过给 Session 标记的 JSESSIONID 来识别同一个 Session。 当首次访问 session1,时,完成的set-cookie:
(3)session什么时候被销毁?
发布日期:2021-05-07 19:41:38
浏览次数:21
分类:精选文章
本文共 1573 字,大约阅读时间需要 5 分钟。
文章目录
一、概念
服务器端会话技术,在一次会话的多次请求间共享数据,将数据保存在服务器端的对象中,用的是 HttpSession
(1)获取HttpSession对象: HttpSession session = request.getSession();(2)使用HttpSession对象: Object getAttribute(String name) void setAttribute(String name, Object value) void removeAttribute(String name)
二、原理
Session 的实现是依赖于 Cookie 的

@WebServlet("/session1")public class Session2 extends HttpServlet { protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { HttpSession session = request.getSession(); session.setAttribute("msg","hello session"); }

三、细节
(1)当客户端关闭后,服务器不关闭,两次获取session是否为同一个?
* 默认情况下:不是。* 如果需要相同,则可以创建Cookie,键为JSESSIONID,设置最大存活时间,让cookie持久化保存。 Cookie c = new Cookie("JSESSIONID",session.getId()); c.setMaxAge(60*60); response.addCookie(c);
(2)客户端不关闭,服务器关闭后,两次获取的session是同一个吗?
* 不是同一个,但是要确保数据不丢失,tomcat自动完成以下工作* session的钝化: * 在服务器正常关闭之前,将session对象系列化到硬盘上* session的活化: * 在服务器启动后,将session文件转化为内存中的session对象即可。
这里 使用 Tomcat会自动给我们部署,但是需要注意使用开启和关闭都要正规操作,不使用了,不能直接叉掉
IDEA 则不能完成这个工作,每次启动Tomcat都会重新新建 work 目录,不会保存

* 服务器关闭* session对象调用invalidate() 。* session默认失效时间 30分钟,这个可以修改Tomcat 目录下的xml 文件 选择性配置修改30
四、session 的特点
(1)session用于存储一次会话的多次请求的数据,存在服务器端(2)session可以存储任意类型,任意大小的数据
session与Cookie的区别: * session存储数据在服务器端,Cookie在客户端 * session没有数据大小限制,Cookie有 * session数据安全,Cookie相对于不安全
发表评论
最新留言
感谢大佬
[***.8.128.20]2025年03月31日 09时32分58秒
关于作者

喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!
推荐文章
供应ASTM D3475认证丨ASTM D3475防儿童包装测试费用
2021-05-08
2种解法 - 获取一条直线上最多的点数
2021-05-08
项目中常用的审计类型概述
2021-05-08
新生儿不建议吃鱼肝油,这些你知道吗
2021-05-08
新生儿哭是因为什么
2021-05-08
基础知识
2021-05-08
nodeName与tagName的区别
2021-05-08
(九)实现页面底部购物车的样式
2021-05-08
在vue中给对象扩展属性的方法
2021-05-08
Neo4j : 通过节点的 id属性 对节点进行查,改,删操作
2021-05-08
Linux标准错误和标准输出重定向到同一个文件
2021-05-08
HTTP Status 404 – Not Found
2021-05-08
【2021年新书推荐】ASP.NET Core 5 and Angular
2021-05-08
python-day3 for语句完整使用
2021-05-08
spring 程序开发步骤
2021-05-08
java基础知识:构造函数
2021-05-08
java基础知识:封装
2021-05-08