cookie和session笔记

cookie简单使用:

cookie是服务器发送给浏览器的数据, 浏览器管理所有的cookie.

当一个Servlet在处理响应时, 向客户端发送了cookie, 那么浏览器在下次访问这个

Servlet将带着cookie发送一个请求,Servlet可以使用request.getCookies()方法得到浏览器发送过来的所有

cookie然后检索得到相应的cookie.

cookie由名称,值,过期时间,和路径组成.
 

1
2
//一个简单的cookie
Cookie sess = new Cookie("name", "cookie");

 cookie的setMaxAge()方法设置这个cookie保存时间(单位 : 秒),在有效的时间内,浏览器访问时都会带着这个cookie去请求。

setPath()方法设置这个cookie的有效路径, 默认路径是发送这个cookie的Serlvet的路径相同。

1
2
3
4
5
6
//新建一个cookie
Cookie sess = new Cookie("name", "cookie");
//设置cookie的有效时间60秒
sess.setMaxAge(60);
//设置cookie的有效路径
sess.setPath("/servlet_session/");

 使用response.addCookie(Cookie c) 方法将一个cookie添加进响应头.

session的使用

在Servlet中使用session,要调用request.getSession()方法,如果此次会话已经有session那么这个方法会返回已经的创建的session

否则会自动创建一个session对象表示此次会话,request.getSession(boolean b)是一个重载方法,它只是查找已创建的session对象如果没有找到

它不会创建一个session对象。

session的实现是基于cookie的, 每一个session的都有一个id, 调用request.getSession()时,假设现在有一个名子为JSESSIONID的cookie,这个cookie

就保存了当前会话的sessionid浏览器在发送请求时会将这个cookie一起发送给服务器,服务器通过JSESSIONID的值查找session,如果浏览没有发送JSESSIONID cookie时或者JSESSIONID中的值表示的session找不到时request.getSession()方法就会创建一个新的

session对象,并将这个session的id保存在JSESSIONID中, 发送给浏览器.

 

 

posted @   架构文摘  阅读(281)  评论(0编辑  收藏  举报
编辑推荐:
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
阅读排行:
· 周边上新:园子的第一款马克杯温暖上架
· 分享 3 个 .NET 开源的文件压缩处理库,助力快速实现文件压缩解压功能!
· Ollama——大语言模型本地部署的极速利器
· DeepSeek如何颠覆传统软件测试?测试工程师会被淘汰吗?
· 使用C#创建一个MCP客户端
点击右上角即可分享
微信分享提示