Cookies
步骤:
1. 创建Cookie对象, 绑定数据
new Cookie(String name, String value)
2. 发送Cookie对象.
response.addCookie(Cookie cookie)
3. 获取Cookie, 拿到数据.
Cookie[] request.getCookies()
-
原理
image.png
cookie细节:
- 一次可以发送多个cookie? Y
- cookie保存时间?
- 关闭浏览器
- 持久化存储
setMaxAge(int seconds): seconds:- 正数: 讲cookie数据写到硬盘的文件中,持久化存储.cookie存活时间
- 负数: 默认值.
- 0: 删除cookie信息.
- cookie中文? Y
- cookie获取范围多大?
- 默认情况下不能共享. setPath(String path): 默认设置当前的虚拟目录.
- 不同服务器见cookie共享:
setDomain(String path) : 如果设置一级域名相同, 那么多个服务器间cookie可以共享.
特点和作用
- cookie存储在客户端.
- 浏览器对于单个cookie大小有限制, 对同一个域名下的总cookie数量有限制.
- 作用:
- 存储少量不敏感的数据
- 不登录情况下, 完成服务器对客户端的身份识别.
Session
在一次会话的多次请求间共享数据.
- Session的实现依赖于Cookie.
快速入门
//使用session共享数据
//1.获取session
HttpSession session = request.getSession();
//2.存储数据
session.setAttribute("msg","hello");
//使用session获取数据
//1. 获取session
HttpSession session = request.getSession();
//2.获取数据
Object msg = session.getAttribute("msg");
System.out.println(msg);
Other:
-
客户端关闭后, 服务器不关闭, 是一个吗?
默认不是. 可以使用Cookie设置Session的JSESSINONID和session.getID(), 并通过Cookie的存活时间来使得Session在服务器关闭时保证是同一个. -
客户端不关闭, 服务器关闭, 两次获取的Session是同一个吗?
- 不是同一个. //使用session获取数据
//1. 获取session
HttpSession session = request.getSession();
//2.获取数据
Object msg = session.getAttribute("msg");
System.out.println(msg);
- 不是同一个. //使用session获取数据
网友评论