获取request里的所有参数及参数名(参数名自动获取)
request里有两个方法
request.getParameterMap();
request.getParameterNames();
我想用这两种方法获取。
1。用request.getParameterNames();我会了。
Enumeration enu=request.getParameterNames();
while(enu.hasMoreElements()){
String paraName=(String)enu.nextElement();
System.out.println(paraName+": "+request.getParameter(paraName));
}
2。request.getParameterMap();有问题要问
访问URL:http://127.0.0.1:8080/test.jsp?a=1&b=2&c=3
test代码:
Map map=request.getParameterMap();
Set keSet=map.entrySet();
System.out.println("object\t\t\tkey\t\tvalue");
for(Iterator itr=keSet.iterator();itr.hasNext();){
Map.Entry me=(Map.Entry)itr.next();
Object ok=me.getKey();
Object ov=me.getValue();
System.out.print(me+"\t\t");
System.out.print(ok+"\t\t");
System.out.println(ov);
}
打印结果是:
object key value
c=[Ljava.lang.String;@aa4c7c c [Ljava.lang.String;@aa47c
b=[Ljava.lang.String;@fba2af b [Ljava.lang.String;@fbaaf
a=[Ljava.lang.String;@75ace6 a [Ljava.lang.String;@75ae6
问题:
很明显打印出来的value是对象的信息,而不是我想要的 参数值。 我该怎么做呢?我如果用(String)ov就出错,好像这个ov不是普通的String对象。 Ljava,这个东西是什么,求教了。
问题点数:20、回复次数:5Top
1 楼fox_blue(蓝狐)回复于 2005-09-01 14:52:16 得分 0
Map params = request.getParameterMap();
if ((params != null) && (params.size() > 0)) {
Iterator iter = params.entrySet().iterator();
String[] valueHolder = new String[1];
while (iter.hasNext()) {
Map.Entry entry = (Map.Entry) iter.next();
String name = (String) entry.getKey();
Object value = entry.getValue();
String[] values;
if (value instanceof String[]) {
values = (String[]) value;
} else {
valueHolder[0] = value.toString();
values = valueHolder;
}
for (int i = 0; i < values.length; i++) {
if (values[i] != null) {
System.out.println(name + "=" + values[i]);
}
}
}
}Top
2 楼yizdream(YIZ)回复于 2005-09-01 14:55:41 得分 0
是我搞错了。。。晕。。多谢了。。Top
3 楼yizdream(YIZ)回复于 2005-09-01 16:32:31 得分 0
不过还是不明白LjavaTop
4 楼masse(当午 http://blog.sina.com.cn/xukf)回复于 2005-09-01 16:43:58 得分 0
呵呵,不过如果参数值有中文就比较麻烦了,
涉及到编码了。
Top
5 楼ChDw(米)回复于 2005-09-01 16:49:46 得分 0
编码一般很简单的,只要在调用getParemeXXXX之前先
request.setCharacterEncoding("GBK");就可以了,不需要转换的Top




