java操作cookie工具类
import javax.servlet.http.Cookie;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
/**
* Cookie工具类
*/
public class CookieUtil {
private CookieUtil() {
}
/**
* 添加cookie
*
* @param response HttpServletResponse
* @param name cookie名称
* @param value cookie值
* @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);
}
/**
* 删除cookie
*
* @param response HttpServletResponse
* @param name cookie名称
*/
public static void removeCookie(HttpServletResponse response, String name) {
Cookie uid = new Cookie(name, null);
uid.setPath("/");
uid.setMaxAge(0);
response.addCookie(uid);
}
/**
* 获取cookie值
*
* @param request HttpServletRequest
* @return 返回cookie值,否则返回null
*/
public static String getUid(HttpServletRequest request, String cookieName) {
Cookie cookies[] = request.getCookies();
for (Cookie cookie : cookies) {
if (cookie.getName().equals(cookieName)) {
return cookie.getValue();
}
}
return null;
}
}
工具类的调用:
CookieUtil.addCookie(response, "mykey", URLEncoder.encode("hello,你好", "utf-8"), 10 * 365 * 24 * 60 * 60);//设置cookie 10年有效
这里注意cookie时间的设置,cookie的规范是不允许设置永久的
cookie.setMaxAge(0);//不记录cookie
cookie.setMaxAge(-1);//会话级cookie,关闭浏览器失效
cookie.setMaxAge(60*60);//过期时间为1小时