HTTPServletRequest
REQ,有一个方法getParameterMap()
但是,这些值返回String[]
代替String
的,用于后的数据作为
名称=结婚&lastName的=约翰&年龄= 20。
我看到在后的数据它不是一个数组,但getParameterMap()
每一个键(名字或lastName的或年龄)返回数组。在一个更好的方式理解这个任何指针?
该代码是在方法2,方法一米的作品完全罚款可用。
方法1:
Enumeration<String> parameterNames = req.getParameterNames();
while (parameterNames.hasMoreElements()) {
String key = (String) parameterNames.nextElement();
String val = req.getParameter(key);
System.out.println("A= <" + key + "> Value<" + val + ">");
}
方法2:
Map<String, Object> allMap = req.getParameterMap();
for (String key : allMap.keySet()) {
String[] strArr = (String[]) allMap.get(key);
for (String val : strArr) {
System.out.println("Str Array= " + val);
}
}
如果你期待的预确定的参数,那么你可以使用getParameter(java.lang.String name)
方法。
否则,给定的办法可使用上述,但具有一些差异,在HTTP请求有人可以使用相同的名称发送一个或多个参数。
例如:
name=John, name=Joe, name=Mia
方法1可以,如果你希望客户端名称只发送一个参数值的前提下使用,它们的其余部分将被忽略。在这个例子中,你只能读“约翰”
方法2可以,如果你希望用相同的名字不止一个值来使用。当你在代码中显示的值将被填充数组。因此,你可以在这个例子中读取所有的值,即“约翰”,“乔”,“呀”