• Spring MVC的注解二


    概述
    Spring从2.5版本开始引入注解,虽然版本不断变化,但是注解的特性一直被延续下来并不断进行扩展,这里就来记录一下Spring MVC中常用的注解,本文承接前文继续记录@PathVariable、@RequestHeader和@CookieValue三个注解。

    @PathVariable注解
    该注解可以方便的获得请求URL中的动态参数。只有一个属性value,类型为String,表示绑定的名称,若省略默认绑定同名参数。

      1 @RequestMapping(value = "/login/{username}")
      2 public String login(@PathVariable String username){
      3     ...
      4 }


    若请求的URL为:“http://localhost:8080/user/login/jack”,通过该注解将jack绑定到username参数上。
    @RequestHeader注解
    该注解用于将请求头信息数据映射到功能处理方法的参数。
    @RequestHeader注解支持的常用属性:

    属性 类型 说明
    name String 指定请求头绑定的名称
    value String name属性的别名
    required boolean 参数是否必须绑定
    defaultValue String 没有传递参数时,参数的默认值


    @CookieValue注解
    该注解用于将请求的Cookie数据映射到功能处理方法的参数。
    @CookieValue注解支持的常用属性:

    属性 类型 说明
    name String 指定请求头绑定的名称
    value String name属性的别名
    required boolean 参数是否必须绑定
    defaultValue String 没有传递参数时,参数的默认值


    注解示例程序
    示例程序在前文项目SpringMVCProject的基础上进行完善编写。
    在com.snow.dcl.controller包下创建DataBindController类文件,编写如下程序:

      1 @Controller
      2 public class DataBindController {
      3     private static final Log LOGGER = LogFactory.getLog(DataBindController.class);
      4 
      5     @RequestMapping("/PathVariableTest/{userId}")
      6     public void pathVariableTest(@PathVariable Integer userId) {
      7         LOGGER.info("通过@PathVariable获取数据" + userId);
      8     }
      9 
     10     @RequestMapping("/RequestHeaderTest")
     11     public void requestHeaderTest(@RequestHeader("User-Agent") String userAgent) {
     12         LOGGER.info("通过@RequestHeader获取数据" + userAgent);
     13     }
     14 
     15     @RequestMapping("/CookieValueTest")
     16     public void cookieValueTest(@CookieValue(defaultValue = "DCLSNOWID") String sessionId) {
     17         LOGGER.info("通过@CookieValue获取数据" + sessionId);
     18     }
     19 }
     20 


    启动TomcatServer,启动完成后,打开浏览器输入:http://localhost:8080/PathVariableTest/1001,虽然浏览器页面会报404的错误,是因为没有返回的jsp文件,但是看控制台打印的日志信息即可。

      1 信息 [http-nio-8080-exec-6] com.snow.dcl.controller.DataBindController.pathVariableTest 通过@PathVariable获取数据1001
    DataBinding01
    在浏览器中重新输入:http://localhost:8080/RequestHeaderTest,查看控制台信息。

      1 信息 [http-nio-8080-exec-9] com.snow.dcl.controller.DataBindController.requestHeaderTest 通过@RequestHeader获取数据Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/76.0.3809.100 Safari/537.36

    DataBinding02
    在浏览器中重新输入:[ttp://localhost:8080/CookieValueTest,查看控制台信息。

      1 信息 [http-nio-8080-exec-2] com.snow.dcl.controller.DataBindController.cookieValueTest 通过@CookieValue获取数据DCLSNOWID
    DataBinding03

  • 相关阅读:
    DateUtil(比较两个日期是否是同一天)
    用过的读写
    小笔记
    日志解析LogParse启动参数配置
    wow经典台词
    Quartz资源收藏
    Quartz Job基本示例
    已知两点坐标,及在从其中一点开始移动的距离,求移动到的坐标
    如何为SUSE配置IP地址,网关和DNS
    详解Linux Initrd
  • 原文地址:https://www.cnblogs.com/Dcl-Snow/p/11510658.html
Copyright © 2020-2023  润新知