【笔记】用JavaWeb实现Cookie读写

前言

用JavaWeb实现Cookie读写

发送Cookie到客户端

创建Cookie对象

  • Cookie都是由键值对构成的

<key>:键,Cookie的名字,Cookie名字一旦指定无法修改
<value>:值,Cookie要保存的值

1
Cookie cookie = new Cookie("<key>", "<value>");

如果不设置Cookie的有效期,默认关闭浏览器后就会被销毁

写入Cookie到客户端

  • Cookie不支持中文
    • 解决方法:转换成其他编码格式的数据

resp:响应对象

1
resp.addCookie(cookie);

接收客户端传过来的Cookie

读取Cookie

  • 读取到的是Cookie数组

req:请求对象

1
Cookie cookies[] = req.getCookies();

遍历Cookie数组

1
2
3
4
5
6
7
8
for (Cookie cookie : cookies) {
String name = cookie.getName();
if (name.equals("")) {
String value = cookie.getValue();
System.out.println(name + " : " + value);
break;
}
}

对Cookie对象的操作

获取Cookie的名字

  • 返回String类型
1
cookie.getName();

获取Cookie的值

  • 返回String类型
1
cookie.getValue();

获取Cookie的值

<value>:修改后的Cookie值

1
cookie.setValue("<value>");

设置Cookie有效期

<num>:单位:秒

负数:缺省值,Cookie只在关闭浏览器之前有效(存储在浏览器缓存)
正数:设置Cookie有效期(存储在硬盘上)
0:立即删除同名Cookie

1
cookie.setMaxAge(<num>);

设置Cookie的请求生效路径

1
cookie.setPath("/");

设置Cookie的域名共享

1
2
cookie.setDomain("jd.com");
cookie.setDomain("www.jd.com");

Cookie的注意事项

  • Cookie存储的数据保存在客户端

  • 单个Cookie大小不能超过4kb

  • 一个域名最多可以往一个客户端写20个Cookie

  • Cookie只能存放安全性要求不高的信息,比如密码等信息不能直接保存在Cookie

  • 不同浏览器读取不同的Cookie

完成

参考文献

哔哩哔哩——黑马程序员