Cookie

一、设置Cookie

	public static void SetCookie(HttpServletRequest request,
			HttpServletResponse response, String strName, String strValue,
			String uri, int hour) {
		// 方式一
		// response.setHeader("Set-Cookie", "userName=张三");

		// 方式二
		Cookie c = new Cookie(strName, strValue);
		if (hour > 0) {
			// 没有设置过MaxAge则这个Cookie是一个会话级别的Cookie,这个Cookie信息打给浏览器后浏览器会将它保存在浏览器的内存中,这意味着只要浏览器已关闭随着浏览器内存的销毁Cookie信息也就消失了.
			// 设置MaxAge,则会将这个Cookie信息以文件的形式保存在浏览器的临时文件夹中,保存到指定的时间到来位置.由于这些浏览器都能在临时文件夹中看到cookie文件,所以在cookie失效之前cookie信息都存在.
			c.setMaxAge(3600 * hour);
		}
		// 用来通知浏览器在访问服务器中的哪个路径及其子路径时带着当前cookie信息过来
		// 如果不明确设置,则默认的路径是发送Cookie的Servlet所在的路径
		if (uri != null && uri != "") {
			c.setPath(uri);
		} else {
			c.setPath(request.getContextPath());
		}
		// 用来通知浏览器在访问哪个域名的时候带着当前的cookie信息.
		// 但是要注意,现代的浏览器一旦发现cookie设置过domain信息则会拒绝接受这个Cookie.我们平常不要设置这个方法
		// c.setDomain(".baidu.com");
		response.addCookie(c);
	}



二、查找指定cookie

	public static String GetCookie(HttpServletRequest request, String strName) {
		Cookie[] cs = request.getCookies();
		Cookie findC = null;
		if (cs != null) {
			for (Cookie c : cs) {
				if (strName.equals(c.getName())) {
					findC = c;
				}
			}
		}
		if (findC != null) {
			return findC.getValue();
		}
		return null;
	}



三、删除cookie


		// 删除一个Cookie,发送一个同名同path的cookie,maxage设置为0
		// 注意,删除cookie时,path必须一致,否则不会删除(浏览器通过cookie的name+path来标识一个cookie)
		Cookie c = new Cookie(strName, null);
		c.setMaxAge(0);
		c.setPath(request.getContextPath());
		response.addCookie(c);



版权声明:本文为博主原创文章,未经博主允许不得转载。

原文地址:https://www.cnblogs.com/ful1021/p/4804316.html