获取请求头和Cookie
当我们需要获取请求头中的参数,或者Cookie的时候,可以使用Spring MVC给我们提供的相关注解来完成
@RequestHeader
使用@RequestHeader
注解,可以轻松地获取请求头中的信息,使用方法和获取请求中携带的参数类似,将注解添加在参数列表的参数前,将参数和请求头中的参数名绑定即可
@RestController
public class MyController {
@RequestMapping("/user")
public Map<String, Object> queryUser(@RequestHeader String name, @RequestHeader int age) {
HashMap<String, Object> result = new HashMap<>();
result.put("name", name);
result.put("age", age);
return result;
}
}
测试结果如下
在请求头中添加了name和age两个参数,在请求方法中可以使用@RequestHeader
注解获取到
@CookieValue
使用@CookieValue
注解,可以获取请求携带的Cookie,用法也是在请求处理方法中绑定参数
@RestController
public class MyController {
@RequestMapping("/test")
public Map<String, Object> queryUser(@CookieValue("JSESSIONID") String cookie) {
HashMap<String, Object> result = new HashMap<>();
result.put("cookie", JSESSIONID);
return result;
}
}
这里有一个默认的名字为JSESSIONID的Cookie,我们将这个Cookie的值取出来
除了使用String类型的参数外,我们还可以使用原生的Cookie类作为参数类型
@RestController
public class MyController {
@RequestMapping("/test")
public Map<String, Object> queryUser(@CookieValue("JSESSIONID") Cookie cookie) {
HashMap<String, Object> result = new HashMap<>();
result.put("cookie", JSESSIONID);
return result;
}
}