@PathVariable、@RequestHeader与@CookieValue注解的使用案例
@PathVariable注解
可以非常方便地获取请求URL中的动态参数。只支持一个属性value[String类型]
@RequestHeader注解
可以用于将请求头的信息区数据映射到功能处理方法的参数上。属性有name(别名:value)、required[布尔类型]、defaultValue[String类型]。
@CookieValue注解
可以用于将请求的Cookie数据映射到功能处理方法的参数上。属性有name(别名:value)、required[布尔类型]、defaultValue[String类型]。
案例
项目配置我就不在这里再次描述了,可以翻我之前的文章。
新建一个DataBindingController,用于接受并输出获取的数据。
package com.wen.controller;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.*;
@Controller
public class DataBindingController {
//静态的日志类LogFactory
private static final Log logger = LogFactory.getLog(DataBindingController.class);
//测试@PathVariable注解
//该方法映射的请求为http://localhost:8080/.../pathVariableTest/{userId}
@RequestMapping(value = "/pathVariableTest/{userId}")
public void pathVariableTest(@PathVariable Integer userId){
logger.info("通过@PathVariable获得数据:"+userId);
}
//测试@RequestHeader注解
//该方法映射的请求为http://localhost:8080/.../requestHeaderTest
@RequestMapping(value = "/requestHeaderTest")
public void requestHeaderTest(
@RequestHeader("User-Agent") String userAgent,
@RequestHeader(value="Accept") String[] accepts){
logger.info("通过@requestHeaderTest获得数据:"+userAgent);
for (String accept :accepts){
logger.info(accept);
}
}
//测试@CookieValue注解
//该方法映射的请求为http://localhost:8080/.../cookieValueTest
@RequestMapping(value = "/cookieValueTest")
public void cookieValueTest(
@CookieValue(value = "JSESSIONID",defaultValue = "") String sessionId){
logger.info("通过@cookieValueTest获得数据:"+sessionId);
}
}
index.jsp用于访问Controller中的方法。
<%--
Created by IntelliJ IDEA.
User: wen
Date: 2019/1/28
Time: 21:28
To change this template use File | Settings | File Templates.
--%>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
<title>$Title$</title>
</head>
<body>
<h2>数据绑定测试</h2>
<a href="pathVariableTest/1">测试PathVariable注解</a>
<a href="requestHeaderTest">测试RequestHeader注解</a>
<a href="cookieValueTest">测试CookieValue注解</a>
</body>
</html>
点击超链接测试,控制台就会出现以下数据。