一、Cookie定义
cookie技术就是将用户数据存储在客户端的技术,是用来跟踪浏览器用户身份的会话方式。
二、Cookie作用
cookie通过键值对的形式存储数据,cookie一般用于存储用户身份,通过cookie完成服务器对客户端的用户识别,例如存储用户的购物车信息,存储用户的点击次数或者在网页上实现免密登录等功能。
三、Cookie的实现原理
客户端向服务端发送一个请求,如果此时服务端需要记录客户端的一些信息,会创建cookie,该cookie包含了一些客户端的信息,再将其通过response传给客户端,下次客户端访问服务端时就会携带cookie信息,服务端也通过cookie来识别客户端身份。
四、Cookie的快速入门
1.创建一个cookie对象
Cookie cookie = new Cookie("name","Jack");
2.将cookie发送给客户端
response.addCookie(cookie);
3.获取cookie,拿到里面的数据
//得到cookies
Cookie[] cookies = request.getCookies();
//先判断下客户端有没有cookie
if(cookies != null){
for (Cookie cookie:cookies) {
//获得cookie的key和value
System.out.println(cookie.getName() + ":" + cookie.getValue());
}
4.添加时长,使cookie可以持久化存储
//将cookie数据写到客户端磁盘,并设置时长为一天,一天过后,cookie文件自动失效。
cookie.setMaxAge(60 * 60 * 24);
5.设置cookie获取范围,默认情况下,访问范围为当前的虚拟目录
//设置cookie可携带范围为整个应用
cookie.setPath(request.getContextPath());
//设置cookie可携带范围为当前应用下的shop目录
cookie.setPath(request.getContextPath() + "/shop");
//设置cookie可携带范围为整个服务器
cookie.setPath("/");
//设置不同tomcat服务器cookie共享问题
cookie.setDomain(".baidu.com");
6.删除cookie
//先创建同一个cookie,一模一样的携带路径,一模一样的键值对,才算同一个cookie
Cookie cookie = new Cookie("name","Jack");
cookie.setPath(req.getContextPath());
//删除cookie,设置cookie的存活时间为0
cookie.setMaxAge(0);
resp.addCookie(cookie);
五、Cookie的优缺点
优点:1.cookie存储数据在客户端,一定程度上可以减少服务端存储数据的压力
2.用于识别用户身份比较方便,便于追踪用户
缺点:1.浏览器对于单个cookie的大小有限制(4kb),且总数量也有限制
2.Cookie相对来说不安全
3.Cookie只能存储字符串类型数据
我们可以Session技术来解决Cookie技术的缺点。
本文详细介绍了Cookie技术,包括其定义、作用、实现原理,提供了Cookie的创建、读取、设置时长、指定范围以及删除的代码示例。Cookie常用于用户身份识别,存储用户数据,但也存在大小限制、安全性问题和只能存储字符串的缺点。为解决这些问题,文章提到了Session作为替代方案。
1万+

被折叠的 条评论
为什么被折叠?



