最近前端工程师将cookie整理,使用一个对象进行管理,原有的request.getCookies()只能获取到数值或字符串形式的键值,但从Header中可以获取到,故本文给出解决方法
解决方法代码:
public static String getCookieValue(HttpServletRequest request, String cookieName, boolean isDecoder) {
String cookie=request.getHeader("cookie");
String[] cookKeys = cookie.split(";");
if (cookKeys == null || cookieName == null) {
return null;
}
String retValue = null;
try {
for (String cookKey : cookKeys) {
String[] rawCookieNameAndValuePair = cookKey.split("=");
if (rawCookieNameAndValuePair[0].trim().equals(cookieName)) {
if (isDecoder) {
retValue = URLDecoder.decode(rawCookieNameAndValuePair[1].trim(), "UTF-8");
} else {
retValue = rawCookieNameAndValuePair[1].trim();
}
break;
}
}
} catch (UnsupportedEncodingException e) {
e.printStackTrace();
}
System.out.println("===== " + retValue);
return retValue;
}
这里面要注意 trim() 方法的调用