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

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

  • 相关阅读:
    Nearest Excluded Points ( 转化思想 +多源BFS )
    Tower Defense (分块+差分的差分+优化空间方法, 主席树做法待补)
    mac 安装 vue环境及遇到的报错
    导出excel数据
    Git安装及gitlab 环境配置
    docker engine dockercompose部署
    python实现比较2个excel
    pytest conftest
    javascript 高阶函数
    jmeter 系统的笔记整理【持续更新】
  • 原文地址:https://www.cnblogs.com/guowenrui/p/10363580.html
Copyright © 2020-2023  润新知