如果设置为负值的话,则为浏览器进程Cookie(内存中保存),关闭浏览器就失效。
如果设置为 0 的话,则该cookie会被删除。
public static void delCookie(HttpServletRequest request,HttpServletResponse response,String name) {
Cookie cookie = getCookieByName(request, name);
if(cookie != null) {
cookie.setMaxAge(0);
cookie.setPath("/");
response.addCookie(cookie);
}
}
/**
* set cookie
* @param response
* @param name
* @param value
* @param maxAge
*/
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);
response.addCookie(cookie);
}
public static Cookie getCookieByName(HttpServletRequest request,String name){
Map<String,Cookie> cookieMap = ReadCookieMap(request);
if(cookieMap.containsKey(name)){
Cookie cookie = (Cookie)cookieMap.get(name);
return cookie;
}else{
return null;
}
}
private static Map<String,Cookie> ReadCookieMap(HttpServletRequest request){
Map<String,Cookie> cookieMap = new HashMap<String,Cookie>();
Cookie[] cookies = request.getCookies();
if(null!=cookies){
for(Cookie cookie : cookies){
cookieMap.put(cookie.getName(), cookie);
}
}
return cookieMap;
}