Skip to content
This repository has been archived by the owner on Aug 20, 2021. It is now read-only.

CookieUtil

feilong edited this page Jun 3, 2016 · 15 revisions

Cookie 工具类.

注意:该类创建Cookie仅支持Servlet3以上的版本

#使用说明:

##case:创建Cookie 1.创建一个name名字是shopName,value是feilong的 Cookie (通常出于安全起见,存放到Cookie的值需要加密或者混淆,此处为了举例方便使用原码) 可以调用addCookie(String, String, HttpServletResponse) 如:

	CookieUtil.addCookie("shopName","feilong",response) 

注意:该方法创建的cookie,有效期是默认值 -1,即浏览器退出就删除

2.如果想给该cookie加个过期时间,有效期一天,可以调用 addCookie(String, String, int, HttpServletResponse) 如:

	CookieUtil.addCookie("shopName","feilong", TimeInterval.SECONDS_PER_DAY,response) 

3.如果还想给该cookie加上httpOnly等标识,可以调用 addCookie(CookieEntity, HttpServletResponse) 如:

	CookieEntity cookieEntity = new CookieEntity("shopName", "feilong", TimeInterval.SECONDS_PER_DAY);
	cookieEntity.setHttpOnly(true);
	CookieUtil.addCookie(cookieEntity, response);

此外,如果有特殊需求,还可以对cookieEntity设置 path,domain等属性

case:获取Cookie

1.可以使用 getCookie(HttpServletRequest, String)来获得 Cookie对象 如:

	CookieUtil.getCookie(request, "shopName") 

2.更多的时候,可以使用 getCookieValue(HttpServletRequest, String)来获得Cookie对象的值 如:

	CookieUtil.getCookieValue(request, "shopName") 

返回 "feilong" 字符串

3.当然,你也可以使用 getCookieMap(HttpServletRequest)来获得 所有的Cookie name和value组成的map 如:

	CookieUtil.getCookieMap(request) 

使用场景,如 com.feilong.servlet.http.RequestLogBuilder.build()

case:删除Cookie

1.可以使用 deleteCookie(String, HttpServletResponse)来删除Cookie 如:

	CookieUtil.deleteCookie(request, "shopName") 

2.特殊时候,由于Cookie原先保存时候设置了path属性,可以使用 deleteCookie(CookieEntity, HttpServletResponse)来删除Cookie 如:

	CookieEntity cookieEntity = new CookieEntity("shopName", "feilong");
	cookieEntity.setPath("/member/account");
	CookieUtil.deleteCookie(request, "shopName");
Clone this wiki locally