Cookie基本使用
Cookie:客户会话技术,将数据保存到客户端,以后每次请求都携带Cookie数据进行访问
发送Cookie
创建Cookie对象,设置数据
1
Cookie cookie = new Cookie("key", "value");
设置Cookie生效范围
1
cookie.setPath("路径");
发送Cookie到客户端:使用response对象
1
response.addCookie(cookie);
获取Cookie
获取客户端携带的所有Cookie,使用request对象
1
Cookiep[] cookies = request.getCookies();
使用Cookie对象方法获取数据
1
2cookie.getName();
cookie.getValue();使用@CookieValue注解获取指定Cookie
1
2
3public void getCookie(@CookieValue("code") String code) {
System.out.println(code);
}
Cookie原理
- Cookie的实现基于HTTP协议
- 响应头:set-cookie
- 请求头:cookie
Cookie使用细节
- Cookie存活时间
- 存储在浏览器内存中,默认当浏览器关闭,内存释放,Cookie被销毁
- setMaxAge(int seconds):设置Cookie存活时间
- 正数:将Cookie写入浏览器所在电脑硬盘,持久化存储,到时间自动删除
- 负数:默认值
- 零:删除对应Cookie
- Cookie不能直接存储中文,需要转码:URL编码(String URLEncoder.encode(String, “utf-8”))
Cookie与Session的区别
- 存储位置:Cookie是将数据存储在客户端,Session存储在服务器端
- 安全性:Cookie不安全,Session安全
- 数据大小:Cookie 3kb,Session无限制
- 存储时间:Cookie可长期存储,Session默认30分钟
- 服务器性能:Cookie不占用服务器资源,Session占用