springMVC之HttpServletRequest的getParameterMap()

简介: request.getParameterMap()的返回类型是Map类型的对象,也就是符合key-value的对应关系,但这里要注意的是,value的类型是String[],而不是String. 得到jsp页面提交的参数很容易,但通过它可以将request中的参数和值变成一个map,以下是将得到的参数和值打印出来,形成的map结构:map(key,value[]),即:key是String型,value是String型数组。
request.getParameterMap()的返回类型是Map类型的对象,也就是符合key-value的对应关系, 但这里要注意的是,value的类型是String[],而不是String.
得到jsp页面提交的参数很容易,但通过它可以将request中的参数和值变成一个map,以下是将得到的参数和值打印出来,形成的map结构:map(key,value[]),即:key是String型,value是String型数组。
例如:request中的参数t1=1&t1=2&t2=3
形成的map结构:
key=t1;value[0]=1,value[1]=2
key=t2;value[0]=3
如果直接用map.get("t1"),得到的将是:Ljava.lang.String; value只所以是数组形式,就是防止参数名有相同的情况。
将request.getParameterMap()转换成可操作的普通的map
 public static Map getParameterMap(HttpServletRequest request) {
    Map properties = request.getParameterMap();
    // 返回值Map
    Map returnMap = new HashMap();
    Iterator entries = properties.entrySet().iterator();
    Map.Entry entry;
    String name = "";
    String value = "";
    while (entries.hasNext()) {
     entry = (Map.Entry) entries.next();
     name = (String) entry.getKey();
     Object valueObj = entry.getValue();
     if(null == valueObj){
      value = "";
     }else if(valueObj instanceof String[]){
      String[] values = (String[])valueObj;
      for(int i=0;i<values.length;i++){
       value = values[i] + ",";
      }
      value = value.substring(0, value.length()-1);
     }else{
      value = valueObj.toString();
     }
     returnMap.put(name, value);
    }
     return returnMap;
  }
还有一种方法也可以实现:
Map maps=request.getParameterMap();
  Set sets=maps.keySet();
  Iterator it=sets.iterator();
  while(it.hasNext()){
   String strName=it.next().toString();
   out.print(strName);
   out.print("=========>>>>");
   Object objs=maps.get(strName);
   if(objs instanceof String[]){
    String[] strs=(String[])objs;
    out.print(Arrays.toString(strs));
   }
   out.print("<br>");
  }
getParameterNames()是获取request请求的参数名称:
Enumeration enums=request.getParameterNames();
  while(enums.hasMoreElements()){
   out.print(enums.nextElement());
   out.print("<br>");
}
相关文章
|
存储 JSON JavaScript
springmvc的参数接收不能兼容以及HttpServletRequest中的流多次使用
springmvc的参数接收不能兼容以及HttpServletRequest中的流多次使用
273 0
|
Java 容器 Spring
springMvc源码学习之:利用springMVC随时随地获取HttpServletRequest等对象
一、准备工作: 在web.xml中添加   [html] view plain copy                                   org.springframework.
1263 0
|
Java
springMVC参数的传递方式(1.通过@PathVariabl获取路径参数,2.@ModelAttribute获取数据,3.HttpServletRequest取参,4@RequestParam)
 通过@PathVariabl注解获取路径中传递参数 JAVA 1     @RequestMapping(value = "/{id}/{str}")2     public ModelAndView helloWorld(@PathVariable String id,3             @PathVariable String str) {4         S
1816 0
|
7月前
|
设计模式 前端开发 JavaScript
Spring MVC(一)【什么是Spring MVC】
Spring MVC(一)【什么是Spring MVC】
|
6月前
|
设计模式 前端开发 Java
【Spring MVC】快速学习使用Spring MVC的注解及三层架构
【Spring MVC】快速学习使用Spring MVC的注解及三层架构
92 1
|
6月前
|
前端开发 Java 应用服务中间件
Spring框架第六章(SpringMVC概括及基于JDK21与Tomcat10创建SpringMVC程序)
Spring框架第六章(SpringMVC概括及基于JDK21与Tomcat10创建SpringMVC程序)
|
7月前
|
前端开发 Java 关系型数据库
基于ssm框架旅游网旅游社交平台前后台管理系统(spring+springmvc+mybatis+maven+tomcat+html)
基于ssm框架旅游网旅游社交平台前后台管理系统(spring+springmvc+mybatis+maven+tomcat+html)
|
6月前
|
XML Java 数据格式
SpringMVC的XML配置解析-spring18
SpringMVC的XML配置解析-spring18
|
6月前
|
应用服务中间件
从代码角度戳一下springMVC的运行过程-spring16
从代码角度戳一下springMVC的运行过程-spring16
|
前端开发 Java Go
Spring MVC 和 Spring Boot 的区别
Spring MVC 和 Spring Boot 的区别
231 0