@RequestParam
- 用于将URL中的占位符(path variable)映射到控制器方法的参数上
- 通常用于RESTful Web服务中,用于处理URL路径中的动态部分
- 例如,在URL
/users/{userId}
中,{userId}
就是一个占位符,可以通过@PathVariable
映射到方法参数中。
@GetMapping("/users/{userId}")
public ResponseEntity<User> getUser(@PathVariable String userId) {
// ...
}
@RequestParam
- 用于将请求参数(query parameter)映射到控制器方法的参数上。
- 通常用于处理URL的查询字符串部分,例如
?name=value
。 - 可以指定参数是否必须,如果必须的参数缺失,将返回400错误。
@GetMapping("/search")
public ResponseEntity<List<User>> searchUsers(@RequestParam(required = false) String name) {
// ...
}
@RequestBody
- 用于将请求的body部分(通常是一个JSON或XML对象)映射到控制器方法的参数上。
- 通常用于处理POST或PUT请求,用于接收客户端发送的数据。
- 需要在方法参数前添加
@RequestBody
注解,并且参数类型通常是Java对象或Map
。
@PostMapping("/users")
public ResponseEntity<User> createUser(@RequestBody User user) {
// ...
}
@RequestHeader
- 用于将请求头(header)中的值映射到控制器方法的参数上。
- 可以获取请求头中的信息,例如
Content-Type
或者自定义的头部信息。
@GetMapping("/users")
public ResponseEntity<List<User>> getUsers(@RequestHeader("Authorization") String authHeader) {
// ...
}
@CookieValue
- 用于将cookie中的值映射到控制器方法的参数上。
- 可以获取请求中携带的cookie信息。
@GetMapping("/profile")
public ResponseEntity<String> getProfile(@CookieValue("sessionId") String sessionId) {
// ...
}
修改日期: