说明:本文章的内容转载至:https://my.oschina.net/happyBKs/blog/417431
如有侵权的地方,请联系本人,本人将会立即删除!
1.概述
从Http请求头中的Cookie提取指定的某个Cookie.
2.配置
(1)value(default “”):参数名例如: JSESSIONID
(2)required(default true):是否请求头中必须带value指定的参数
(3)defaultValue(default ValueConstants.DEFAULT_NONE):如果value指定的参数值不存在或者为空,那么将使用默认值.
3.使用
和@RequestHeader的使用方式类似,在控制器的方法参数中使用注解把请求路径指定的参数提取出来作为实参注入形参中
4.案例:
package com.happyBKs.springmvc.handlers;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.CookieValue;
import org.springframework.web.bind.annotation.RequestHeader;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
@RequestMapping("class")
@Controller
public class RPTestHandler {
String page="successrm";
@RequestMapping("testCookie")
public String handleCookieValue(@CookieValue(value="JSESSIONID") String cookie)
{
System.out.println("Request CookieValue JSESSIONID:"+cookie);
return page;
}
}
请求页面:
<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
pageEncoding="ISO-8859-1"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>Insert title here</title>
</head>
<body>
<a href="class/student?username=happyBKs&age=100">class/student?username=happyBKs&age=100</a>
<br/>
<a href="class/testhead">class/testhead</a>
<br/>
<a href="class/testCookie">class/testCookie</a>
</body>
</html>
过程:
控制台输出:
Request CookieValue JSESSIONID:C7BDF604164F4908A71E3F45F58B54A3
注意的事情也是一样,如果指定cookie不存在,报错: