SpringMVC注解汇总(一)-定义

时间:2023-02-27 16:33:08

本文根据开涛哥学习SpringMVC汇总而成,方便更好查阅!

网址:http://jinnianshilongnian.iteye.com/blog/1752171

注解式控制器简介

@Controller:用于标识是处理器类;

@RequestMapping:请求到处理器功能方法的映射规则;

@RequestParam:请求参数到处理器功能处理方法的方法参数上的绑定;

@ModelAttribute:请求参数到命令对象的绑定;

@SessionAttributes:用于声明session级别存储的属性,放置在处理器类上,通常列出

模型属性(如@ModelAttribute)对应的名称,则这些属性会透明的保存到session中;

@InitBinder:自定义数据绑定注册支持,用于将请求参数转换到命令对象属性的对应类型;

Spring3.0引入RESTful架构风格支持(通过@PathVariable注解和一些其他特性支持),且又引入了

更多的注解支持:

@CookieValue:cookie数据到处理器功能处理方法的方法参数上的绑定;

@RequestHeader:请求头(header)数据到处理器功能处理方法的方法参数上的绑定;

@RequestBody:请求的body体的绑定(通过HttpMessageConverter进行类型转换);

@ResponseBody:处理器功能处理方法的返回值作为响应体(通过HttpMessageConverter进行类型转换);

@ResponseStatus:定义处理器功能处理方法/异常处理器返回的状态码和原因;

@ExceptionHandler:注解式声明异常处理器;

@PathVariable:请求URI中的模板变量部分到处理器功能处理方法的方法参数上的绑定,

从而支持RESTful架构风格的URI;

Spring3.1使用新的HandlerMapping 和 HandlerAdapter来支持@Contoller和@RequestMapping

注解处理器。

新的@Contoller和@RequestMapping注解支持类:处理器映射RequestMappingHandlerMapping

和处理器适配器RequestMappingHandlerAdapter组合来代替Spring2.5开始的处理器映射DefaultAnnotationHandlerMapping和处理器适配器AnnotationMethodHandlerAdapter,

提供更多的扩展点。

使用在spring mvc的配置文件中配置***-servlet.xml

<!--Spring3.1开始的注解 HandlerMapping -->

<bean

class="org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerMapping"/>

<!--Spring3.1开始的注解 HandlerAdapter -->

<bean

class="org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter"/>

处理器定义

1.@Controller

格式:

@Controller

public class HelloWorldController {

……

}

推荐使用这种方式声明处理器,它和我们的@Service、@Repository很好的对应了我们常见的三层开发架构的组件。

2.@RequestMapping

格式:

@RequestMapping

public class HelloWorldController {

……

}

这种方式也是可以工作的,但如果在类上使用@ RequestMapping注解一般是用于

窄化功能处理方法的映射的!(见下:)

窄化请求映射

格式:

@Controller

@RequestMapping(value="/user")         //①处理器的通用映射前缀

public class HelloWorldController2 {

@RequestMapping(value = "/hello2")   //②相对于①处的映射进行窄化

public ModelAndView helloWorld() {

.....          //省略实现

}

}

①类上的@RequestMapping(value="/user") 表示处理器的通用请求前缀;

②处理器功能处理方法上的是对①处映射的窄化。

访问格式如下:

SpringMVC注解汇总(一)-定义

窄化请求映射可以认为是方法级别的@RequestMapping继承类级别的@RequestMapping。

窄化请求映射还有其他方式,如在类级别指定URL,而方法级别指定请求方法类型或参数等等;

请求映射

处理器定义好了,那接下来我们应该定义功能处理方法,接收用户请求处理并选择视图进行渲染。

SpringMVC注解汇总(一)-定义

http请求信息包含六部分信息:

①请求方法,如GET或POST,表示提交的方式;

②URL,请求的地址信息;

③协议及版本;

④请求头信息(包括Cookie信息);

⑤回车换行(CRLF);

⑥请求内容区(即请求的内容或数据),如表单提交时的参数数据、URL请求参数(?abc=123 ?后边的)等。

想要了解HTTP/1.1协议,请访问http://tools.ietf.org/html/rfc2616

那此处我们可以看到有①、②、④、⑥一般是可变的,因此我们可以这些信息进行请求到

处理器的功能处理方法的映射,因此请求的映射分为如下几种:

URL路径映射:使用URL映射请求到处理器的功能处理方法;

请求方法映射限定:如限定功能处理方法只处理GET请求;

请求参数映射限定:如限定只处理包含“abc”请求参数的请求;

请求头映射限定:如限定只处理“Accept=application/json”的请求。

接下来看看具体如何映射吧。

下一节请求映射规则

SpringMVC注解汇总(一)-定义的更多相关文章

  1. SpringMVC注解汇总&lpar;二&rpar;-请求映射规则

    接上一节SpringMVC注解汇总-定义 讲到Httpy请求信息 URL路径映射 1)普通URL路径映射 @RequestMapping(value={"/test1", &quo ...

  2. springMVC注解初步

    一.(补充)视图解析器---XmlViewResolver 作用:分离配置信息. 在视图解析器---BeanNameViewResolver的基础之上进行扩充,新建一个myView.xml分离信息 在 ...

  3. SpringMVC注解开发初步

    一.(补充)视图解析器---XmlViewResolver 作用:分离配置信息. 在视图解析器---BeanNameViewResolver的基础之上进行扩充,新建一个myView.xml分离信息 在 ...

  4. 跟我学SpringMVC目录汇总贴、PDF下载、源码下载

    国内私募机构九鼎控股打造APP,来就送 20元现金领取地址:http://jdb.jiudingcapital.com/phone.html内部邀请码:C8E245J (不写邀请码,没有现金送)国内私 ...

  5. springMVC 注解版

    http://blog.csdn.net/liuxiit/article/details/5756115 http://blog.csdn.net/hantiannan/article/categor ...

  6. Spring&plus;SpringMVC&plus;MyBatis深入学习及搭建&lpar;十六&rpar;——SpringMVC注解开发(高级篇)

    转载请注明出处:http://www.cnblogs.com/Joanna-Yan/p/7085268.html 前面讲到:Spring+SpringMVC+MyBatis深入学习及搭建(十五)——S ...

  7. SpringMVC注解HelloWorld

    今天整理一下SpringMVC注解 欢迎拍砖 @RequestMapping RequestMapping是一个用来处理请求地址映射的注解,可用于类或方法上.用于类上,表示类中的所有响应请求的方法都是 ...

  8. 《SpringMVC从入门到放肆》八、SpringMVC注解式开发(基本配置)

    上一篇我们结束了配置式开发,配置式开发目前在企业中用的并不是很多,大部分企业都在使用注解式开发,所以今天我们就来学习注解式开发.所谓SpringMVC注解式开发是指,处理器是基于注解的类的开发方式.对 ...

  9. 3&period;2&period;3 SpringMVC注解式开发

    SpringMVC注解式开发 1. 搭建环境 (1) 后端控制器无需实现接口 , 添加相应注解 Controller类添加注解 @Controller //该注解表将当前类交给spring容器管理 @ ...

随机推荐

  1. JSP中,当页面为404或者500时。设置跳转到错误提示页面

    最好的就是在WEB.XML文件中配置错误代码的跳转页面,首先建立个 出现500错误的页面,提示出错了,然后再WEB.XML文件中配置,配置如下 一. 通过错误码来配置error-page <er ...

  2. SOLID &lpar;面向对象设计&rpar; 基本原则

      SOLID (面向对象设计) 基本原则    在 程序设计领域, SOLID (单一功能.开闭原则.里氏替换.接口隔离以及依赖反转)是由罗伯特•C•马丁在21世纪早期[1] 引入的记忆术首字母缩略 ...

  3. linux查看文件大小df-du

    1.  显示目前所有文件系统的可用空间及使用情形,h表示使用 GB.MB 等易读的格式 [root@rusky ldap]# df -hFilesystem Size Used Avail Use% ...

  4. 使用PF&lowbar;PACKET和SOCK&lowbar;RAW发送自己定义type以太网数据包

    本文介绍使用PF_PACKET和SOCK_RAW发送自己定义type以太网数据包,使用wireshare抓包能够获取到数据包,为Linux内核添加网络协议做铺垫. 先上码: #include < ...

  5. 笨方法学python--打印

    1 print 语句 尾端的逗号 end1 = "C" end2 = "h" end3 = "e" end4 = "e" ...

  6. 《JAVASCRIPT高级程序设计》第三章

    <JAVASCRIPT高级程序设计>第三章主要讲述了这门语言的基础概念,内容多而浅,通过思维导图可以帮助我们很好的理清脉络. js函数使用function关键字来声明,以下是一个简单的例子 ...

  7. 7系列FPGA的时钟资源——UG472

    时钟架构总览 7系的FPGA使用了专用的全局(Global)和区域(Regional)IO和时钟资源来管理设计中各种的时钟需求.Clock Management Tiles(CMT)提供了时钟合成(C ...

  8. golang 学习路径

    目录 一 了解 go 二 入门教程 三 安装运行环境 & IDE(goland) 四 gotour 五 简易源码解析 六 开始写代码 七 学习框架 八 惯用法 九 调优 一 了解 go 谷歌一 ...

  9. 第九届蓝桥杯C&sol;C&plus;&plus;B组省赛感想

    因为做了近三年的初赛题,都对了5题+,所以这次比赛前信心满满,心里想最少水个省二没问题.可我怎么知道今年的套路居然和以前不一样了!一题深搜都没有,想想一周前做的第七届初赛题,10题有3.4题深搜题. ...

  10. matplotlib fill和fill&lowbar;between

    import numpy as np import matplotlib.pyplot as plt x = np.linspace(0, 5 * np.pi, 1000) y1 = np.sin(x ...