-
Notifications
You must be signed in to change notification settings - Fork 8
CookieUtil
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等属性
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()
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");