Cookie和Session使用步骤
1|0Cookie的基本使用
1|1发送Cookie
1|2获取Cookie
1|3Cookie原理
Cookie是基于HTTP协议实现的,当从服务器端向客户端发送了一个Cookie对象时,Web服务器会将set-cookie:name=yang
写入http协议的响应头中,而浏览器在解析http协议时发现了这一行代码,就会自动将Cookie值存在本地。而当浏览器向服务器发送请求时,会自动携带该域的所有Cookie数据,即将所有cookie数据写入http请求头中,格式是cookie:name=yang;orther=whatever
。
1|4Cookie细节
cookie的存活时间为直到浏览器关闭,因为cookie是存在浏览器的内存中,关闭浏览器内存会被释放。使用setMaxAge(int seconds)
可以设置cookie的存活时间:
- 设置为正数时,会将cookie写入硬盘持久化存储,到了设定时间就会被删除
- 设置为负数时(默认),存入内存,随着浏览器关闭而释放。
- 设置为零时,浏览器会删除该cookie
另外,cookie是不支持存储中文的,需要使用URL编码的方式:
2|0Session基本使用
- 获取Session对象
HttpSession session = request.getSession();
- Session对象方法:
- 存储数据到Session域中:
void SetAttribute(String name, Object o);
- 根据key获取值:
Object getAttribute(String name);
- 根据key删除该键值对:
void removeAttribute(String name);
2|1存储Session
2|2获取Session
2|3Session原理
Session是基于Cookie实现的,创建一个新的Session对象时,Tomcat web服务器会自动发送一个Cookie,里面存放着对应这个Session对象的唯一标识符JSESSIONID,即在响应头中写入set-cookie:JSESSIONID=1245A5
。而当浏览器发送请求时,会自动把cookie携带在请求头里:cookie:JSESSIONID=1245A5
,然后web服务器在执行HttpSession session = request.getSession()
时,会查找web服务器中存储的id是否有与cookie中对应的id,如果有则会取出对应的session数据,否则新创建一个。
2|4Session使用细节
- Session钝化,指在服务器正常关闭后,Tomcat服务器会自动将Session数据写入硬盘的文件中
- Session活化,指再次启动服务器后,服务器程序会自动从文件中加载数据到Session中
- 所以,服务器的重启不会丢失Session数据
- 该文件在关闭服务器是,tomcat会将其存入work目录中的SESSIONS.ser文件中,重启服务器并加载了数据后会将其删除。
Session在默认情况下,如果不进行任何操作,会在30分钟时自动销毁。Session也可以手动被销毁,即利用Session.invalidate()
方法。
__EOF__

本文链接:https://www.cnblogs.com/flynn24/p/16061719.html
关于博主:评论和私信会在第一时间回复。或者直接私信我。
版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!
声援博主:如果您觉得文章对您有帮助,可以点击文章右下角【推荐】一下。您的鼓励是博主的最大动力!
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 25岁的心里话
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 按钮权限的设计及实现