springMVC笔记系列(10)——CookieValue注解

来源:互联网 发布:传奇霸业武器炼体数据 编辑:程序博客网 时间:2024/06/06 19:55

说明:本文章的内容转载至: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")@Controllerpublic 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不存在,报错:

这里写图片描述

0 0