gpt4 book ai didi

servlets - HTTPServletRequest getParameterMap() 与 getParameterNames

转载 作者:行者123 更新时间:2023-12-02 21:21:18 24 4
gpt4 key购买 nike

HTTPServletRequest req,有一个方法getParameterMap(),但是,值返回一个String[]而不是String,发布数据为

name=Marry&lastName=John&Age=20.

我在帖子数据中看到它不是一个数组,但是getParameterMap()为每个键(名称或姓氏或年龄)返回数组。有什么建议可以更好地理解这一点吗?

方法 2 中提供了代码。方法 1 完全可以正常工作。

方法 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,其余参数将被忽略。在此示例中,您只能读取“John”

如果您希望有多个具有相同名称的值,则可以使用方法 2。值将填充为数组,如代码中所示。因此,您将能够读取所有值,即本例中的“John”、“Joe”、“Mia”

Documentation

关于servlets - HTTPServletRequest getParameterMap() 与 getParameterNames,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27732133/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com