cookie工具类
public final class CookieUtils {
public static String
getCookieValue(HttpServletRequest request
, String cookieName
) {
return getCookieValue(request
, cookieName
, false);
}
public static String
getCookieValue(HttpServletRequest request
, String cookieName
, boolean isDecoder
) {
Cookie
[] cookieList
= request
.getCookies();
if (cookieList
== null
|| cookieName
== null
) {
return null
;
}
String retValue
= null
;
try {
for (int i
= 0; i
< cookieList
.length
; i
++) {
if (cookieList
[i
].getName().equals(cookieName
)) {
if (isDecoder
) {
retValue
= URLDecoder
.decode(cookieList
[i
].getValue(), "UTF-8");
} else {
retValue
= cookieList
[i
].getValue();
}
break;
}
}
} catch (UnsupportedEncodingException e
) {
e
.printStackTrace();
}
return retValue
;
}
public static String
getCookieValue(HttpServletRequest request
, String cookieName
, String encodeString
) {
Cookie
[] cookieList
= request
.getCookies();
if (cookieList
== null
|| cookieName
== null
) {
return null
;
}
String retValue
= null
;
try {
for (int i
= 0; i
< cookieList
.length
; i
++) {
if (cookieList
[i
].getName().equals(cookieName
)) {
retValue
= URLDecoder
.decode(cookieList
[i
].getValue(), encodeString
);
break;
}
}
} catch (UnsupportedEncodingException e
) {
e
.printStackTrace();
}
return retValue
;
}
public static void setCookie(HttpServletRequest request
, HttpServletResponse response
, String cookieName
,
String cookieValue
) {
setCookie(request
, response
, cookieName
, cookieValue
, -1);
}
public static void setCookie(HttpServletRequest request
, HttpServletResponse response
, String cookieName
,
String cookieValue
, int cookieMaxage
) {
setCookie(request
, response
, cookieName
, cookieValue
, cookieMaxage
, false);
}
public static void setCookie(HttpServletRequest request
, HttpServletResponse response
, String cookieName
,
String cookieValue
, boolean isEncode
) {
setCookie(request
, response
, cookieName
, cookieValue
, -1, isEncode
);
}
public static void setCookie(HttpServletRequest request
, HttpServletResponse response
, String cookieName
,
String cookieValue
, int cookieMaxage
, boolean isEncode
) {
doSetCookie(request
, response
, cookieName
, cookieValue
, cookieMaxage
, isEncode
);
}
public static void setCookie(HttpServletRequest request
, HttpServletResponse response
, String cookieName
,
String cookieValue
, int cookieMaxage
, String encodeString
) {
doSetCookie(request
, response
, cookieName
, cookieValue
, cookieMaxage
, encodeString
);
}
public static void deleteCookie(HttpServletRequest request
, HttpServletResponse response
, String cookieName
) {
doSetCookie(request
, response
, cookieName
, "", -1, false);
}
private static final void doSetCookie(HttpServletRequest request
, HttpServletResponse response
, String cookieName
,
String cookieValue
, int cookieMaxage
, boolean isEncode
) {
try {
if (cookieValue
== null
) {
cookieValue
= "";
} else if (isEncode
) {
cookieValue
= URLEncoder
.encode(cookieValue
, "utf-8");
}
Cookie cookie
= new Cookie(cookieName
, cookieValue
);
if (cookieMaxage
> 0)
cookie
.setMaxAge(cookieMaxage
);
if (null
!= request
) {
String domainName
= getDomainName(request
);
System
.out
.println(domainName
);
if (!"localhost".equals(domainName
)) {
}
}
cookie
.setPath("/");
response
.addCookie(cookie
);
} catch (Exception e
) {
e
.printStackTrace();
}
}
private static final void doSetCookie(HttpServletRequest request
, HttpServletResponse response
, String cookieName
,
String cookieValue
, int cookieMaxage
, String encodeString
) {
try {
if (cookieValue
== null
) {
cookieValue
= "";
} else {
cookieValue
= URLEncoder
.encode(cookieValue
, encodeString
);
}
Cookie cookie
= new Cookie(cookieName
, cookieValue
);
if (cookieMaxage
> 0)
cookie
.setMaxAge(cookieMaxage
);
if (null
!= request
) {
String domainName
= getDomainName(request
);
System
.out
.println(domainName
);
if (!"localhost".equals(domainName
)) {
}
}
cookie
.setPath("/");
response
.addCookie(cookie
);
} catch (Exception e
) {
e
.printStackTrace();
}
}
private static final String
getDomainName(HttpServletRequest request
) {
String domainName
= null
;
String serverName
= request
.getRequestURL().toString();
if (serverName
== null
|| serverName
.equals("")) {
domainName
= "";
} else {
final int end
= serverName
.lastIndexOf("/");
serverName
= serverName
.substring(0, end
);
final String
[] domains
= serverName
.split("\\.");
int len
= domains
.length
;
if (len
> 3) {
domainName
= "." + domains
[len
- 3] + "." + domains
[len
- 2] + "." + domains
[len
- 1];
} else if (len
<= 3 && len
> 1) {
domainName
= "." + domains
[len
- 2] + "." + domains
[len
- 1];
} else {
domainName
= serverName
;
}
}
if (domainName
!= null
&& domainName
.indexOf(":") > 0) {
String
[] ary
= domainName
.split("\\:");
domainName
= ary
[0];
}
return domainName
;
}
}