Cookie的操作:
1:创建Cookie对象:
Cookie cookie = new Cookie(String name, String value);
参数: name:该当前Cookie取一个唯一的名字
value:存储在Cookie的共享数据,只能是String类型。
Cookie cookie = new Cookie("currentName", "Jack");
2:把Cookie放入响应中,响应给浏览器,把共享的数据存储在浏览器中。
response.addCookie(cookie);
3:获取Cookie以及获取Cookie中的数据。
因为Cookie存在请求头中,所以应该通过request去获取。
Cookie[] cs = req.getCookies();
获取当前Cookie的名字:
String name = cookie对象.getName();
获取当前Cookie的值:
String value = cookie对象.getValue();
4. Cookie的中文问题:
在Cookie中属性名和属性值都不能使用中文。
String msg = "西门吹雪";
// 编码
String ret = URLEncoder.encoding(msg, "UTF-8");
// 解码
String str = URLDecoder.decode(ret, "UTF-8");
5. 修改Cookie中指定属性名的属性值:
需求:修改Cookie cookie = new Cookie("currentName", "Jack");
方式1:创建一个同名的新的Cookie。
Cookie c = new Cookie("currentName", "Lucy");
方式2:获取该Cookie对象,通过setValue方法,重新设置新的value值。
Cookie对象.setValue("新的值");
注意:重新设置属性值后需要重新把Cookie放入响应中:
resp.addCookie(c);
6:Cookie的分类(会话Cookie和持久化Cookie):
会话Cookie:关闭浏览器之后,Cookie就销毁了。
持久化Cookie:Cookie可以保存指定的时间段(3天,一周,一个月)。
设置Cookie的最大存活时间:Cookie对象.setMaxAge(int seconds);
seconds == 0 :删除Cookie。
seconds < 0 :会话Cookie。
seconds > 0 :存储指定的秒数。
7:删除Cookie:Cookie对象.setMaxAge(0);