Heim >Java >javaLernprogramm >Der Unterschied zwischen requestbody und requestparam
@RequestParam (empfohlenes Lernen: Java-Kurs)
wird verwendet, um Content-Type: application/x zu verarbeiten -www-form-urlencoded codierter Inhalt. (Wenn im HTTP-Protokoll Content-Type nicht angegeben ist, ist der standardmäßig übergebene Parameter der Typ application/x-www-form-urlencoded)
@RequestBody
Verarbeiten Sie die von HttpEntity übergebenen Daten und werden im Allgemeinen zum Verarbeiten von Daten im nicht-Content-Type: application/x-www-form-urlencoded-Codierungsformat verwendet.
•Bei GET-Anfragen gilt @RequestBody nicht, da keine HttpEntity vorhanden ist.
•In POST-Anfragen müssen die über HttpEntity übergebenen Parameter den Datentyp Content-Type im Anforderungsheader deklarieren. SpringMVC analysiert die Daten in HttpEntity mithilfe der von
HandlerAdapter konfigurierten HttpMessageConverters dann an die entsprechende Bean binden.
Zusammenfassung
• In GET-Anfragen kann @RequestBody nicht verwendet werden.
•In POST-Anfragen können Sie @RequestBody und @RequestParam verwenden, aber wenn Sie @RequestBody verwenden, muss die Konfiguration der Parameterkonvertierung vereinheitlicht werden.
Geben Sie beispielsweise im in SpringMVC konfigurierten HttpMessageConverters-Verarbeitungsstapel das JSON-Konvertierungsformat an. Wenn das Datum beispielsweise in „JJJJ-MM-TT“ konvertiert wird, werden die darin enthaltenen Felder angezeigt im Parameter Empfangsobjekt Wenn es sich um einen Datumstyp handelt, kann der Client nur das Jahres-, Monats- und Tagesformat übergeben, nicht jedoch die Stunden, Minuten und Sekunden.
Da unterschiedliche Schnittstellen und ihre Parameter möglicherweise unterschiedliche Formatanforderungen für Zeitparameter haben, führt dies dazu, dass der Client, der Kollegen anruft, ein wenig verwirrt über das Format der Parameter ist und die Skalierbarkeit nicht hoch ist.
Wenn Sie @RequestParam zum Akzeptieren von Parametern verwenden, können Sie @DateFormat im Modell, das Parameter akzeptiert, festlegen, um das Format der Zeitparameter anzugeben, die Sie akzeptieren müssen.
Außerdem werden die mit @RequestBody akzeptierten Parameter nicht von Servlet konvertiert und im Parametersatz Param des Anforderungsobjekts platziert.
Weitere technische Artikel zum Thema Java finden Sie in der Spalte Java-Tutorial, um mehr darüber zu erfahren!
Das obige ist der detaillierte Inhalt vonDer Unterschied zwischen requestbody und requestparam. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!