@RequestHeader以及@CookieValue这两个注解用法类似,属性也相同,所以,写在一起。二者属性和RequestParam的属性一样,用法也几乎一样。
作用
@RequestHeader注解主要是将请求头的信息区数据,映射到功能处理方法的参数上。@CookieValue注解主要是将请求的Cookie数据,映射到功能处理方法的参数上。
属性说明
Annotation which indicates that a method parameter should be bound to an HTTP cookie.
它将一个HTTP cookie绑定于方法的一个参数。
1、value:绑定的参数名称,String类型。
2、required:是否必须包含value,boolean类型,默认为 true,表示请求参数中必须包含对应的参数;若不存在,将抛出异常。
3、defaultValue:默认值,String类型。当没有传参时将使用此值赋值。
案例分析
二者在开发中很少被用到,了解即可。下面的代码示例演示了如何获取cookie JSESSIONID,Accept和User-agent 的值:
@RestController @RequestMapping("/user") public class UserController { @RequestMapping("/displayHeaderInfo") public Map<String, Object> displayHeaderInfo(@RequestHeader("User-agent") String userAgent, @RequestHeader(value = "Accept") String[] accepts, @CookieValue("JSESSIONID") String cookie) { Map<String, Object> response = new HashMap<>(); response.put("accepts", accepts); response.put("userAgent", userAgent); response.put("cookie", cookie); return response; } } |
postman调试结果如下: