/**
*
* 获取cookie的值
* @param name:cookie的名称
*/
public static String getCookieValueByName(HttpServletRequest request, String name) {
Map<String, Cookie> cookieMap = WebUtil.readCookieMap(request);
if (cookieMap.containsKey(name)) {
Cookie cookie = (Cookie) cookieMap.get(name);
return cookie.getValue();
} else {
return null;
}
}
/**
* 添加cookie
*
* @param response
* @param name
* cookie的名称
* @param value
* cookie的值
* @param maxAge
* cookie存放的时间(以秒为单位,假如存放三天,即3*24*60*60; 如果值为0,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);
response.addCookie(cookie);
}
protected static Map<String, Cookie> readCookieMap(HttpServletRequest request) {
Map<String, Cookie> cookieMap = new HashMap<String, Cookie>();
Cookie[] cookies = request.getCookies();
if (null != cookies) {
for (int i = 0; i < cookies.length; i++) {
cookieMap.put(cookies[i].getName(), cookies[i]);
}
}
return cookieMap;
}
/**
* 根据cookie名字删除对应的cookie
*
* @param name
*/
public static void delCookie(HttpServletRequest request, HttpServletResponse response,
String name) {
Cookie[] cookies = request.getCookies();
if (cookies != null) {
for (Cookie c : cookies) {
if (c.getName().equals(name)) {
c.setMaxAge(0);
c.setPath("/"); //这里也很重要:必须设置和添加时设置的路径相同
response.addCookie(c);
System.out.println(c.getName());
break;
}
}
}
}