未知前端参数名时JAVA后端获取请求中所有的参数名

再一些需求中,我们再未知前端参数名时JAVA后端要获取参数值。那就必须先拿到参数名。什么情况下用到呢?比如再做一些数据传输安全处理时,前端将参数名与参数值都进行了加密,后端常规中用的直接请求参数名取值的方法就失效了,因为不知道加密后的参数名的密文是什么。
这里记录两种方法request拿到当前接口请求的所有参数名。当然也可以用其他的遍历方式。

1、使用request.getParameterNames()方法

Enumeration enum=request.getParameterNames();  
while(enum.hasMoreElements()){  
	String paraName=(String)enum.nextElement();  
	System.out.println("参数名:参数值 "+paraName+":"+request.getParameter(paraName));  
}

2、 使用request.getParameterMap()方法

	Map map=request.getParameterMap();  
    Set keSet=map.entrySet();  
    for(Iterator itr=keSet.iterator();itr.hasNext();){  
        Map.Entry me=(Map.Entry)itr.next();  
        Object ok=me.getKey();  
        Object ov=me.getValue();  
        String[] value=new String[1];  
        if(ov instanceof String[]){  
            value=(String[])ov;  
        }else{  
            value[0]=ov.toString();  
        }  
  
        for(int k=0;k<value.length;k++){  
            System.out.println("参数名=参数值 "+ok+"="+value[k]);  
        }  
      } 

Enumeration接口说明:
1.Enumeration接口定义了从一个数据结构得到连续数据的方法。比如Enumeration定义了一个名为nextElement的方法,可以用来从含有多个元素的数据结构中得到的下一个元素。
2.Enumeration接口提供了一套标准的方法,由于Enumeration是一个接口,它的角色局限于为数据结构提供方法协议。
3.实现该接口的对象由一系列的元素组成,可以连续地调用nextElement()方法来得到 Enumeration枚举对象中的元素。
Enumertion接口中仅定义了下面两个方法:
(1).boolean hasMoreElemerts()
测试Enumeration枚举对象中是否还含有元素,如果返回true,则表示还含有至少一个的元素。
(2).Object nextElement()
如果Bnumeration枚举对象还含有元素,该方法得到对象中的下一个元素。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值