请求头与Cookie
SpringMVC提供专门注解获取HTTP请求头和Cookie信息。
RequestHeader
获取请求头信息。
基本使用
Java
@Controller
public class DemoController {
@GetMapping("/header")
public String getHeader(
@RequestHeader("User-Agent") String userAgent,
@RequestHeader("Accept") String accept
) {
System.out.println("User-Agent: " + userAgent);
System.out.println("Accept: " + accept);
return "success";
}
}
常用属性
Java
@GetMapping("/info")
public String info(
@RequestHeader(value = "Content-Type", required = false) String contentType,
@RequestHeader(value = "Authorization", defaultValue = "") String auth
) {
return "success";
}
| 属性 | 说明 |
|---|---|
| value | 请求头名称 |
| required | 是否必填,默认true |
| defaultValue | 默认值 |
获取所有请求头
Java
@GetMapping("/headers")
public String headers(@RequestHeader Map<String, String> headers) {
headers.forEach((k, v) -> System.out.println(k + ": " + v));
return "success";
}
CookieValue
获取Cookie值。
基本使用
Java
@Controller
public class SessionController {
@GetMapping("/session")
public String getSession(@CookieValue("JSESSIONID") String sessionId) {
System.out.println("Session ID: " + sessionId);
return "success";
}
}
常用属性
Java
@GetMapping("/token")
public String getToken(
@CookieValue(value = "token", required = false, defaultValue = "") String token
) {
System.out.println("Token: " + token);
return "success";
}
| 属性 | 说明 |
|---|---|
| value | Cookie名称 |
| required | 是否必填 |
| defaultValue | 默认值 |
常用请求头
| 请求头 | 说明 |
|---|---|
| User-Agent | 客户端信息 |
| Accept | 接受的内容类型 |
| Content-Type | 请求体类型 |
| Authorization | 认证信息 |
| Host | 主机名 |
| Referer | 来源页面 |
请求头不存在且required=true时,抛出ServletRequestBindingException异常。
要点总结
- @RequestHeader:获取请求头,value指定名称
- @CookieValue:获取Cookie值,value指定名称
- 两者都支持required和defaultValue属性
- 可使用Map接收所有请求头
📝 发现内容有误?点击此处直接编辑