request.getParameterMap()用法详解

mac2024-01-24  37

理解

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

最新回复(0)