Cookie

本文详细介绍了Cookie技术,包括其定义、作用、实现原理,提供了Cookie的创建、读取、设置时长、指定范围以及删除的代码示例。Cookie常用于用户身份识别,存储用户数据,但也存在大小限制、安全性问题和只能存储字符串的缺点。为解决这些问题,文章提到了Session作为替代方案。

一、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技术的缺点。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值