| package com.matrix.core.tools; | 
|   | 
| import java.io.UnsupportedEncodingException; | 
| import java.net.URLEncoder; | 
| import java.util.HashMap; | 
| import java.util.Map; | 
|   | 
| import javax.servlet.http.Cookie; | 
| import javax.servlet.http.HttpServletRequest; | 
| import javax.servlet.http.HttpServletResponse; | 
|   | 
| /** | 
|  * 该类可以从浏览器请求中提取出cookies并进行对cookis的相关操作 | 
|  *  | 
|  * @author JIANGYOUYAO | 
|  * @email 935090232@qq.com | 
|  * @date 2018年1月24日 | 
|  */ | 
| public class CookiesUtil { | 
|   | 
|     /** | 
|      * 根据名字获取cookie | 
|      *  | 
|      * @param request | 
|      * @param name | 
|      *            cookie名字 | 
|      * @return | 
|      */ | 
|     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; | 
|         } | 
|     } | 
|   | 
|     /** | 
|      * 将cookie封装到Map里面 | 
|      *  | 
|      * @param request | 
|      * @return | 
|      */ | 
|     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; | 
|     } | 
|   | 
|     /** | 
|      * 保存Cookies | 
|      *  | 
|      * @param response | 
|      *            servlet请求 | 
|      * @param value | 
|      *            保存值 | 
|      * @author jxf | 
|      */ | 
|     public static HttpServletResponse setCookie(HttpServletResponse response, String name, String value, int time,String domain) { | 
|         // new一个Cookie对象,键值对为参数 | 
|         Cookie cookie = new Cookie(name, value); | 
|         // tomcat下多应用共享 | 
|         cookie.setPath("/"); | 
|         cookie.setDomain(domain); | 
|         // 如果cookie的值中含有中文时,需要对cookie进行编码,不然会产生乱码 | 
|         try { | 
|             URLEncoder.encode(value, "utf-8"); | 
|         } catch (UnsupportedEncodingException e) { | 
|             e.printStackTrace(); | 
|         } | 
|         cookie.setMaxAge(time); | 
|         // 将Cookie添加到Response中,使之生效 | 
|         // addCookie后,如果已经存在相同名字的cookie,则最新的覆盖旧的cookie | 
|         response.addCookie(cookie);  | 
|         return response; | 
|     } | 
| } |