打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
Java基础系列(基础):Java使用Cookie增删改查操作!

什么是Cookie?

Cookie是由W3C组织提出,最早由NetScape社区发展的一种机制。

Cookie是存储于访问者的计算机中的变量。每当同一台计算机通过浏览器请求某个页面时,就会发送这个cookie。

Cookie的作用就是用于解决"如何记录客户端的用户信息":

  • 当用户访问web页面时,他的名字可以记录在Cookie中。

  • 在用户下一次访问该页面时,可以在Cookie中读取用户访问记录。

Cookie实际上是一小段文本信息(上限为4kb)。客户端请求服务器,如果服务器需要记录该用户状态,就使用response向客户端浏览器颁发一个Cookie。客户端浏览器可以把Cookie保存起来。当浏览器再请求该网站时,浏览器把请求的网址连同该Cookie一同提交给服务器。服务器检查该Cookie,以此来辨认用户状态。服务还可以根据需要修改Cookie的内容。


Cookie的属性

属性名描述
nameCookie的名称,Cookie一旦创建,名称便不可更改
valueCookie的值,如果值为Unicode字符,需要为字符编码。如果为二进制数据,则需要使用BASE64编码
maxAgeCookie失效的时间,单位秒。如果为整数,则该Cookie在maxAge秒后失效。如果为负数,该Cookie为临时Cookie,关闭浏览器即失效,浏览器也不会以任何形式保存该Cookie。如果为0,表示删除该Cookie。默认为-1。
secure该Cookie是否仅被使用安全协议传输。安全协议。安全协议有HTTPS,SSL等,在网络上传输数据之前先将数据加密。默认为false。
pathCookie的使用路径。如果设置为“/sessionWeb/”,则只有contextPath为“/sessionWeb”的程序可以访问该Cookie。如果设置为“/”,则本域名下contextPath都可以访问该Cookie。注意最后一个字符必须为“/”。
domain可以访问该Cookie的域名。如果设置为“.google.com”,则所有以“google.com”结尾的域名都可以访问该Cookie。注意第一个字符必须为“.”。
Comment该Cookie的用处说明,浏览器显示Cookie信息的时候显示该说明。
versionCookie使用的版本号。0表示遵循Netscape的Cookie规范,1表示遵循W3C的RFC 2109规范

获取所有Cookie
public static Cookie[] getCookies(HttpServletRequest request) {    return request.getCookies();}

获取cookie很简单,直接从request中获取即可。


根据名称获取指定Cookie
public static Cookie getCookieByName(HttpServletRequest request, String name) {    if (StringUtils.isBlank(name)) {        return null;    }    Cookie[] cookies = getCookies(request);    if (null != cookies) {        for (Cookie cookie : cookies) {            if (name.equals(cookie.getName())) {                return cookie;            }        }    }    return null;}

从所有cookie中循环判断进行获取指定cookie。


添加Cookie
public static boolean addCookie(HttpServletResponse response, String name, String value, int maxAge) {    if (StringUtils.isBlank(name) || StringUtils.isBlank(value)) {        return false;    }    Cookie cookie = new Cookie(name.trim(), value.trim());    if (maxAge <= 0) {        maxAge = Integer.MAX_VALUE;    }    cookie.setMaxAge(maxAge);    cookie.setPath("/");    response.addCookie(cookie);    return true;}

这个添加很简单。


删除Cookie
public static boolean removeCookie(HttpServletRequest request, HttpServletResponse response, String name) {    if (StringUtils.isBlank(name)) {        return false;    }    Cookie[] cookies = getCookies(request);    if (null != cookies)         for (Cookie cookie : cookies) {            if (name.equals(cookie.getName())) {                cookie.setValue(null);                cookie.setMaxAge(0);                cookie.setPath("/");                response.addCookie(cookie);        	     return true;            }        }    }    return false;}

删除cookie,把 value设置为null,把 max-age设置为0就行了。


到这里:Java基础系列(基础):Java使用Cookie增删改查操作!分享完毕了,快去试试吧!


最后

  • 编辑操作和删除操作一样,但是需要注意的是修改、删除Cookie时,除value、maxAge之外的所有属性,例如name、path、domain等,都要与原Cookie完全一样。否则,浏览器将视为两个不同的Cookie不予覆盖,导致修改、删除失败。

本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
Java中Cookie的使用
Java读取Cookie
isEmpty与isBlank区别
用JSP处理COOKIE
用JSP操作Cookie
java对cookie的操作
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服