request.getParameterMap()用法詳解

理解

此方法返回一個Map類型值(Map(key,value[]),即:key是String型,value是String型數組)。該返回值存儲着着前端所提交請求中的所有請求參數和請求參數值的映射關係。

這個返回值有個特別之處——只能讀。不像普通的Map類型數據一樣可以修改。這是因爲服務器爲了實現一定的安全規範,所作的限制。比如WebLogic,Tomcat,Resin,JBoss等服務器均實現了此規範。

簡單使用

從前端獲取傳遞來的json數組
前端
$.post("/jsonServlet",{"type":["js","Mysql","java"],"name":"nancy","age":3});
servlet
public class jsonServlet extends HttpServlet {
   protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
       request.setCharacterEncoding("utf-8");
       Map<String, String[]> parameterMap = request.getParameterMap();
       //劃重點:獲取時的時候要加上[],要不然獲取不到
       String[] names = parameterMap.get("type[]");
       System.out.println(parameterMap.get("name")[0]);
       //輸出:nancy
       System.out.println(parameterMap.get("age")[0]);
       //輸出:3
       String[] names = parameterMap.get("type[]");
       for (int i=0;i<names.length;i++) {
           System.out.println(names[i]);
       }
       //輸出:js Mysql java
   }
   protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
       this.doPost(request,response);
   }

需要注意的是獲取數組時,要用鍵名的數組形式來獲取,如上面所展示的要用parameterMap.get(“type[]”),不要忘記加上[]。

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