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

516

被折叠的 条评论
为什么被折叠?



