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
变量并输出打印在控制台。