天天看点

Cookie的主要属性及Java实现

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;
	}           
下一篇: java获取cookie