Spring MVC的注解二
程序员文章站
2022-05-15 22:33:34
概述Spring从2.5版本开始引入注解,虽然版本不断变化,但是注解的特性一直被延续下来并不断进行扩展,这里就来记录一下Spring MVC中常用的注解,本文承接前文继续记录@PathVariable、@RequestHeader和@CookieValue三个注解。@PathVariable注解该注... ......
概述
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的json视图实现思路解析
-
spring mvc利用ajax向controller传递对象的方法示例
-
spring mvc中直接注入的HttpServletRequst安全吗
-
关于Spring MVC在Controller层中注入request的坑详解
-
Spring mvc整合tiles框架的简单入门教程(maven)
-
Spring MVC 404 Not Found无错误日志的解决方法
-
Maven工程搭建spring boot+spring mvc+JPA的示例
-
Spring MVC参数自动绑定List的解决方法
-
快速理解spring中的各种注解
-
Spring启动后获取所有拥有特定注解的Bean实例代码