java遍历request.getParameterMap()中的值


在开发过程中发现request对象有提供一个request.getParameterMap()方法可以获取到从前端请求发送的参数Map。

但是在使用get()方法通过key(键)去获取这个参数Map中对应的value(值)的时候,发现获取的是对象。

Map map = request.getParameterMap();
System.out.println(map.get("yanggb")); // [Ljava.lang.String;@4665fc21

通过打印出来的信息,很容易就发现该对象是一个字符串数组,因此我们就可以知道request.getParameterMap()方法返回的map中存储的值是数组。

我们通过一个循环来校验一下。

复制代码
for (Iterator iter = map.entrySet().iterator(); iter.hasNext();) {   Map.Entry element = (Map.Entry) iter.next();   Object strKey = element.getKey();   String[] strArr = (String[])element.getValue();   System.out.println(strKey);   for (String str : strArr) {     System.out.println(str); // yanggb   } }
复制代码

这个时候就发现能够正常打印出前端请求发送的参数值了。

然后我们将上面最开始的代码稍微改动一下。

Map map = request.getParameterMap();
String[] yanggbs = (String[])map.get("yanggb"); if (yanggbs.length > 0) { System.out.println(yanggbs[0]); // yanggb }

这样就能正常获取到前端请求发送的参数值了。

Map<String, String[]> mapparams = req.getParameterMap();
Set<String> keySet = mapparams.keySet();
// 遍历存放所有key的Set集合
Iterator<String> it = keySet.iterator();
while (it.hasNext()) { // 利用了Iterator迭代器**
// 得到每一个key
String key = it.next();
// 通过key获取对应的value
String[] value = mapparams.get(key);
System.out.println("key = " +key);
for(int i=0; i< value.length; i++)
{
    System.out.println(key + " = " + value[i]);
}
}

 


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM