JAVA 注解-处理request

1.请求地址映射处理: @RequestMapping:

用来处理请求地址映射,可以用于类或方法上。 用于类上表示类中的所有响应请求的方法都是以该地址作为父路径。

2.请求方法:

  • @GetMapping: @GetMapping("/test")相当于@RequestMapping(value = "/test", method = RequestMethod.GET);

  • @PostMapping: @PostMapping("/test")相当于@RequestMapping(value = "/test", method = RequestMethod.POST);

  • @PutMapping: @PutMapping("/test")相当于@RequestMapping(value = "/test", method = RequestMethod.PUT);

  • @PatchMapping: @PatchMapping("/test")相当于@RequestMapping(value = "/test", method = RequestMethod.PATCH);

  • @DeleteMapping: @DeleteMapping("/test")相当于@RequestMapping(value = "/test", method = RequestMethod.DELETE);

3.请求头: @RequestHeader:

将请求头的key-value键值对的value,绑定到controller方法的参数上。

@GetMapping("/test")
public void test(
    @RequestHeader ("Host") String host,
    @RequestHeader ("Accept-Language") String acceptLang
)
{
    System.out.println("Host : " + host);
    System.out.println("Accept-Language : " + acceptLang);
}

4.请求地址变量参数: @PathVariable:

正则表达式风格的URL路径映射,可以指定模板变量的数据类型,可以将规则写的相当复杂。

@GetMapping("/user/{id}")
public void test(
    @PathVariable("id") int id
)
{
    System.out.println("user.id : " + id);
}

5.请求参数: @RequestParam:

处理请求参数, 默认情况下,Spring会根据请求处理方法的形参名与请求参数名做对应,名字一样,可以将请求参数值传递给对应的形参。 value: 参数名; required: 此参数是否必须的. 默认为true; defaultValue: 当没有传递该参数时,使用该值;

@GetMapping("/test")
public void test(
    @RequestParam int id,
    @RequestParam("value") String name,
    @RequestParam(value = "username", required = false) String username,
    @RequestParam(value = "password", required = false, defaultValue = "123456") String password
) {
    System.out.println("param.id : " + id);
    System.out.println("param.name : " + name);
    System.out.println("param.username : " + username);
    System.out.println("param.password : " + password);
}

6.请求体: @RequestBody:

    1. 以json对象接收:
@PostMapping("/test")
public void test(
    @RequestBody JSONObject json
) {
    System.out.println("json : " + json.toString());
}
  • 2.以实体类方式接收:
@PostMapping("/test")
public void test(
    @RequestBody User user
) {
    System.out.println("user : " + user.toString());
}
  • 3.以Map接收{id,name}:
@PostMapping("/test")
public void test(
    @RequestBody Map<String, String> map
) {
    System.out.println("map : " + map.toString());
}
  • 4.以List接收[{id,name},{id,name},{id,name},...]:
@PostMapping("/test")
public void test(
    @RequestBody List<User> list
) {
    System.out.println("list : " + list.toString());
}

7.请求体: @RequestPart:

8.请求体: @CookieValue: