Map
String query = httpServletRequest.getQueryString();
if(query != null){
String[] expressions = query.split("&");
for(String expression : expressions){
String[] parts = expression.split("=");
if(parts.length == 2){
/*String[] values = map.get(parts[0]);
for(String value : values){
queryValues.add(value);
}*/
//将上面这段修改为
String str = URLDecoder.decode(parts[1], "UTF-8");
System.out.println(str);
queryValues.add(new String(str.getBytes("UTF-8"), "ISO-8859-1"));
}
}
for(String[] strs : request.getParameterMap().values()){
for(int i = 0; i < strs.length; i++){
for(String qStr : queryValues){
if(qStr.equals(strs[i])){
strs[i] = new String(qStr.getBytes("ISO-8859-1"), "UTF-8");
break;
}
}
}
}
chain.doFilter(request, response);
}
另一种方案是,把parameter中的成员都放到Attribute中,然后把QueryString中的成员也放到Attribute中,覆盖了parameter中的GET方式提交的成员。缺点是,数据得用getAttribute来读了...
作者“木又寸的技术博客”