Cookie
2024年11月17日大约 1 分钟
保存在浏览器客户端中,它可以保存在运行内存中,也可以保存在浏览器;
创建
// 创建
Cookie cookie=new Cookie("键","值");
// 设置存活时间
cookie.setMaxAge(60*60*24*7); //单位为秒
// 携带路径
// 默认不设置路径时,Cookie的携带路径为创建Cookie的Servlet的路径及其子路径
cookie.setPath("/JavaWeb");
// 发送
response.addCookie(cookie);
// 拿取
Cookie[] cook = response.getCookies();
cook[0].getName(); // 名
cook[0].getValue(); // 值
常用方法
方法名 | 作用 |
---|---|
Cookie cookie = new Cookie(name,value) | 创建Cookie对象 |
response.addCookie(Cookie c) | 将cookie写回浏览器 |
cookie.getName() | 获取cookie的名字 |
cookie.getValue() | 获取cookie的值 |
Cookie [] cookis = request.getCookies(); | 请求再次获得cookie数组 |
cookie.setMaxAge(秒) | 设置cookie的有效时间 |
cookie.setPath("") | 设置cookie再次访问服务器时,自动携带cookie的依据 |
使用限制
数量限制
:每个网站最多只能有 20 个 Cookie,且大小不能超过 4KB。所有网站的 Cookie 总数不能超过 300 个
名称限制
: Cookie 的名称只能包含 ASCCI 码表中的字母、数字字符。不能包含逗号、分号、空格,不能以 $ 开头;Cookie 的值不支持中文。(tomcat8以前 , tomcat8以后对cookie中文值有进行处理.cookie的值不支持特殊符号)
存活时间限制
:setMaxAge() 方法设置存活时间(单位是秒);
- 负整数:当前会话有效,浏览器关闭则清除(不设置时间的话默认数负数)。
- 0:立即清除。 删除cookie使用此方式。
- 正整数:以秒为单位设置存活时间。
访问路径限制
:
- 默认路径:取自第一次访问的资源路径前缀。只要以这个路径开头就能访问到
- 设置路径:setPath() 方法设置指定路径。