JAVA操作Cookie工具类

Java Cookie工具类代码

  1. 添加cookie(设置有效时间)
  2. 检索所有cookie 封装到map集合 以其cookie name作为key cookie value作为value
  3. 通过cookie name 获取 cookie value
import java.util.HashMap;
import java.util.Map;

import javax.servlet.http.Cookie;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

public class CookieTool {
    /**
     * 添加cookie
     * 
     * @param response
     * @param name
     * @param value
     * @param maxAge 有效时间
     */
    public static void addCookie(HttpServletResponse response, String name, String value, int maxAge) {
        Cookie cookie = new Cookie(name, value);
        cookie.setPath("/");
        cookie.setMaxAge(maxAge);
        cookie.setDomain(".189.cn"); // cookie作用域
        response.addCookie(cookie);
    }

    /**
     * 检索所有cookie 封装到map集合 以其cookie name作为key cookie value作为value
     * 
     * @param request
     * @return
     */
    public static Map<String, String> ReadCookieMap(HttpServletRequest request) {
        Map<String, String> cookieMap = new HashMap<String, String>();
        Cookie[] cookies = request.getCookies();
        if (null != cookies) {
            for (Cookie cookie : cookies) {
                cookieMap.put(cookie.getName(), cookie.getValue());
            }
        }
        return cookieMap;
    }

    /**
     * 通过cookie name 获取 cookie value
     * 
     * @param request
     * @param name
     * @return
     */
    public static String getCookieValueByName(HttpServletRequest request, String name) {
        Map<String, String> cookieMap = ReadCookieMap(request);
        if (cookieMap.containsKey(name)) {
            String cookieValue = (String) cookieMap.get(name);
            return cookieValue;
        } else {
            return null;
        }
    }

}



1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
import  java.io.IOException;
import  java.util.HashMap;
import  java.util.Map;
 
import  javax.servlet.http.Cookie;
import  javax.servlet.http.HttpServletRequest;
import  javax.servlet.http.HttpServletResponse;
 
public  class  CookieUtils {
     
     public  static  final  int  COOKIE_MAX_AGE =  7  24  3600 ;
     public  static  final  int  COOKIE_HALF_HOUR =  30  60 ;
       
     /**
      * 根据Cookie名称得到Cookie对象,不存在该对象则返回Null
     
      * @param request
      * @param name
      * @return
      */ 
     public  static  Cookie getCookie(HttpServletRequest request, String name) { 
         Cookie[] cookies = request.getCookies(); 
         if  (StrUtils.isEmptyArray(cookies)) { 
             return  null
        
         Cookie cookie =  null
         for  (Cookie c : cookies) {
             if  (name.equals(c.getName())) { 
                 cookie = c; 
                 break
            
        
         return  cookie; 
     }
     
     /**
      * 根据Cookie名称直接得到Cookie值
     
      * @param request
      * @param name
      * @return
      */ 
     public  static  String getCookieValue(HttpServletRequest request, String name) { 
         Cookie cookie = getCookie(request, name); 
         if (cookie !=  null ){
             return  cookie.getValue();
         }
         return  null
     }
     
     /**
      * 移除cookie
      * @param request
      * @param response
      * @param name 这个是名称,不是值
      */
     public  static  void  removeCookie(HttpServletRequest request, 
             HttpServletResponse response, String name) { 
         if  ( null  == name) { 
             return
        
         Cookie cookie = getCookie(request, name); 
         if ( null  != cookie){ 
             cookie.setPath( "/" ); 
             cookie.setValue( "" ); 
             cookie.setMaxAge( 0 ); 
             response.addCookie(cookie);
        
     }
     
     /**
      * 添加一条新的Cookie,可以指定过期时间(单位:秒)
     
      * @param response
      * @param name
      * @param value
      * @param maxValue
      */ 
     public  static  void  setCookie(HttpServletResponse response, String name, 
             String value,  int  maxValue) { 
         if  (StrUtils.isBlank(name)) { 
             return
        
         if  ( null  == value) { 
             value =  ""
        
         Cookie cookie =  new  Cookie(name, value); 
         cookie.setPath( "/" ); 
         if  (maxValue !=  0 ) { 
             cookie.setMaxAge(maxValue); 
         else 
             cookie.setMaxAge(COOKIE_HALF_HOUR); 
        
         response.addCookie(cookie);
         try  {
             response.flushBuffer();
         catch  (IOException e) {
             e.printStackTrace();
         }
     }
     
     /**
      * 添加一条新的Cookie,默认30分钟过期时间
     
      * @param response
      * @param name
      * @param value
      */ 
     public  static  void  setCookie(HttpServletResponse response, String name, 
             String value) { 
         setCookie(response, name, value, COOKIE_HALF_HOUR); 
    
  
     /**
      * 将cookie封装到Map里面
      * @param request
      * @return
      */
     public  static  Map<String,Cookie> getCookieMap(HttpServletRequest request){ 
         Map<String,Cookie> cookieMap =  new  HashMap<String,Cookie>();
         Cookie[] cookies = request.getCookies();
         if (!StrUtils.isEmptyArray(cookies)){
             for (Cookie cookie : cookies){
                 cookieMap.put(cookie.getName(), cookie);
             }
         }
         return  cookieMap;
     }
     
     
}

猜你喜欢

转载自blog.csdn.net/albenxie/article/details/80309276