cookie常用API

本文详细介绍了如何通过Java Servlet设置和管理HTTP Cookies,包括设置有效期、域名和路径限制等关键属性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1.setMaxAge

cookie的有效期,正值为以秒计算过时失效,负值为关闭客户端失效,默认值为-1。

2.setDomain

用于指定只有请求了指定的域名,才会带上该cookie

3.setPath

只有访问该域名下的cookieDemo的这个路径地址才会带cookie

4.setValue

重置value的值

protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
		//获取客户段发过来的cookie
		Cookie[] cookies = request.getCookies();
		if(cookies!=null) {
			for (Cookie c : cookies) {
				System.out.println(c.getName()+"="+c.getValue());
			}
		}
		
		response.getWriter().write("Hello cookie..");
		
		//添加多个cookie
		Cookie cookie = new Cookie("name","刘备");
		//cookie的有效期
		//正值为以秒计算过时失效,负值为关闭客户端失效,默认值为-1
		cookie.setMaxAge(60*60*24*3);  		//设置有效期为3天
		response.addCookie(cookie);
		Cookie cookie2 = new Cookie("age","63");
		response.addCookie(cookie2);
		
		//用于指定只有请求了指定的域名,才会带上该cookie
		cookie.setDomain(".huaban.com");
		
		//只有访问该域名下的cookieDemo的这个路径地址才会带cookie
		cookie.setPath("/CookieDemo");
		
		
	
	
	}



### 常见的Cookie操作方法 #### 创建Cookie 在JavaScript中,可以通过`document.cookie`属性来创建一个新的Cookie。此过程涉及指定名称、值和可选的有效期以及其他参数。 ```javascript function setCookie(name, value, days) { let expires = ""; if (days) { const date = new Date(); date.setTime(date.getTime() + (days * 24 * 60 * 60 * 1000)); expires = "; expires=" + date.toUTCString(); } document.cookie = name + "=" + (value || "") + expires + "; path=/"; } ``` 上述函数允许设定带有过期日期的Cookie[^1]。 #### 读取Cookie 为了获取已存在的Cookie,通常需要解析`document.cookie`字符串,因为这个属性返回的是一个包含所有Cookies的字符串形式。 ```javascript function getCookie(name) { const nameEQ = name + "="; const ca = document.cookie.split(';'); for(let i=0;i < ca.length;i++) { let c = ca[i]; while (c.charAt(0)==' ') c = c.substring(1,c.length); if (c.indexOf(nameEQ) == 0) return c.substring(nameEQ.length,c.length); } return null; } ``` 这段代码遍历所有的Cookie并查找特定名字对应的值。 #### 修改Cookie 更新现有Cookie实际上就是重新设置它——即使只是改变其值或延长有效期。这同样利用了`setCookie()`功能,只需提供相同的名称即可覆盖旧的数据。 #### 删除Cookie 要移除某个Cookie,只需要将其最大年龄(max-age)设为零或者过去的时间戳。 ```javascript function deleteCookie(name) { document.cookie = name +'=; Path=/; Expires=Thu, 01 Jan 1970 00:00:01 GMT;'; } ``` 这里通过将Expires属性设置成过去的日期来实现删除效果[^3]。 #### 使用jQuery插件简化操作 对于那些希望减少原生DOM API复杂度的人来说,可以考虑使用像[jQuery Cookie](https://github.com/carhartl/jquery-cookie)这样的库来进行更简便的操作。不过需要注意的是,在现代项目里推荐直接采用浏览器内置API或是更加现代化的解决方案比如LocalStorage或SessionStorage[^4]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值