会话技术Session_细节和特点
细节:
1.当客户端关闭后,服务器不关闭,两次获取Session是否为同一个?
1.默认情况下不是
把浏览器关闭后在访问 session的地址值不一样了
如果需要相同,则可以创建Cookie,键为JSESSIONID,设置最大存活时间,让cookie持久化保存
@WebServlet("/sessionD3") public class SessionD3 extends HttpServlet { protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { //使用Session获取数据 //获取Session HttpSession session = request.getSession(); System.out.println(session); //期望客户端关闭后,session也能相同 Cookie c = new Cookie("JSESSIONID", session.getId()); c.setMaxAge(60*60); response.addCookie(c); } protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { this.doPost(request, response); } }
2.客户端不关闭,服务器关闭后,两次获取的session是同一个吗?
1.不是同一个,要确保数据不丢失
>session的钝化:
在服务器正常关闭之前,将session对象序列化到硬盘上
>session的活化:
在服务器启动后,将session文件转化为内存中的session对象即可。
##(tomcat服务器已经帮我们把钝化和活化的事情完成了,我们不需要考虑
idea中完成不了,它可以钝化,但是活化不了)——操作(20_会话技术_Session_细节2)
【本地硬盘操作】
3.session的失效时间(什么时候被销毁)。
1.服务器关闭
2.session对象调用invalidate()。
3.session默认失效时间 30分钟
在D:\apache-tomcat-9.0.22\conf\web.xml下
配置修改
<session-config>
<session-timeout>30</session-timeout>
</session-config>
session的特点
①session用于存储一次会话的多次请求的数据,存在服务器端
②session可以存储任意类型,任意大小的数据
session与cookie的区别:
1.session存储数据在服务器端,Cookie在客户端
2.session没有数据大小限制,Cookie有
3.session数据安全,Cookie相对于不安全

【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· 【自荐】一款简洁、开源的在线白板工具 Drawnix