操作 Cookie

Cookie包含的属性


 

名称, 内容, 主机, 路径 .... 

 

Cookie的唯一性

 

一个唯一的Cookie 由 名称,主机,路径 确定.  这里路径是最容易被忽略的,如下图,这两个Cookie虽然名称,主机名都相同,但是确实两个不同的Cookie.

 

1) 有两个同名的 (PRODUCTS_IN_COOKIE)

 

2) 两个同名的Cookie 唯一不同的是,他们的 路径,一个指向 /user/ 而 另外一个 指向 根 /


如此可见, 在配置 Cookie 的时候, 路径 也是决定 Cookie 唯一性的 元素.

 

所以在设定一个唯一的Cookie 的时候,一定要记得 不但要设置唯一的名称而且还要 设置一个统一的路径,如下 

Cookie cookie = new Cookie(SessionAttrEnum.PRODUCTS_IN_COOKIE.getValue(), sb.toString() );
cookie.setMaxAge( 10000 );
cookie.setValue(sb.toString());
cookie.setPath( WebConstantsEnum.WEB_ROOT_PATH.getValue() );

response.addCookie( cookie );

 

如何获得Cookie

Cookie[] cks = request.getCookies();

 

如何更新一个Cookie的 value

1) 通过唯一主键获得该 Cookie, 然后重新设置 value

2) 通过 response.addCookie(cookie) 重新写回这个 Cookie

 

如何删除一个Cookie

1) 通过唯一主键获得该 Cookie

2) 设置 value 为 Null, maxAge 为 0

3)  通过 response.addCookie(cookie) 重新写回这个 Cookie

cookie.setValue(null);
cookie.setMaxAge(0);
cookie.setPath( WebConstantsEnum.WEB_ROOT_PATH.getValue() );
response.addCookie( cookie );

  

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值