request.getParameterMap()和request.getParameterName和request.getParameterVlaues用法

一:获取前端所有表单提交的数据,采用返回值是Map的形式。如果是ajax提交,提交封装的数据。

二:返回值只能读,不能修改。如果非要要修改,新建一个map对象。

三:泛型时采用Map形式,为啥是String[]的形式呢?是为了防止名字相同,不同值得参数,例如checkbox。

例如:request中的参数t1=1&t1=2&t2=3形成的map结构:

key=t1;value[0]=1,value[1]=2

key=t2;value[0]=3

四:那怎么取出来呢?

迭代器法:

以下是HttpMapUtil工具中的一个函数,用来将map转成可操作的普通map

那么这种方式也只是取没有重复名字的数据,因为获得的是str【0】

public static Map reqParamterToMap(HttpServletRequest req){
        Map m=req.getParameterMap();
        Map rm=new HashMap();
        Iterator itor=m.keySet().iterator();
        while(itor.hasNext()){
            String key=itor.next();
            String[] strs=m.get(key);
            String val=null;
            if(strs.length>0){
                val=strs[0];
            }
            rm.put(key, val);
        }
        return rm;
    }

获取到所有值包括重复名字的数

  Map map = request.getParameterMap();  
        Set> set = map.entrySet();  
        Iterator> it = set.iterator();  
        while (it.hasNext()) {  
            Entry entry = it.next();  
  
            System.out.println("KEY:"+entry.getKey());  
            for (String i : entry.getValue()) {  
                System.out.println(i);  
            }  
        }  

注意,这个getvalue()可以直接获取到值,而不要通过名字。

 浅谈request.getParameterName和request.getParameterVlaues用法

通过这两个方法也可以得到取出参数的功能

这种方式一般用于含有名字相同的值如checkbox(因为循环时,将里面String【】也循环了)

java.util.Enumeration  enum=this.getRequest().getParameterNames();  
       while(enum.hasMoreElements()){  
                  String  paramName=(String)enum.nextElement();                      
                  String[]  values=request.getParameterValues(paramName);  
                  for(int  i=0;i

这种方式适用于取没有重复的值的表单

Enumeration enum =this.getRequest().getParameterNames();
 while (enum.hasMoreElements()) {
  String paramName = (String) enum.nextElement();
 
  String paramValue = this.getRequest().getParameter(paramName);
   //形成键值对应的map
  map.put(paramName, paramValue);
  }

 

你可能感兴趣的:(request.getParameterMap()和request.getParameterName和request.getParameterVlaues用法)