说明与作用
@RequestHeader注解的作用是从请求中获取某个请求头的值,并赋值给方法形参。
@CookieValue注解的作用是从请求中获取某个Value的值,并赋值给方法形参。
//只能作用于方法形参上
@Target(ElementType.PARAMETER)
@Retention(RetentionPolicy.RUNTIME)
@Documented
public @interface RequestHeader {
//指定请求头的名称
@AliasFor("name")
String value() default "";
//与value互为别名。作用一样
@AliasFor("value")
String name() default "";
//该请求头是否必须,默认true,如果请求中不包含该请求头就报错。
boolean required() default true;
//如果请求头不存在,把默认值赋值给他。
String defaultValue() default ValueConstants.DEFAULT_NONE;
}
@Target(ElementType.PARAMETER)
@Retention(RetentionPolicy.RUNTIME)
@Documented
public @interface CookieValue {
@AliasFor("name")
String value() default "";
@AliasFor("value")
String name() default "";
boolean required() default true;
String defaultValue() default ValueConstants.DEFAULT_NONE;
}
@Controller
public class RequestHeaderAndCookieValueController {
@RequestMapping("testRequestHeader")
public String testRequestHeader(@RequestHeader(value = "Content-Type") String contentType){
System.out.println(contentType);
return "springmvc";
}
@RequestMapping("testCookieValue")
public String testCookieValue(@CookieValue(value = "JSESSIONID") String jSessionId){
System.out.println(jSessionId);
return "springmvc";
}
}
获取到了请求头。
获取到了请求的Cookie值。