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

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

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

三:泛型时采用Map<String,String[]>形式,为啥是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<String,Object> reqParamterToMap(HttpServletRequest req){
        Map<String, String[]> m=req.getParameterMap();
        Map<String,Object> rm=new HashMap<String,Object>();
        Iterator<String> 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<String, String[]> map = request.getParameterMap();  
        Set<Entry<String, String[]>> set = map.entrySet();  
        Iterator<Entry<String, String[]>> it = set.iterator();  
        while (it.hasNext()) {  
            Entry<String, String[]> 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<values.length;i++){  
                  System.out.println("["+i+"]   "+paramName+"  "+values[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);
  }

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值