检查后台cookie值 读取不到的处理步骤和方法
1,检查是否给cookie赋值。前端还是后台
2,检查path是否设定好范围。cookie 要设定path的属性来确定使用范围
3,检查cookie值是否包含特殊字符。无特殊字符可获取到,有特殊字符无法获取
Cookie [] cookies = request.getCookies(); 获取的cookie 不能包含特殊字符
String cookie = request.getHeader("cookie"),获取所有的cookie值,可根据需要进行字符串解析获取
/**
* 获取cookie的值
* @param request
* @return
*/
private HashMap<String,String> getCookieValues(HttpServletRequest request){
HashMap<String,String> infoMaps = new HashMap<String,String>();
Cookie [] cookies = request.getCookies();
if(null != cookies && cookies.length>0){
for(int i=0;i<cookies.length;i++){
Cookie cook = cookies[i];
infoMaps.put(cook.getName(),cook.getValue());
}
}
return infoMaps;
}
/**
* 校验 cookie 获取 json 对象的特定值
* @param
* @return
*/
private Boolean boolGetFieldInfo(String str){
boolean result = false;
if(StrIsEmpty(str)){
return result;
}
String [] strs = str.split(";");
for(int i = 0;i<strs.length && !result;i++){
if(StrIsEmpty(strs[i])){
continue;
}
String [] temp = strs[i].split("=");
if(0 == temp.length || 1 == temp.length){
continue;
}
if("校验字段".equalsIgnoreCase(temp[0].trim())){
if(!StrIsEmpty(temp[1]))
Map maps = (Map) JSON.parse(temp[1].trim());
if(null != maps && null != maps.get("UserName")){
String userName = (String)maps.get("UserName");
if(!StrIsEmpty(userName)){
result = true;
return result;
}
}
}
}
}
return result;
};
本文介绍了处理Cookie值无法获取的问题,包括检查是否正确赋值、设置Path属性以及处理特殊字符。提供了一个Java方法来获取和校验Cookie值,通过解析Header中的Cookie字符串来获取特定值。

2113

被折叠的 条评论
为什么被折叠?



