3.8 @CookieValue注解
3.8 @CookieValue注解
处理 请求头 部分的注解:
@RequestHeader,@CookieValue
用途
org.springframework.web.bind.annotation.CookieValue注解用于将请求的Cookie数据映射到请求处理方法的形式参数上。
属性
使用@CookieValue注解可指定如下表所示的属性
| 属性 | 类型 | 是否必要 | 说明 |
|---|---|---|---|
name |
String |
否 | 指定请求参数绑定的名称 |
value |
String |
否 | name属性的别名 |
required |
boolean |
否 | 指示参数是否必须绑定 |
defaultValue |
String |
否 | 如果没有传递参数而使用的默认值 |
代码示例
@CookieValue注解示例代码如下:
1 |
|
以上配置会自动将Cookie中JSESSIONID的值设置到方法的sessionId形式参数上, defaultValue表示Cookie中没有JSESSIONID时默认设置sessionId为空字符串。
示例:@CookieValue注解的使用
新建一个项目CookieValueTest,加入所需的jar文件。
项目结构
展开/折叠
G:\Desktop\随书源码\Spring+Mybatis企业应用实战(第2版)\codes\03\CookieValueTest
├─src\
│ └─org\
│ └─fkit\
│ └─controller\
│ └─CookieValueController.java
└─WebContent\
├─index.jsp
├─META-INF\
│ └─MANIFEST.MF
└─WEB-INF\
├─lib\
│ ├─commons-logging-1.2.jar
│ ├─spring-aop-5.0.1.RELEASE.jar
│ ├─spring-aspects-5.0.1.RELEASE.jar
│ ├─spring-beans-5.0.1.RELEASE.jar
│ ├─spring-context-5.0.1.RELEASE.jar
│ ├─spring-context-indexer-5.0.1.RELEASE.jar
│ ├─spring-context-support-5.0.1.RELEASE.jar
│ ├─spring-core-5.0.1.RELEASE.jar
│ ├─spring-expression-5.0.1.RELEASE.jar
│ ├─spring-instrument-5.0.1.RELEASE.jar
│ ├─spring-jcl-5.0.1.RELEASE.jar
│ ├─spring-jdbc-5.0.1.RELEASE.jar
│ ├─spring-jms-5.0.1.RELEASE.jar
│ ├─spring-messaging-5.0.1.RELEASE.jar
│ ├─spring-orm-5.0.1.RELEASE.jar
│ ├─spring-oxm-5.0.1.RELEASE.jar
│ ├─spring-test-5.0.1.RELEASE.jar
│ ├─spring-tx-5.0.1.RELEASE.jar
│ ├─spring-web-5.0.1.RELEASE.jar
│ ├─spring-webflux-5.0.1.RELEASE.jar
│ ├─spring-webmvc-5.0.1.RELEASE.jar
│ └─spring-websocket-5.0.1.RELEASE.jar
├─springmvc-config.xml
└─web.xml示例代码如下:
CookieValueController.java
1 | package org.fkit.controller; |
cookieValueTest方法会自动将Cookie中JSESSIONID的值赋值给sessionId形式参数,如果Cookie中没有JSESSIONID时默认设置sessionId为空字符串。
index.jsp
1 | <%@ page language="java" contentType="text/html; charset=UTF-8" |
部署CookieValueTest这个Web应用,在浏览器中输入如下URL来测试应用:
1 | http://localhost:8080/CookieValueTest/ |
单击”测试@CookieValue注解”超链接发送请求,将调用cookieValueTest方法,控制台输出结果如下
1 | 通过@CookieValue获得JSESSIONID: 22334F73E67C6C486559D98FF00539CB |
可以看到,请求中JSESSIONID的值被传递到方法的sessionId变量并输出打印在控制台。