import java.io.UnsupportedEncodingException;
import java.net.URLDecoder;
import java.util.ArrayList;
import java.util.List;
import javax.servlet.http.Cookie;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.springframework.web.context.request.RequestContextHolder;
import org.springframework.web.context.request.ServletRequestAttributes;
public class CookieUtils {
/**
* 删除Cookie
* @param cookieName
*/
public static void deleteCookie(String cookieName) {
HttpServletResponse response = ((ServletRequestAttributes) RequestContextHolder.getRequestAttributes()).getResponse();
Cookie deleteCookie = new Cookie(cookieName, "");
deleteCookie.setPath("/");
deleteCookie.setMaxAge(0);
deleteCookie.setDomain("javaex.com");
response.addCookie(deleteCookie);
}
/**
* 删除Cookie
* @param token
* @param response
*/
public static void deleteCookie(String cookieName, HttpServletResponse response) {
Cookie deleteCookie = new Cookie(cookieName, "");
deleteCookie.setPath("/");
deleteCookie.setMaxAge(0);
deleteCookie.setDomain("javaex.com");
response.addCookie(deleteCookie);
}
/**
* 设置Cookie
* @param cookieName
* @param token
*/
public static void setCookie(String cookieName, String token) {
HttpServletResponse response = ((ServletRequestAttributes) RequestContextHolder.getRequestAttributes()).getResponse();
Cookie addCookie = new Cookie(cookieName, token);
addCookie.setMaxAge(1 * 24 * 60 * 60);
addCookie.setPath("/");
addCookie.setDomain("javaex.com");
response.addCookie(addCookie);
}
/**
* 获取Cookie
* @param cookieName
* @return
*/
public static String getCookie(String cookieName) {
HttpServletRequest request = ((ServletRequestAttributes) RequestContextHolder.getRequestAttributes()).getRequest();
HttpServletResponse response = ((ServletRequestAttributes) RequestContextHolder.getRequestAttributes()).getResponse();
Cookie[] cookieArr = request.getCookies();
if (cookieArr!=null && cookieArr.length>0) {
for (int i=0; i<cookieArr.length; i++) {
Cookie cookie = cookieArr[i];
if (cookie.getName().equals(cookieName)) {
try {
return URLDecoder.decode(cookie.getValue(), "UTF-8");
} catch (UnsupportedEncodingException e) {
deleteCookie(cookieName, response);
break;
}
}
}
}
return "";
}
/**
* 获取Cookie
* @return
*/
public static List<String> getCookieList() {
List<String> cookieList = new ArrayList<>();
HttpServletRequest request = ((ServletRequestAttributes) RequestContextHolder.getRequestAttributes()).getRequest();
Cookie[] cookies = request.getCookies();
if (cookies == null || cookies.length == 0) {
return cookieList;
}
for (Cookie cookie : cookies) {
cookieList.add(cookie.getName() + "=" + cookie.getValue());
}
return cookieList;
}
}