Heim > Java > javaLernprogramm > Java erklärt ausführlich, wie Spring Web-Anfrageparameter empfängt

Java erklärt ausführlich, wie Spring Web-Anfrageparameter empfängt

青灯夜游
Freigeben: 2018-10-25 16:39:04
nach vorne
2334 Leute haben es durchsucht

In diesem Artikel erfahren Sie ausführlich, wie Spring Webanforderungsparameter in Java empfängt. Es hat einen gewissen Referenzwert. Freunde in Not können sich darauf beziehen. Ich hoffe, es wird Ihnen hilfreich sein.

1 Abfrageparameter

Anfrageformat: URL?Parameter 1=Wert 1&Parameter 2=Wert 2...
Gilt für beide Es gibt mehrere Möglichkeiten, Abfrageparameter in GET- und POST-Methoden zu schreiben:

Methode 1:

Der Name des Methodenparameters ist der Name des Anforderungsparameters

  // 查询参数1
  @RequestMapping(value = "/test/query1", method = RequestMethod.GET)  
  public String testQuery1(String username, String password) {
    System.out.println("username=" + username + ", password=" + password);    
    return "username=" + username + ", password=" + password;
  }
Nach dem Login kopieren
Methode 2:

Parameter extrahieren von HttpServletRequest

  // 查询参数2
  @RequestMapping(value = "/test/query2", method = RequestMethod.GET)  
  public String testQuery2(HttpServletRequest request) {
    String username = request.getParameter("username");
    String password = request.getParameter("password");
    System.out.println("username=" + username + ", password=" + password);    
    return "username=" + username + ", password=" + password;
  }
Nach dem Login kopieren
Methode drei:

Der Methodenparametername und der Anforderungsparametername können unterschiedlich sein, binden Sie die Parameter über die @RequestParam-Annotation

  // 查询参数3
  @RequestMapping(value = "/test/query3", method = RequestMethod.GET)  
  public String testQuery3(@RequestParam("username") String un, @RequestParam("password") String pw) {
    System.out.println("username=" + un + ", password=" + pw);    
    return "username=" + un + ", password=" + pw;
  }
Nach dem Login kopieren
Methode vier:

Erstellen ein Entitätsklassenobjekt als Parameterträger, und Spring bindet die Parameter automatisch an die Eigenschaften des Entitätsklassenobjekts basierend auf dem Parameternamen

  // 查询参数4
  @RequestMapping(value = "/test/query4", method = RequestMethod.GET)  
  public String testQuery4(User user) {
    String username = user.getUsername();
    String password = user.getPassword();
    System.out.println("username=" + username + ", password=" + password);    
    return "username=" + username + ", password=" + password;
  }
Nach dem Login kopieren
Die Entitätsklasse ist wie folgt definiert:

@Data
@NoArgsConstructor
@AllArgsConstructor
@Builderpublic class User {  
   private String username;  
   private String password;
}
Nach dem Login kopieren
Hier verwendet Mit der Drittanbieter-Bibliothek Lombok ist es nicht erforderlich, get, set und andere Methoden manuell zum Code hinzuzufügen, Lombok wird automatisch hinzugefügt.

Der Curl-Befehl zum Senden der Anfrage lautet wie folgt:

curl -i 'http://192.168.1.14:8080/test/query1?username=aaa&password=bbb'
Nach dem Login kopieren
Die Interaktionsnachricht lautet wie folgt:

GET /test/query1?username=aaa&password=bbb HTTP/1.1
Host: 192.168.1.14:8080
User-Agent: curl/7.58.0
Accept: */*HTTP/1.1 200 
Content-Type: text/plain;charset=UTF-8
Content-Length: 26
Date: Thu, 25 Oct 2018 07:01:30 GMT

username=aaa, password=bbb
Nach dem Login kopieren

2 Formularparameter

Die Anforderungsparameter befinden sich nicht in der URL, sondern im Text. Das Format ist: URL?Parameter 1=Wert 1&Parameter 2=Wert 2...

Gilt für POST Methode

Die Verarbeitungsmethode für Formularparameter ist fast genau dieselbe wie die vorherige Verarbeitungsmethode für Anforderungsparameter, mit der Ausnahme, dass die Methodenmethode in der RequestMethod-Annotation auf die POST-Methode festgelegt ist

Methode eins:

  // 表单参数1
  @RequestMapping(value = "/test/form1", method = RequestMethod.POST)  
  public String testForm1(String username, String password) {
    System.out.println("username=" + username + ", password=" + password);    
    return "username=" + username + ", password=" + password;
  }
Nach dem Login kopieren
Methode zwei:

  // 表单参数2
  @RequestMapping(value = "/test/form2", method = RequestMethod.POST)  
  public String testForm2(HttpServletRequest request) {
    String username = request.getParameter("username");
    String password = request.getParameter("password");
    System.out.println("username=" + username + ", password=" + password);    
    return "username=" + username + ", password=" + password;
  }
Nach dem Login kopieren
Methode drei:

  // 表单参数3
  @RequestMapping(value = "/test/form3", method = RequestMethod.POST)  
  public String testForm3(@RequestParam("username") String un, @RequestParam("password") String pw) {
    System.out.println("username=" + un + ", password=" + pw);    
    return "username=" + un + ", password=" + pw;
  }
Nach dem Login kopieren
Methode vier:

  // 表单参数4
  @RequestMapping(value = "/test/form4", method = RequestMethod.POST)
  public String testForm4(User user) {
    String username = user.getUsername();
    String password = user.getPassword();
    System.out.println("username=" + username + ", password=" + password);    
    return "username=" + username + ", password=" + password;
  }
Nach dem Login kopieren
Der Curl-Anfragebefehl lautet wie folgt:

curl -X POST -i -d "username=aaa&password=bbb" http://192.168.1.14:8080/test/form1
Nach dem Login kopieren
Die Anfrage- und Antwortnachricht lautet wie folgt:

POST /test/form1 HTTP/1.1
Host: 192.168.1.14:8080
User-Agent: curl/7.58.0
Accept: */*
Content-Length: 25
Content-Type: application/x-www-form-urlencoded

username=aaa&password=bbbHTTP/1.1 200 
Content-Type: text/plain;charset=UTF-8
Content-Length: 26
Date: Thu, 25 Oct 2018 07:05:35 GMT

username=aaa, password=bbb
Nach dem Login kopieren

3 Pfadparameter

Der Anfrageparameter ist Teil der URL, das Format ist : URL/Parameter 1/Parameter 2...

Gilt sowohl für GET- als auch für POST-Methoden
Der Code lautet wie folgt:

  @RequestMapping(value = "/test/url/{username}/{password}", method = RequestMethod.GET)  
  public String testUrl(@PathVariable String username, @PathVariable String password) {
    System.out.println("username=" + username + ", password=" + password);    
    return "username=" + username + ", password=" + password;
  }
Nach dem Login kopieren
Der Anforderungs-Curl-Befehl lautet wie folgt:

curl -i http://192.168.1.14:8080/test/url/aaa/bbb
Nach dem Login kopieren
Die Anforderungs- und Antwortnachricht lauten wie folgt:

GET /test/url/aaa/bbb HTTP/1.1
Host: 192.168.1.14:8080
User-Agent: curl/7.58.0
Accept: */*HTTP/1.1 200 
Content-Type: text/plain;charset=UTF-8
Content-Length: 26
Date: Thu, 25 Oct 2018 07:07:44 GMT

username=aaa, password=bbb
Nach dem Login kopieren

4 JSON-Formatparameter

Die Anforderungsparameter befinden sich im Body und sind in JSON-Format. Anforderungsheader muss hinzugefügt werden: Content-Type: application/json;charset=UTF-8

Anwendbar auf die POST-Methode
Methode 1:
Entitätsklasse definieren, JSON-Objekt in Stärkeklasse analysieren, RequestBody hinzufügen Anmerkung

  // json参数1
  @RequestMapping(value = "/test/json1", method = RequestMethod.POST)  
  public String testJson1(@RequestBody User user) {
    String username = user.getUsername();
    String password = user.getPassword();
    System.out.println("username=" + username + ", password=" + password);    
    return "username=" + username + ", password=" + password;
  }
Nach dem Login kopieren
Methode 2:

Wenn Sie keine Entitätsklasse definieren möchten, können Sie die JSON-Anfrage auch direkt in die JSONObject-Klasse analysieren

  // json参数2
  @RequestMapping(value = "/test/json2", method = RequestMethod.POST)  
  public String testJson2(@RequestBody JSONObject json) {
    String username = json.getString("username");
    String password = json.getString("password");
    System.out.println("username=" + username + ", password=" + password);    
    return "username=" + username + ", password=" + password;
  }
Nach dem Login kopieren
Methode 3 :

Außerdem kann das JSON-Objekt direkt in ein Kartenobjekt geparst werden

  // json参数3
  @RequestMapping(value = "/test/json3", method = RequestMethod.POST)  
  public String testJson3(@RequestBody Map<String, String> userMap) {
    String username = userMap.get("username");
    String password = userMap.get("password");
    System.out.println("username=" + username + ", password=" + password);    
    return "username=" + username + ", password=" + password;
  }
Nach dem Login kopieren
Der Anforderungs-Curl-Befehl lautet wie folgt:

curl -X POST -i -H 'Content-Type: application/json;charset=UTF-8' -d '{    
   "username" : "aaa",    
   "password" : "bbb"
} 
'http://192.168.1.14:8080/test/json1
Nach dem Login kopieren
Die Anforderungs- und Antwortnachricht lautet wie folgt:

POST /test/json1 HTTP/1.1
Host: 192.168.1.14:8080
User-Agent: curl/7.58.0
Accept: */*
Content-Type: application/json;charset=UTF-8
Content-Length: 52


{
    "username" : "aaa",
    "password" : "bbb"
}HTTP/1.1 200 
Content-Type: text/plain;charset=UTF-8
Content-Length: 26
Date: Thu, 25 Oct 2018 07:09:06 GMT

username=aaa, password=bbb
Nach dem Login kopieren

Das obige ist der detaillierte Inhalt vonJava erklärt ausführlich, wie Spring Web-Anfrageparameter empfängt. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Verwandte Etiketten:
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Aktuelle Ausgaben
Kann Java als Backend des Webs verwendet werden?
Aus 1970-01-01 08:00:00
0
0
0
Installieren Sie JAVA
Aus 1970-01-01 08:00:00
0
0
0
Java kann nicht installiert werden
Aus 1970-01-01 08:00:00
0
0
0
Ist das in der Java-Sprache?
Aus 1970-01-01 08:00:00
0
0
0
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage