介绍
Cookie 技术其实是浏览器端的数据存储技术, 解决了不同请求需要使用相同的请求数据的问题。 我们把请求需要共享的请求数据, 存储在浏览器端, 避免用户进行重复的书写请求数据。 但是哪些数据需要使用 Cookie 技术存储起来是一个主观问题, 需要在后台进行响应的时候来告诉浏览器, 有些数据其他请求还会使用,需要存储起来
Cookies解决了不同请求发送之间的数据共享问题
比如, 在本地cookies存储用户名和密码, 下次进入同一个网站的时候, 服务器会读取cookies信息, 不用重复登录
特点
- 浏览器端的数据存储技术
- 适合少量数据
- 键值对
- 不安全
使用
创建一个cookie, 并通知浏览器临时存储
// 浏览器接收到服务器通知, 临时存储在浏览器内存中一个cookie, 当浏览器再次访问此网站时候, 请求头中会默认有一个coockie数据
Cookie c = new Cookie("key", "value");
resp.addCookie(c);
创建一个cookie, 并通知浏览器保存到本地指定事件, 设置指定路径可发送此cookie
Cookie c = new Cookie("key", "value");
// 存储cookie到磁盘中, 并保存3天
c.setMaxAge(3 * 24 * 3600);
// 只有当浏览器访问path页面的时候, 才会请求头默认发送此cookie, 路径为uri
c.setPath("/cookies/path");
resp.addCookie(c);
获取数据
// 如果没有cookies数据, 会返回一个null
Cookie[] cookies = req.getCookies();
for (Cookie cookie : cookies) {
System.out.println(cookie.getName() + ":" + cookie.getValue());
}