Cookie工具类

  1 import javax.servlet.http.Cookie;
  2 import javax.servlet.http.HttpServletRequest;
  3 import javax.servlet.http.HttpServletResponse;
  4 import java.io.UnsupportedEncodingException;
  5 import java.net.URLDecoder;
  6 import java.net.URLEncoder;
  7 
  8 /**
  9  * Cookie工具类
 10  */
 11 public class CookieUtil {
 12     /**
 13      * 设置 Cookie(生成时间为1天)
 14      * @param name 名称
 15      * @param value 值
 16      */
 17     public static void setCookie(HttpServletResponse response, String name, String value) {
 18         setCookie(response, name, value, 60*60*24);
 19     }
 20 
 21     /**
 22      * 设置 Cookie
 23      * @param name 名称
 24      * @param value 值
 25      */
 26     public static void setCookie(HttpServletResponse response, String name, String value, String path) {
 27         setCookie(response, name, value, path, 60*60*24);
 28     }
 29 
 30     /**
 31      * 设置 Cookie
 32      * @param name 名称
 33      * @param value 值
 34      * @param maxAge 生存时间(单位秒)
 35      */
 36     public static void setCookie(HttpServletResponse response, String name, String value, int maxAge) {
 37         setCookie(response, name, value, "/", maxAge);
 38     }
 39 
 40     /**
 41      * 设置 Cookie
 42      * @param name 名称
 43      * @param value 值
 44      * @param maxAge 生存时间(单位秒)
 45      */
 46     public static void setCookie(HttpServletResponse response, String name, String value, String path, int maxAge) {
 47         Cookie cookie = new Cookie(name, null);
 48         cookie.setPath(path);
 49         cookie.setMaxAge(maxAge);
 50         try {
 51             cookie.setValue(URLEncoder.encode(value, "utf-8"));
 52         } catch (UnsupportedEncodingException e) {
 53             e.printStackTrace();
 54         }
 55         response.addCookie(cookie);
 56     }
 57 
 58     /**
 59      * 获得指定Cookie的值
 60      * @param name 名称
 61      * @return 62      */
 63     public static String getCookie(HttpServletRequest request, String name) {
 64         return getCookie(request, null, name, false);
 65     }
 66     /**
 67      * 获得指定Cookie的值,并删除。
 68      * @param name 名称
 69      * @return 70      */
 71     public static String getCookie(HttpServletRequest request, HttpServletResponse response, String name) {
 72         return getCookie(request, response, name, true);
 73     }
 74     /**
 75      * 获得指定Cookie的值
 76      * @param request 请求对象
 77      * @param response 响应对象
 78      * @param name 名字
 79      * @param isRemove 是否移除
 80      * @return 81      */
 82     public static String getCookie(HttpServletRequest request, HttpServletResponse response, String name, boolean isRemove) {
 83         String value = null;
 84         Cookie[] cookies = request.getCookies();
 85         if (cookies != null) {
 86             for (Cookie cookie : cookies) {
 87                 if (cookie.getName().equals(name)) {
 88                     try {
 89                         value = URLDecoder.decode(cookie.getValue(), "utf-8");
 90                     } catch (UnsupportedEncodingException e) {
 91                         e.printStackTrace();
 92                     }
 93                     if (isRemove) {
 94                         cookie.setMaxAge(0);
 95                         response.addCookie(cookie);
 96                     }
 97                 }
 98             }
 99         }
100         return value;
101     }
102 }

IT技术和行业交流群 417691667

原文地址:https://www.cnblogs.com/sun-rain/p/5723851.html