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);
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 微软正式发布.NET 10 Preview 1:开启下一代开发框架新篇章
· 没有源码,如何修改代码逻辑?
· PowerShell开发游戏 · 打蜜蜂
· 在鹅厂做java开发是什么体验
· WPF到Web的无缝过渡:英雄联盟客户端的OpenSilver迁移实战