Cookie

概述

1、Cookie 是服务器通知客户端保存键值对的一种技术

2、客户端若有 Cookie,每次请求都发送 Cookie 到服务器

3、每个 Cookie 大小不能超过 4KB

4、客户端收到响应后,存在 set-cookie 响应头,查找客户端是否存在该 Cookie,存在,则修改值;不存在,则创建新 Cookie

5、值不应包含空格、[]、()、=、,、""、//、?、@、:、:、空值、中文,若需要,使用 BASE64 编码

 

创建

//创建Cookie对象
Cookie cookie = new Cookie("key","value");
//通知客户端保存Cookie
resp.addCookie(cookie);

 

获取

Cookie[] cookies = req.getCookies();

 

修改值

1、方案一

//1、创建一个要修改的同名的Cookie对象
//2、在构造器,同时赋于新的Cookie值
Cookie cookie = new Cookie("key","value");
//3、调用addCookie(Cookie)
resp.addCookie(cookie);

2、方案二

//1、查找需要修改的Cookie对象
Cookie[] cookies = req.getCookies();
Cookie updateCookie;
for (Cookie cookie : cookies) {
    if (cookie.getName().equals("待修改Cookie名字")){
        updateCookie = cookie;
    }
}
//2、调用setValue()赋于Cookie新值
if (updateCookie != null){
    updateCookie.setValue("新值");
}
//3、调用addCookie()
resp.addCookie(updateCookie);

 

控制生命周期

1、正数,表示在指定的秒数后过期;负数,表示浏览器关闭,就删除该 Cookie(默认);零,表示立刻删除该 Cookie

public void setMaxAge(int expiry) {
    maxAge = expiry;
}

2、该 Cookie 必须调用 addCookie(),才会生效

 

设置有效路径 path

1、Cookie 的 path 属性可以有效的过滤,选择性发送哪些 Cookie 到服务器

2、path 属性是通过请求的地址来进行有效的过滤

3、示例

Cookie cookie = new Cookie("key", "value");
//工程路径/资源路径,必须访问指定的path,该Cookie才会发送到服务器
cookie.setPath(req.getContextPath() + "/资源路径");
//使path生效
resp.addCookie(cookie);
posted @   半条咸鱼  阅读(278)  评论(0编辑  收藏  举报
(评论功能已被禁用)
相关博文:
阅读排行:
· 微软正式发布.NET 10 Preview 1:开启下一代开发框架新篇章
· 没有源码,如何修改代码逻辑?
· PowerShell开发游戏 · 打蜜蜂
· 在鹅厂做java开发是什么体验
· WPF到Web的无缝过渡:英雄联盟客户端的OpenSilver迁移实战
点击右上角即可分享
微信分享提示