概述

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



在浏览器中重新输入: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



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

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

Spring MVC的注解二的更多相关文章

  1. 2017.3.31 spring mvc教程(二)核心流程及配置详解

    学习的博客:http://elf8848.iteye.com/blog/875830/ 我项目中所用的版本:4.2.0.博客的时间比较早,11年的,学习的是Spring3 MVC.不知道版本上有没有变 ...

  2. Spring MVC学习总结(2)——Spring MVC常用注解说明

        使用Spring MVC的注解及其用法和其它相关知识来实现控制器功能. 02     之前在使用Struts2实现MVC的注解时,是借助struts2-convention这个插件,如今我们使 ...

  3. 基于spring mvc的注解DEMO完整例子

    弃用了struts,用spring mvc框架做了几个项目,感觉都不错,而且使用了注解方式,可以省掉一大堆配置文件.本文主要介绍使用注解方式配置的spring mvc,之前写的spring3.0 mv ...

  4. spring mvc 基于注解的使用总结

    本文转自http://blog.csdn.net/lufeng20/article/details/7598801 概述 继 Spring 2.0 对 Spring MVC 进行重大升级后,Sprin ...

  5. Maven 工程下 Spring MVC 站点配置 (二) Mybatis数据操作

    详细的Spring MVC框架搭配在这个连接中: Maven 工程下 Spring MVC 站点配置 (一) Maven 工程下 Spring MVC 站点配置 (二) Mybatis数据操作 这篇主 ...

  6. java spring mvc 全注解

    本人苦逼学生一枚,马上就要毕业,面临找工作,实在是不想离开学校.在老师的教导下学习了spring mvc ,配置文件实在繁琐,因此网上百度学习了spring mvc 全注解方式完成spring的装配工 ...

  7. spring mvc 基于注解 配置默认 handlermapping

    spring mvc 是类似于 Struts 的框架.他们都有一个最主要的功能就是URL路由.URL路由能将请求与响应请求处理逻辑的类(在Struts中即是action,在spring mvc 中即是 ...

  8. Spring MVC 基础注解之@RequestMapping、@Controller、(二)

    我现在学的是spring4.2 今天主要学习了Spring MVC注解 引入注解可以减少我们的代码量,优化我们的代码. @Controller:用于标识是处理器类: @RequestMapping:请 ...

  9. spring MVC之注解开发控制器(二)

    开发表单控制器 在传统的Spring MVC开发方法中,是通过扩展SimpleFormController类来创建简单的表单控制器.这样就定义了基本的表单处理流程,并允许通过覆盖几个生命周期方法来定制 ...

随机推荐

  1. 使用 API 网关构建微服务-2

    「Chris Richardson 微服务系列」使用 API 网关构建微服务 Posted on 2016年5月12日 编者的话|本文来自 Nginx 官方博客,是微服务系列文章的第二篇,本文将探讨: ...

  2. 南邮CTF - Writeup

    南邮CTF攻防平台Writeup By:Mirror王宇阳 个人QQ欢迎交流:2821319009 技术水平有限~大佬勿喷 ^_^ Web题 签到题: 直接一梭哈-- md5 collision: 题 ...

  3. Scrum Meeting - 第七周【Alpha阶段】

    每日任务内容: 本次会议为第七次Scrum Meeting会议 本次会议项目经理召开时间为20:00,在北区男生宿舍楼召开,召开时长约10分钟,探讨了本周选课网站编写的后续工作. 小组成员 本周任务 ...

  4. 精通awk系列(14):细说awk中的变量和变量赋值

    回到: Linux系列文章 Shell系列文章 Awk系列文章 awk变量 awk的变量是动态变量,在使用时声明. 所以awk变量有3种状态: 未声明状态:称为untyped类型 引用过但未赋值状态: ...

  5. ASP.NET Core on K8S深入学习(8)数据管理

    本篇已加入<.NET Core on K8S学习实践系列文章索引>,可以点击查看更多容器化技术相关系列文章. 在Docker中我们知道,要想实现数据的持久化(所谓Docker的数据持久化即 ...

  6. spring-boot 再添加mysql启动器的时候报错, The driver is automatically registered via the SPI and manual loading of the driver class....

    mysql驱动更新迭代之后驱动,稍微有点变化: com.mysql.jdbc.Driver (变化为) --> driver-class-name: com.mysql.cj.jdbc.Driv ...

  7. Java基础语法06-面向对象-继承

    七.继承 多个类中存在相同属性和行为时,将这些内容抽取到单独一个类中,那么多个类中无需再定义这些属性和行为,只需要和抽取出来的类构成继承关系. 继承的好处 提高代码的复用性. 提高代码的扩展性. 类与 ...

  8. MyBatis框架之第三篇

    8.Spring与Mybatis整合 框架的整合就是软件之间的集成,它很抽象,因此在做整合之前先想好思路.规划好思路然后按照思路一步一步的做就可以实现框架的整合. 8.1.SM整合思路 8.1.1.思 ...

  9. jQuery总结01_jq的基本概念+选择器

    jQuery基本概念 学习目标:学会如何使用jQuery,掌握jQuery的常用api,能够使用jQuery实现常见的效果. 为什么要学习jQuery? [01-让div显示与设置内容.html] 使 ...

  10. js-08-数组学习

    一.数组语法格式 var name=[item1,item2,......] 二.数组的声明创建 var arr=new Aarray( ) //声明一个空数组对象 var arr=new Array ...