@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>

点击超链接测试,控制台就会出现以下数据。
控制台输出

猜你喜欢

转载自www.cnblogs.com/guowenrui/p/10363580.html