5.Cookie

1.Cookie介绍

Cookie技术是一种Web技术,它允许网站在用户浏览时存储和检索小型文本信息。这些文本信息可以包括用户的偏好设置、会话状态信息、购物车内容等。当用户再次访问相同的网站时,浏览器会将相应的Cookie数据发送给服务器,从而使服务器能够识别用户并提供个性化的服务

2.Cookie特点

(1)Cookie是浏览器端的数据存储技术
(2)浏览器每次发送请求的时候,请求信息中就包含了Cookie中存储的数据
(3)Cookie不适合大量数据的存储(每个Cookie存储的数据不超过4KB)
(4)不安全,不适合存储重要的数据到浏览器端
(5)服务器端决定Cookie存储的数据内容
(6)不同的浏览器的Cookie保存在磁盘上的位置是不同的,不能跨浏览器使用Cookie
(7)不同浏览器对Cookie的数量有限定

3.Cookie的创建和发送

Cookie只有一个构造方法:public Cookie(String name, String value)

		// 创建Cookie对象
		Cookie cookie = new Cookie("name", "value");
		// 发送(响应Cookie对象)
		resp.addCookie(cookie);

4.Cookie的获取

在服务器端只提供了一个Cookie[] getCookies()的方法用来获取客户端传回的所有Cookie组成的一个数组,如果需要获取单个Cookie则需要通过遍历,getName()方法获取Cookie的名称,getValue()获取Cookie的值
注:Cookie是浏览器端的技术,如果关闭了服务器,只要Cookie在浏览器端没有失效,Cookie就是一直携带的,可以发送请求到服务器获取Cookie信息

        Cookie[] cookies = req.getCookies();
        if(cookies != null && cookies.length > 0){
            for (Cookie cookie : cookies) {
                String name = cookie.getName();
                String value = cookie.getValue();
            }
        }

5.设置Cookie到期时间

Cookie到期时间指定Cookie何时失效,默认为浏览器关闭即失效

到期时间取值描述
负整数表示不存储该cookie,默认为-1,表示只在浏览器内存中存活
正整数表示存储的秒数,浏览器会把Cookie保存到硬盘上
表示删除该Cookie
		// 3天内有效
		cookie.setMaxAge(3 * 24 * 60 * 60)

6.Cookie存中文

注:Cookie中不建议存入中文
Cookie存中文需要通过URLEncoder.encode()来进行编码,获取时通过URLDecoder.decode()进行解码

		String name = "名称";
        String value = "值";
        name = URLEncoder.encode(name);
        value = URLEncoder.encode(value);
        Cookie cookie = new Cookie(name, value);
		Cookie[] cookies = req.getCookies();
        if(cookies != null && cookies.length > 0){
            for (Cookie cookie : cookies) {
                String name = URLDecoder.decode(cookie.getName());
                String value =  URLDecoder.decode(cookie.getValue());
            }
        }

7.Cookie的路径

Cookie的路径直接决定服务器的请求是否会从浏览器加载某些Cookie
注:可不设置,默认在当前项目下可加载该Cookie

// 当前服务器的任何目录下可加载该Cookie
cookie.setPath("/");
  • 5
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

码届艺术家

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值