request.getParameterMap()用法详解

本文详细解析了`request.getParameterMap()`方法,它返回一个只读Map,包含所有请求参数及其值。在使用中,特别是从前端传递JSON数组到Servlet时,需注意以键名数组形式如`type[]`来获取参数。
理解

此方法返回一个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[]”),不要忘记加上[]。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值