从request中获得参数Map,并返回可读的Map

zz/2024/7/13 10:48:41

/**
* 从request中获得参数Map,并返回可读的Map
*
* @param request
* @return
*/
@SuppressWarnings("unchecked")
public static Map getParameterMap(HttpServletRequest request) {
// 参数Map
Map properties = request.getParameterMap();
// 返回值Map
Map returnMap = new HashMap();
Iterator entries = properties.entrySet().iterator();
Map.Entry entry;
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;
}



得到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只所以是数组形式,就是防止参数名有相同的情况。

Map map = request.getParameterMap();
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]);

}

}

假设传递的参数个数不固定且参数名没有重复的,如何从后台得到呢?

Map map = new HashMap();

//得到枚举类型的参数名称,参数名称若有重复的只能得到第一个

Enumeration enum = this.getRequest().getParameterNames();
while (enum.hasMoreElements()) {
String paramName = (String) enum.nextElement();

String paramValue = this.getRequest().getParameter(paramName);

//形成键值对应的map
map.put(paramName, paramValue);

}

http://www.ngui.cc/zz/2762688.html

相关文章

centos 设置开机启动

在CentOS或者RedHat其他系统下&#xff0c;如果是后面安装的服务&#xff0c;如httpd、mysqld、postfix等&#xff0c;安装后系统默认不会自动启动的。就算手动执行/etc/init.d/mysqld start启动了服务&#xff0c;只要服务器重启后&#xff0c;系统仍然不会自动启动服务。 在…

Javanbsp;压缩类库的使用(转)

Java压缩类库的使用-1.总述 压缩是编程中常见的技巧&#xff0c;多用于大文件压缩&#xff0c;数据流压缩等。在Java类库中&#xff0c;内置了jar、ZIP、GZIP、ZLIB等的支持&#xff08;见java.util.zip、java.util.jar包&#xff09;。另外在Apache项目下Ant中ant.jar的org.ap…

Hibernatenbsp;保存返回主键

hibernate插入数据可以用save&#xff08;A&#xff09; 如果要返回主键&#xff0c;则A要实现serializable接口 Serializable pKey session.save&#xff08;A&#xff09;&#xff1b; pKey就是主键

MySQL多表更新和多表删除的实现[转…

注意&#xff1a;多表 UPDATE 不可以使用 ORDER BY 或 LIMIT。 多表删除 第一个多表删除格式从 MySQL 4.0.0 开始被支持。第二个多表删除格式从 MySQL 4.0.2 开始被支持。 仅仅在 FROM 或 USING 子句 之前 列出的表中的匹配记录行被删除。效果就是&#xff0c;你要以从多个表中…

mysqlnbsp;远程备份

导出&#xff1a; mysqldump -u用户名 -p密码 -h 192.168.11.192 数据库名称 > D:\bakcup.sql 导入&#xff1a; mysql -h localhost -u 用户名 -p 数据库名称< D:\bakcup.sql

js手机号码验证

function validationPhoneNumber(){ var count0; var data$(#Recipient).val().split(,); for(var i0;i if(data[i].match(/^0?(13[0-9]|15[012356789]|18[0236789]|14[57])[0-9]{8}$/)){ count; } } $(#phoneNumber).text(count); }

Spring 3.2.1+proxool +mysql空白项目搭建

lib目录jar包列表 applicationContent.xml <?xml version"1.0" encoding"UTF-8"?> <beans default-lazy-init"true"xmlns"http://www.springframework.org/schema/beans" xmlns:xsi"http://www.w3.org/2001/XMLSchema…

easyui accordion 滚动条在IE下“丢失”的处理

【解决方案】 方法一&#xff1a; 设置 DOCTYPE 为 <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> 方法二&#xff1a; 将 accordion 的 animate 属性设为 false

Java中几种创建文件的方法比较

在用Java开发的过程中&#xff0c;经常会遇到创建文件的问题&#xff0c;而File提供了mkdir(),mkdirs(),createNewFile()等方法&#xff0c;那么怎么准确快速的使用呢&#xff0c;最好的办法就是看PAI。这里我把自己理解的记录下来&#xff1a; 1.mkdir()创建文件夹&#xff0…