表單post,get到 springMVC後臺亂碼

一. 前臺表單直接post或get,後臺以request.getParameterMap()或request.getParameter()的形式接收

注意:前臺,springmvc過濾器,以及jsp,編譯器編碼全部以utf-8爲例

request.getParameterMap()爲例

注意:這裏是一個從HttpServletRequest中獲取參數的方法,至於request則是從類似於

@RequestMapping("/tradePortal/ReceiveCommands")
public ModelAndView receiveCommands(HttpServletRequest request, HttpServletResponse response){}
這樣的方法中獲取

public static Map<String,String> getParamters(HttpServletRequest request){
        logger.info("開始獲取請求參數");
        Map<?,?> paramterMap = request.getParameterMap();
        Map<String ,String> paraMap = new ConcurrentHashMap<String, String>();
        for (Map.Entry entry :
                paramterMap.entrySet()) {
            if (Array.getLength(entry.getValue())<1||StringUtil.isEmpty(((String)(Array.get(entry.getValue(),0))))){
                paraMap.put((String)entry.getKey(),null);
            }else {
                if (request.getMethod().equalsIgnoreCase("get")){
                    try {
                        paraMap.put((String)entry.getKey(),new String(((String)(Array.get(entry.getValue(),0))).getBytes("ISO-8859-1"),"utf-8"));
                    } catch (UnsupportedEncodingException e) {
                        e.printStackTrace();
                    }
                }else {
                    paraMap.put((String)entry.getKey(),(String)(Array.get(entry.getValue(),0)));
                }
            }
        }
        logger.info("參數獲取完畢。參數爲:"+ JSON.toJSONString(paraMap));
        return paraMap;
    }






發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章