会话技术Session特点
细节:
- 当客户端关闭后,服务器不关闭,两次获取session是否为同一个?
- 默认情况下。不是。
- 如果需要相同,则可以创建Cookie,键为JSESSIONID,设置最大存活事件,让Cookie持久化保存
package com.ailyt.session;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.*;
import java.io.IOException;
@WebServlet(value = "/sessionStudy03")
public class SessionStudy03 extends HttpServlet {
@Override
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
this.doPost(request, response);
}
@Override
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
//获取Session
HttpSession session = request.getSession();
System.out.println(session);
//期望客户端关闭后,Session也能相同
Cookie cookie = new Cookie("JSESSIONID", session.getId());
cookie.setMaxAge(60 * 60);
response.addCookie(cookie);
}
}
-
客户端不关闭,服务端关闭后,两次获取的session是同一个么?
- 不是同m一个,但是要确保数据不丢失
- session的钝化:
- 在服务器正常关闭之前,将session对象序列化到硬盘上
- session的活化:
- 在服务器启动后,将session文件转化为内存中的session对象即可。
- session的钝化:
- 不是同m一个,但是要确保数据不丢失
-
session的销毁?
- 服务器关闭
- session对象调用invalidate()
- session默认失效时间 30分钟
选择性配置修改:
<session-config>
<dession-timeout>30</dession-timeout>
</session-config>
Session的特点:
- session用于存储一次会话的多次请求的数据,存在服务器端
- session可以存储任意类型,任意大小的数据
Session与Cookie的区别:
- Cookie是把用户的数据写给用户的浏览器(可以保存多个)
- Session把用户的数据写到用户独占的Session中!(保存重要的信息,减少服务器资源的狼类)
- Session对象由服务器创建
分类:
java基础+进阶
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· 【自荐】一款简洁、开源的在线白板工具 Drawnix