2
3 import javax.servlet.http.Cookie;
4 import javax.servlet.http.HttpServletRequest;
5 import javax.servlet.http.HttpServletResponse;
6
7
8 public class CookieHelper {
9
10
11 /**
12 * 设置cookie有效期,根据需要自定义[本系统设置为30天]
13 */
14 private final static int COOKIE_MAX_AGE = 60 * 60 * 24 * 30;
15
16 /**
17 *
18 * @desc 删除指定Cookie
19 * @param response
20 * @param cookieName
21 * cookie的名称
22 */
23 public static void removeCookie( HttpServletRequest request, HttpServletResponse response,
24 String cookieName) {
25
26 Cookie[] cookies = request.getCookies();
27 for (int i = 0; i < cookies.length; i++) {
28 Cookie cookie = new Cookie(cookieName, null);
29 cookie.setMaxAge(0);
30 response.addCookie(cookie);
31 }
32 }
33
34 /**
35 *
36 * @desc 删除指定Cookie
37 * @param response
38 * @param cookie
39 * @param domain
40 */
41 public static void removeCookie(HttpServletRequest request , HttpServletResponse response,
42 String cookieName, String domain) {
43 Cookie[] cookies = request.getCookies();
44 for (int i = 0; i < cookies.length; i++) {
45 Cookie cookie = new Cookie(cookieName, null);
46 cookie.setMaxAge(0);
47 cookie.setDomain(domain);
48 response.addCookie(cookie);
49 }
50 }
51
52 /**
53 *
54 * @desc 根据Cookie名称得到Cookie的值,没有返回Null
55 * @param name
56 * Cookie名称
57 * @return
58 */
59 public static String getCookieValue(HttpServletRequest request ,String name) {
60
61 Cookie cookie = getCookie(request , name);
62 if (cookie != null) {
63 return cookie.getValue();
64 } else {
65 return null;
66 }
67 }
68
69 /**
70 *
71 * @desc 根据Cookie名称得到Cookie对象,不存在该对象则返回Null
72 * @param request
73 * @param name
74 */
75 public static Cookie getCookie(HttpServletRequest request , String name) {
76
77 Cookie cookies[] = request.getCookies();
78 if (cookies == null || name == null || name.length() == 0) {
79 return null;
80 }
81 Cookie cookie = null;
82 for (int i = 0; i < cookies.length; i++) {
83 if (!cookies[i].getName().equals(name)) {
84 continue;
85 }
86 cookie = cookies[i];
87 if (request.getServerName().equals(cookie.getDomain())) {
88 break;
89 }
90 }
91 return cookie;
92 }
93
94 /**
95 *
96 * @desc 添加一条新的Cookie信息,默认有效时间为一个月
97 * @param response
98 * @param name
99 * @param value
100 */
101 public static void setCookie(HttpServletResponse response, String name,
102 String value) {
103 setCookie(response, name, value, COOKIE_MAX_AGE);
104 }
105
106 /**
107 *
108 * @desc 添加一条新的Cookie信息,可以设置其最长有效时间(单位:秒)
109 * @param response
110 * @param name
111 * @param value
112 * @param maxAge
113 */
114 public static void setCookie(HttpServletResponse response, String name,
115 String value, int maxAge) {
116 if (value == null) {
117 value = "";
118 }
119 Cookie cookie = new Cookie(name, value);
120 if (maxAge > 0) {
121 cookie.setMaxAge(maxAge);
122 } else {
123 cookie.setMaxAge(COOKIE_MAX_AGE);
124 }
125 response.addCookie(cookie);
126 }
127
128 }