request的getParameterNames()和getParameterMap()

equest的getParameterNames()和getParameterMap()

http://blog.sina.com.cn/s/blog_894ed51901010j9d.html

 
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 MapgetParameterMap(HttpServletRequest request) {
 
    Mapproperties = request.getParameterMap();
 
    //返回值Map
 
    MapreturnMap = new HashMap();
 
    Iteratorentries = properties.entrySet().iterator();
 
    Map.Entryentry;
 
    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();
 
  Iteratorit=sets.iterator();
 
  while(it.hasNext()){
 
    StringstrName=it.next().toString();
 
    out.print(strName);
 
    out.print("=========>>>>");
 
    Objectobjs=maps.get(strName);
 
    if(objsinstanceof 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>");
}

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值