Cookie的主要属性及Java实现

本文详细介绍了Cookie的工作原理,包括其主要属性如name-value对、Expires、Path、Domain和MaxAge,并提供了Java代码实例来展示如何设置和获取Cookie。

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

Cookie:
服务器发送给浏览器的一个标记,通过Response Header中的Set-Cookie头发送。
浏览器请求的时候,会通过Request Header中的Cookie头把它发送回给服务器。

主要属性:
  • name-value对:不言自明
  • Expires:过期时间
  • Path:cookie在哪个路径下生效。比如www.abc.com/a/index.html设置了一个cookie,那么www.abc.com/a/下面的其他页面也可以访问该cookie,www.abc.com/b/下面的页面就不能访问。如果要突破这个限制,可以设置path为“/”
  • Domain:表示cookie可以被访问的域,缺省为请求的地址。比如,属于www.abc.com的cookie只能在这个域名的访问中被使用。可以设置这个属性,指定cookie的生效域。如果要设置通用的,可以这样:.abc.com

注:
  • 如果不设置MaxAge,则浏览器关闭时就被删除。
  • 隐私浏览方式:会禁用Cookie。

Java代码实现(设置和获取):
	/**
	 * 设置cookie到response中
	 * @param response
	 * @param name  cookie名字
	 * @param value cookie值
	 * @param maxAge cookie生命周期, 以分钟为单位
	 */
	public static void addCookie(HttpServletResponse response, String name, String value, int maxAge){
	    Cookie cookie = new Cookie(name, value);
	    cookie.setPath("/");
	    if(maxAge>0){
	    	cookie.setMaxAge(maxAge*60);
	    }
	    response.addCookie(cookie);
	}
	
	/**
	 * 根据名字从request中获取cookie的值
	 * @param request
	 * @param name cookie名字
	 * @return
	 */
	public static String getCookieByName(HttpServletRequest request, String name){
		Cookie[] cookies = request.getCookies();//获取cookie数组
		for(Cookie cookie : cookies){
		    if(cookie.getName().equals(name)){
		    	return cookie.getValue();
		    }
		}
		return null;
	}



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值