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