Java Cookie工具类代码
- 添加cookie(设置有效时间)
- 检索所有cookie 封装到map集合 以其cookie name作为key cookie value作为value
- 通过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;
}
}
|