1、@Controller

  @Controller 用于标记在一个类上,使用它标记的类就是一个SpringMVC Controller 对象。分发处理器将会扫描使用了该注解的类的方法,

  并检测该方法是否使用了@RequestMapping 注解。@Controller 只是定义了一个控制器类,而使用@RequestMapping 注解的方法才是真正处理请求的处理器。

@Controller 标记在一个类上还不能真正意义上的说它就是SpringMVC 的一个控制器类,因为这个时候Spring 还不认识它。

  这个时候就需要我们把这个控制器类交给Spring 来管理。有两种方式可以管理:

  <!--方式一--><bean class="com.cqvie.handler.HelloWorld"/><!--方式二-->< context:component-scan base-package = "com.cqvie" /> <!-- 路径写到controller的上一层 -->  此外Controller 不会直接依赖于HttpServletRequest 和HttpServletResponse 等HttpServlet 对象,它们可以通过Controller 的方法参数灵活的获取到。  为了先对Controller 有一个初步的印象,以下先定义一个简单的Controller :
  package com.cqvie.handler;import org.springframework.stereotype.Controller;@Controllerpublic class HelloWorld {@RequestMapping("/helloworld")public String sayHello() {System.out.println("Hello World!");return "success";}}

2、@RequestMapping

  2.1 value:指定请求的实际url
    (1)普通的具体值。

      @RequestMapping(value="book")
    (2)含某变量的一类值。

      @RequestMapping(value="/get/{bookId}")   路径中的bookId可以当变量,@PathVariable注解即提取路径中的变量值。

    (3)ant风格

      @RequestMapping(value="/get/id?"):可匹配“/get/id1”或“/get/ida”,但不匹配“/get/id”或“/get/idaa”;
      @RequestMapping(value="/get/id*"):可匹配“/get/idabc”或“/get/id”,但不匹配“/get/idabc/abc”;
      @RequestMapping(value="/get/id/*"):可匹配“/get/id/abc”,但不匹配“/get/idabc”;
      @RequestMapping(value="/get/id/**/{id}"):可匹配“/get/id/abc/abc/123”或“/get/id/123”,也就是Ant风格和URI模板变量风格可混用。

    (4)含正则表达式的一类值
      @RequestMapping(value="/get/{idPre:\\d+}-{idNum:\\d+}"):可以匹配“/get/123-1”,但不能匹配“/get/abc-1”,这样可以设计更加严格的规则。
      可以通过@PathVariable 注解提取路径中的变量(idPre,idNum)

    (5)或关系
      @RequestMapping(value={"/get","/fetch"} )即 /get或/fetch都会映射到该方法上。

  2.2 method:指定请求的method类型, GET、POST、PUT、DELETE等

    @RequestMapping(value="/get/{bookid}",method=RequestMethod.GET)
    @RequestMapping(value="/get/{bookid}",method={RequestMethod.GET,RequestMethod.POST})

  2.3 params:指定request中必须包含某些参数值是,才让该方法处理

    @RequestMapping(params="action=del"),请求参数包含“action=del”,如:http://localhost:8080/book?action=del

     仅处理请求中包含了名为“action”,值为“del”的请求。

  2.4 headers:指定request中必须包含某些指定的header值,才能让该方法处理请求

    @RequestMapping(value="/header/id", headers = "Accept=application/json")

    表示请求的URL必须为“/header/id 且请求头中必须有“Accept =application/json”参数即可匹配。

  2.5 consumes:指定处理请求的提交内容类型(Content-Type),例如application/json, text/html

    @RequestMapping(value = "/pets", method = RequestMethod.POST, consumes="application/json")

    方法仅处理request Content-Type为“application/json”类型的请求。

  2.6 produces: 指定返回的内容类型,仅当request请求头中的(Accept)类型中包含该指定类型才返回。

    @RequestMapping(value = "/pets/{petId}", method = RequestMethod.GET, produces="application/json")

    方法仅处理request请求中Accept头中包含了"application/json"的请求,同时暗示了返回的内容类型为application/json;

3、@RequestParam绑定单个请求参数值

4、@PathVariable绑定URI模板变量值

5、@ModelAttribute

  5.1 @ModelAttribute注释一个方法

  5.2 @ModelAttribute注释一个方法的参数

  5.3 @ModelAttribute注解的使用场景

6、@SessionAttributes

7、@Responsebody与@RequestBody

8、@Resource和@Autowired

9、@CookieValue

参考一下做笔记

https://www.cnblogs.com/xiaoxi/p/5718894.html

https://www.cnblogs.com/yjq520/p/6734422.html

转载于:https://www.cnblogs.com/sss-justdDoIt/p/9453235.html

spring mvc注解笔记相关推荐

  1. Spring MVC 学习笔记一 HelloWorld

    Spring MVC 学习笔记一 HelloWorld Spring MVC 的使用可以按照以下步骤进行(使用Eclipse): 加入JAR包 在web.xml中配置DispatcherServlet ...

  2. Spring MVC 学习笔记 对locale和theme的支持

    Spring MVC 学习笔记 对locale和theme的支持 Locale Spring MVC缺省使用AcceptHeaderLocaleResolver来根据request header中的 ...

  3. java注解式开发_JAVA语言之Spring MVC注解式开发使用详解[Java代码]

    本文主要向大家介绍了JAVA语言的Spring MVC注解式开发使用详解,通过具体的内容向大家展示,希望对大家学习JAVA语言有所帮助. MVC注解式开发即处理器基于注解的类开发, 对于每一个定义的处 ...

  4. spring mvc(注解)上传文件的简单例子

    spring mvc(注解)上传文件的简单例子,这有几个需要注意的地方 1.form的enctype="multipart/form-data" 这个是上传文件必须的 2.appl ...

  5. 【spring学习笔记】(二)Spring MVC注解配置 参数转换注解@RequestMapping@RequestParam、@PathVariable@MatrixVariable

    @TOC 介绍 在Spring MVC项目中,<\context:component-scan>配置标签还会开启@Request-Mapping.@GetMapping等映射注解功能(也就 ...

  6. Spring MVC 学习笔记(整理)

    SpringMVC学习 1.概述 Spring MVC是一种基于Java实现MVC设计模式的请求驱动类型的轻量级Web框架,即使用了MVC架构模式的思想,将web层进行解耦,基于请求-响应模型帮助我们 ...

  7. Spring MVC 复习笔记01

    1. springmvc框架 1.1 什么是springmvc spring mvc是spring框架的一个模块,springmvc和spring无需通过中间整合层进行整合.spring mvc是一个 ...

  8. Spring MVC注解故障追踪记

    2019独角兽企业重金招聘Python工程师标准>>> Spring MVC是美团点评很多团队使用的Web框架.在基于Spring MVC的项目里,注解的使用几乎遍布在项目中的各个模 ...

  9. Spring MVC 入门笔记

    主要名词解释 DispatcherServlet 前端控制器  相当于一个转发器 入口: protected void doDispatch(HttpServletRequest request, H ...

最新文章

  1. c语言 1或0 结果,C语言中,在表示逻辑运算结果时,以数值1代表“真”,以0代表“假”。()...
  2. 记录使用 Cake 进行构建并制作 nuget 包
  3. (相当全面)node.js 初体验
  4. 疑似realme旗舰新机入网:采用升降前置摄像头
  5. 小程序showModal 可配置文字
  6. smoothl1函数_Faster RCNN的损失函数(Loss Function)
  7. 在LINUX中部署FTP服务器
  8. opencv保存图像自动命名
  9. Sphinx的配置和使用
  10. 20160504课堂作业
  11. java面向对象面试怎么回答_Java面向对象面试题
  12. linux下画pcb的软件,Linux下画原理图和PCB
  13. C#之DotNetBar2使用方法 - itemPanel1
  14. 关于Mpush 消息推送 出现的问题
  15. 一种简单的PCB加温电路设计
  16. MapReduce之InputFormat、OutputFormat(三)
  17. 【Opengl】 VAO与VBO的关系
  18. MeVisLab模块化医学图像处理可视化软件
  19. 涂鸦Zigbee SDK开发系列教程——2.环境搭建
  20. 【生产者分析六】Kafka生产者Tips

热门文章

  1. sql语句查询 日期比较_SQL查询比较日期
  2. Metasploit图形界面Viper安装
  3. 排序算法——冒泡排序原理动图详解及实现
  4. C++ socket函数解析
  5. 百度大脑智能写诗与智能春联使用攻略
  6. makefile中.PHONY目标的意义
  7. mysql 重复数据只保留一条
  8. AE+C#二次开发,矢量数据空间分析——裁剪分析
  9. Vuex快速上手,state、getter、Mutations、Actions
  10. 香港中文大学岳翔宇老师招收人工智能全奖博士生/博士后/研究助理/实习生