转载:http://m.blog.csdn.net
1.概述
从Http请求头中的Cookie提取指定的某个Cookie.
(1)value(default ""):参数名例如: JSESSIONID
(2)required(default true):是否请求路头中必须带value指定的参数
(3)defaultValue(default ValueConstants.DEFAULT_NONE):如果value指定的参数值不存在或者为空,那么将使用默认值.
和@RequestHeader的使用方式类似,在控制器的方法参数中使用注解把请求路径指定的参数提取出来作为实参注入形参中
3.example
代码
@Controller
@RequestMapping("cookieValue")
public class CookieValueController {
@RequestMapping(value = "/jsessionId")
public String jsessionId(
@CookieValue(value = "JSESSIONID", required = true, defaultValue = "MyJsessionId") String jsessionId,
Model model) {
model.addAttribute("jsessionId", jsessionId);
return "request/cookieValue";
}
}
测试结果
使用浏览器的开发工具,我们看到Cookie的值为:
"COOKIE_SUPPORT=true;
GUEST_LANGUAGE_ID=en_US;
SCREEN_NAME=67647435495538793357374a6f6a65504c58734934673d3d;
LOGIN_COUNTER=6;
__hstc=181257784.86116ef980075d3fba956fffe07c85e0.1438228059723.1440732273706.1440910819029.71;
hsfirstvisit=http%3A%2F%2Flocalhost%3A8080%2F||1438228059722;
hubspotutk=86116ef980075d3fba956fffe07c85e0;
_ga=GA1.1.980038962.1438310213;
Hm_lvt_fdb2929bcc763a794aa6bd116b4c8fea=1439132484;
Hm_lvt_3154c3b89194bf9b6f2d883c5cc4bbc2=1440003830,1440305825,1440422775,1440602238;
LOGIN=6861696a69616e2e79616e67406c6966657261792e636f6d;
COMPANY_ID=10155;
ID=68313736374768716b6254585a6b695a6d6d39366d413d3d;
PASSWORD=32446c336f66453659384c66734935354c4b2b7849513d3d;
REMEMBER_ME=true;
JSESSIONID=5A80E379641BE6E680E29736CF29A914;
__hssrc=1;
USER_UUID=rhRQ/8Ab6yZ+Uul5p+y5D49Ngv1KcGFL"
SpringMVC提供了可以用于映射控制器参数以请求头值的注释@RequestHeader。以下是spring@RequestHeader注释的简单使用。
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
在上面的代码中,我们定义了一个hello()
映射到URL /hello.htm
的控制器方法。此外,我们String userAgent
使用@RequestHeader
注释绑定参数。当spring映射请求时,它将使用名称“User-Agent”
检查http
头,并将其值绑定到String userAgent
。
如果您指定的头值在请求中不存在,Spring
将初始化具有空值的参数。如果要设置参数的默认值,可以使用defaultParameter
弹簧@RequestHeader
注释的属性进行设置。