[Быстро изучите Springboot] 3. Несколько способов принять параметры

Spring Boot

предисловие

В разработке мы часто сталкиваемся с самыми разными способами передачи параметров. Здесь давайте суммируем способы принятия параметров, которые можно использовать в springboot.

URL-параметры

Этот параметр в сочетании с URL-адресом выглядит такURL/{идентификатор}. В springboot, принимая такие параметры, можно использоватьАннотация PathVariable, как показано ниже:

@GetMapping(value = "/param/{id}")
public Object pathVariable(@PathVariable(value = "id") Integer id) {
 return id;
}

контрольная работа

【快学springboot】3.多种接受参数的方式

тип параметра формы

Этот параметр находится в форме: name = xxx & age = xxx. Он может быть разделен на URL-адрес, такой как метод получения, или он может быть помещен в HTTP-запрос. Такие параметры могут быть приняты с использованием Annotation RequestParam, например:

@PostMapping(value = "/param")
public Object queryString(@RequestParam(value = "username") String name,
String remark) {
  Map<String, String> map = new HashMap<>();
  map.put("name", name);
   map.put("remark", remark);
  return map;
}

Здесь используется аннотация RequestParam, чтобы принять параметр имени пользователя в имя, а примечание второго параметра не использует аннотацию RequestParam, потому что, если параметры запроса и параметры метода согласованы, аннотацию RequestParam можно опустить.

Тест выглядит следующим образом:

Первый: поместите параметры запроса прямо в URL

【快学springboot】3.多种接受参数的方式

Параметры запроса размещаются на url

Второй: параметры запроса размещаются на теле

【快学springboot】3.多种接受参数的方式

Нажмите на код почтальона, чтобы проверить формат curl, видно, что он имеет вид name=xxx&age=xxx

【快学springboot】3.多种接受参数的方式

json-тип

Этот тип в настоящее время наиболее популярен, в стиле restful почти все системы в настоящее время используют json для передачи данных.

Сначала мы определяем класс Person, который используется в качестве класса, принимающего параметры, где имя поля должно соответствовать ключу параметра json.

public static class Person {
 private String username;
 private String remark;
 public String getUsername() {
 return username;
 }
 public void setUsername(String username) {
 this.username = username;
 }
 public String getRemark() {
 return remark;
 }
 public void setRemark(String remark) {
 this.remark = remark;
 }
}

Мы можем использовать аннотацию RequestBody для принятия параметров json.

@PostMapping(value = "/param/json")
public Object json(@RequestBody Person person) {
 return person;
}

контрольная работа

【快学springboot】3.多种接受参数的方式

Если мы не хотим определять объект для принятия параметров, мы можем использовать Map для принятия.

@PostMapping(value = "/param/map")
public Object map(@RequestBody Map data) {
 System.out.println(data.get("username"));
 System.out.println(data.get("remark"));
 return data;
}

【快学springboot】3.多种接受参数的方式

【快学springboot】3.多种接受参数的方式

принять заголовок запроса

Некоторые интерфейсы требуют передачи параметров в заголовках запроса, например системы, использующие аутентификацию с помощью токена.Токен обычно передается в заголовке запроса или в файле cookie (файл cookie также находится в заголовке запроса). Мы можем использовать аннотацию RequestHeader для принятия следующим образом:

@GetMapping(value = "/param/header")
public Object header(@RequestHeader(value = "token") String token) {
 return token;
}

【快学springboot】3.多种接受参数的方式

Принять параметр cookie

Примите параметры cookie, вы можете использовать аннотацию CookieValue, чтобы принять

 @GetMapping(value = "/param/cookie")
 public Object cookie(@CookieValue(name = "token") String token) {
 return token;
 }

【快学springboot】3.多种接受参数的方式