获取request请求所有参数的使用方法详解

      对于Java后端开发而言,如何去获取前端提交的request请求有哪些参数,也是相当重要,下面我根据网上搜索的资料整理出两个方法,以便自己在之后的开发中继续使用。

(一)通过request.getParameterNames();
      getParameterNames()的含义:返回一个包含请求消息中的所有参数名Enumeration对象。此时我们可以通过遍历这个Enumeration对象,就可以获取请求消息中所有的参数名。

下面是具体实现代码:

Enumeration e=request.getParameterNames();//获取所有参数名  
while(e.hasMoreElements()){
     //通过Enumeration类中的hasMoreElements()判断是否还有参数名  
	String parameterName=(String)e.nextElement(); //获取当前参数名 
	//再通过request.getParameter("")的方法来获取对应参数名的值
	System.out.println(parameterName+": "+request.getParameter(parameterName));
}  

(二)通过request.getParameterMap();
      这个方法是我看到一个request的获取方法中说到它可以获取所有参数的名称和值,于是就尝试去实现一下。
      getParameterMap()含义: 返回一个保存了请求消息中的所有参数名和值Map对象。Map对象的key是字符串类型的参数名,value是这个参数所对应的Object类型的值数组

/*
* 此处可能会提示黄色警告,只需要在代码的方法头加上@SuppressWarnings("rawtypes")注解就行,或者根据警告提示来修改
* 获取request请求参数的map值
**/
Map map = (Map)request.getParameterMap();
/*
* @description: entrySet()该方法返回值就是这个map中各个键值对映射关系的集合。
*通过iterator()方法对该map集合进行遍历
*/
Iterator iter = map.entrySet().iterator();
//对map集合进行遍历
while(iter.hasNext()) {
     
	Map.Entry element = (Map.Entry)iter.next();
	Object strKey = element.getKey();//关键词为字符串类型
	String [] val = (String[])element.getValue();//关键词的值为数组类型,故需要强制转化。
	System.out.print(strKey.toString() +":");
	for(int i=0;i<val.length;i++){
     
           System.out.print(val[i]+",");
    }
    System.out.println();
}

      这个方法稍微有一些复杂,涉及到对map值进行解析的。因此笔者在这里也推荐各位读者使用第一种方法,毕竟代码量从一定程度上就减少很多。当然,有时如果是需要处理map值的,也可以参照笔者上面的方法对map值进行遍历。

你可能感兴趣的:(前后端数据交互,java)