引用
此代码将request中的请求转换为参数的map
1.queryString其中的中文通过URLEncoder.Encode("你我他", "utf-8");
2.post的时候的流编码为utf-8
public static Map getParameterMap(HttpServletRequest request) { // 参数Map Map properties = request.getParameterMap(); // 返回值Map Map returnMap = new HashMap(); Iterator entries = properties.entrySet().iterator(); Map.Entry entry; String name = ""; String value = ""; while (entries.hasNext()) { entry = (Map.Entry) entries.next(); name = (String) entry.getKey(); Object valueObj = entry.getValue(); if(null == valueObj){ value = ""; }else if(valueObj instanceof String[]){ String[] values = (String[])valueObj; for(int i=0;i<values.length;i++){ value = values[i] + ","; } value = value.substring(0, value.length()-1); }else{ value = valueObj.toString(); } returnMap.put(name, value); } // 处理get方式queryString的参数 String query = request.getQueryString(); if(query != null){ String[] expressions = query.split("&"); for(String expression : expressions){ String[] parts = expression.split("="); if(parts.length == 2){ //将上面这段修改为 try{ // utf-8 解码 String str = URLDecoder.decode(parts[1], "UTF-8"); returnMap.put(parts[0], str); } catch(Exception e) { } } } } // 处理get的循环queryString return returnMap; }