HTTPServletRequest getParameterMap() 与 getParameterNames
HTTPServletRequest getParameterMap() vs getParameterNames
HTTPServletRequest
req,有一个方法 getParameterMap()
但是,值 return 一个 String[]
而不是 String
,对于 post 数据作为
name=Marry&lastName=John&Age=20.
我在 post 数据中看到它不是数组,而是每个键(姓名或姓氏或年龄)的 getParameterMap()
returns 数组。关于更好地理解这一点的任何指示?
方法 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 + ">");
}
方法二:
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,其余参数值将被忽略。在此示例中,您只能读取 "John"
如果您希望有多个同名值,可以使用方法 2。如您在代码中所示,值将填充为数组。因此,您将能够读取所有值,即本例中的 "John"、"Joe"、"Mia"
HTTPServletRequest
req,有一个方法 getParameterMap()
但是,值 return 一个 String[]
而不是 String
,对于 post 数据作为
name=Marry&lastName=John&Age=20.
我在 post 数据中看到它不是数组,而是每个键(姓名或姓氏或年龄)的 getParameterMap()
returns 数组。关于更好地理解这一点的任何指示?
方法 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 + ">");
}
方法二:
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,其余参数值将被忽略。在此示例中,您只能读取 "John"
如果您希望有多个同名值,可以使用方法 2。如您在代码中所示,值将填充为数组。因此,您将能够读取所有值,即本例中的 "John"、"Joe"、"Mia"