HTTPServletRequest
req、メソッドgetParameterMap()
がありますが、値はString
ではなく_String[]
_を返します。
name = Marry&lastName = John&Age = 20。
私は投稿データでそれが配列ではないことを確認しますが、getParameterMap()
はすべてのキー(nameまたはlastNameまたはAge)の配列を返します。これをより良い方法で理解するための指針はありますか?
コードはアプローチ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リクエストでは、誰かがsameという名前の1つ以上のパラメータを送信できます。
例えば:
name=John, name=Joe, name=Mia
アプローチ1は、クライアントが名前のパラメーター値を1つだけ送信すると予想される場合にのみ使用でき、残りのパラメーターは無視されます。この例では、「John」のみを読み取ることができます
同じ名前の値が複数あることが予想される場合は、アプローチ2を使用できます。コードで示したように、値は配列として入力されます。したがって、この例では「John」、「Joe」、「Mia」などのすべての値を読み取ることができます。