HTTPServletRequest getParameterMap () und getParameterNames

8

HTTPServletRequest req, hat eine Methode getParameterMap (), aber die Werte geben einen String [] anstelle von String zurück, für Post-Daten als

  

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

Ich sehe in den Post-Daten kein Array, aber getParameterMap () gibt Array für jeden Schlüssel (Name oder Nachname oder Alter) zurück. Gibt es Hinweise darauf, dies besser zu verstehen? Der Code ist in Approach 2 verfügbar.

Ansatz 1 funktioniert völlig in Ordnung.

Ansatz 1:

%Vor%

Ansatz 2:

%Vor%     
andyPaul 01.01.2015, 15:36
quelle

1 Antwort

10

Wenn Sie vordefinierte Parameter erwarten, können Sie die Methode getParameter (java.lang.String name) verwenden.

Ansonsten können die oben angegebenen Ansätze verwendet werden. Aber mit einigen Unterschieden,

In der HTTP-Anfrage kann jemand einen oder mehrere Parameter mit gleichen Namen senden.

Zum Beispiel:

%Vor%

Ansatz 1 kann nur verwendet werden, wenn Sie erwarten, dass der Client nur einen Parameterwert für einen Namen sendet, der Rest wird ignoriert. In diesem Beispiel können Sie nur "John"

lesen

Approach 2 kann verwendet werden, wenn Sie mehr als einen Wert mit demselben Namen erwarten. Werte werden wie ein Array aufgefüllt, wie Sie im Code gezeigt haben. Daher können Sie alle Werte lesen, d. H. "John", "Joe", "Mia" in diesem Beispiel

Dokumentation

    
kamoor 01.01.2015, 15:50
quelle