• @RequestMapping

这个是最常用的注解,可以配置在类上,也可以配置在方法上,两个一起作用组成方法能够响应的请求路径,举例如下

 package org.zln.myWeb.controller;

 import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.*;
import org.zln.myWeb.domain.T00_User;
import org.zln.myWeb.service.T00_UserService; import java.util.HashMap;
import java.util.Map; /**
* Created by sherry on 16/8/6.
*/
@Controller
@RequestMapping("/myWeb")
public class T00_UserController { @Autowired
private T00_UserService t00_userService; @RequestMapping("/name.json")
public @ResponseBody Map<String,String> showName(@RequestParam("id") Integer id){
T00_User t00_user = t00_userService.getT00_UserById(id);
Map<String,String> map = new HashMap<>();
map.put("name",t00_user.getName());
return map;
}
}

@RequestMapping demo01

showName方法能够处理的就是请求路径为 /myWeb/name.json 的请求

可以配置多个路径
@RequestMapping(value={"/myWeb","/"})

URI模板映射

@RequestMapping("/myWeb/user/{userId}")

其中{xxx}是占位符,在方法参数中,通过@PathVariable能够提取URI中的userId值

当然,占位符可以使用多个

Ant风格的URL路径

@RequestMapping("/myWeb/**")

所有 /myWeb/开头的地址都能够映射到,但是,当产生冲突的时候,参考最长匹配优先原则

@RequestMapping("/myWeb/name?")

一个问号 ?,匹配任意一个字符

一个星号 *,匹配任意多个字符

Ant风格和URI模板是可以混用的

正则表达式

@RequestMapping("/myWeb/{正则表达式名:表达式}")

方法参数中,使用@PathVariable("正则表达式名") 获取到请求地址值

  • 请求方法限定
@RequestMapping(value = "/name.json",method = {RequestMethod.GET})

也可以配置允许多种提交方式

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

一般浏览器只支持GET、POST两种请求方法,Spring MVC默认开启了对GET、POST、DELETE、PUT、HEAD的支持

对于OPTIONS、TRACE请求方法的支持,需要在web.xml中配置

  • 请求参数限定

请求参数中必须有某种参数,也可以设置参数的值必须为某个指定值,才映射到方法

@RequestMapping(value = "/name.json",method = {RequestMethod.GET,RequestMethod.POST,},params = "id")
@RequestMapping(value = "/name.json",method = {RequestMethod.GET,RequestMethod.POST,},params = "!id")

!id表示没有id请求参数

@RequestMapping(value = "/name.json",method = {RequestMethod.GET,RequestMethod.POST,},params = "id=1")

指定id值

@RequestMapping(value = "/name.json",method = {RequestMethod.GET,RequestMethod.POST,},params = "submit!=create")

指定值不等于某个值

@RequestMapping(value = "/name.json",method = {RequestMethod.GET,RequestMethod.POST,},params = {"test1","test2=1"})

也可以配置多个参数值,多个参数之间的配置是且的关系

  • 请求头信息限定
@RequestMapping(value = "/name.json",method = {RequestMethod.GET,RequestMethod.POST,},params = "id",headers = "Accept")

headers用来配置请求头信息,如上表示请求头信息必须有Accept参数

headers="!Accept",请求头不允许包含Accept参数

同时,和params一样,也可以配置多个请求头参数

通过以上的方式,基本是已经可以完全满足日常使用了

Spring MVC请求到处理方法注解配置的几种方式的更多相关文章

  1. 【Spring】SpringMVC非注解配置的两种方式

    目录结构: contents structure [+] SpringMVC是什么 Spring MVC的设计原理 SpringMVC配置的第一种方式 1,复制Jar包 2,Web.xml文件 3,M ...

  2. spring mvc从前台往后台传递参数的三种方式

     jsp页面: 第一种:使用控制器方法形参的方式(常用) 第二种:使用模型传参的方式(如果前台往后台传递的参数非常多,如果还使用形参的方式传递,非常复杂.我们可以使用模型传参的方式,把多 个请求的参数 ...

  3. spring mvc从后台往前台传参数的三种方式

    第一种:使用Model对象(常用) 第一步:使用model对象往前台传递数据 第二步:在jsp中接收从后台传递过来的参数 第二种:使用HttpServletRequest对象 第一步:使用HttpSe ...

  4. spring Mvc 执行原理 及 xml注解配置说明 (六)

    Spring MVC 执行原理 在 Spring Mvc 访问过程里,每个请求都首先经过 许多的过滤器,经 DispatcherServlet 处理; 一个Spring MVC工程里,可以配置多个的 ...

  5. Spring MVC 4常用的那些注解

    Spring从2.5版本开始在编程中引入注解,用户可以使用@RequestMapping, @RequestParam, @ModelAttribute等等这样类似的注解.到目前为止,Spring的版 ...

  6. [转]Spring MVC 4常用的那些注解

    Spring从2.5版本开始在编程中引入注解,用户可以使用@RequestMapping, @RequestParam, @ModelAttribute等等这样类似的注解.到目前为止,Spring的版 ...

  7. 0054 Spring MVC的@Controller和@RequestMapping注解

    @Controller注解 该注解用来指示一个类是一个控制器,在Spring的配置xml文件中开启注解扫描 <context:conponent-scan base-package=" ...

  8. Spring MVC内容协商实现原理及自定义配置【享学Spring MVC】

    每篇一句 在绝对力量面前,一切技巧都是浮云 前言 上文 介绍了Http内容协商的一些概念,以及Spring MVC内置的4种协商方式使用介绍.本文主要针对Spring MVC内容协商方式:从步骤.原理 ...

  9. 详解Spring MVC 4常用的那些注解

    Spring从2.5版本开始在编程中引入注解,用户可以使用@RequestMapping, @RequestParam, @ModelAttribute等等这样类似的注解.到目前为止,Spring的版 ...

随机推荐

  1. POJ 1703 Find them, Catch them(并查集,等价关系)

    DisjointSet保存的是等价关系,对于某个人X,设置两个变量Xa,Xb.Xa表示X属于a帮派,Xb类似. 如果X和Y不是同一个帮派,那么Xa -> Yb,Yb -> Xa... (X ...

  2. Objective-C 引用计数原理

    http://www.cocoachina.com/ios/20160112/14933.html 引用计数如何存储 有些对象如果支持使用 TaggedPointer,苹果会直接将其指针值作为引用计数 ...

  3. 2018.6.27 Ajax实现异步刷新

    Servlet获取URL地址.在HttpServletRequest类里,有以下六个取URL的函数: getContextPath 取得项目名 getServletPath 取得Servlet名 ge ...

  4. 2017.12.2 用java做一个日历

    1.先判断输入的日期是否为闰年 2.在判断输入的月份是否为2月 3.在获取输入的年份和月份的1月1日 的列数 4.在输出 import java.util.*; public class demo{ ...

  5. Java环境变量搭建(Windows环境)

    变量名:JAVA_HOME 变量值:C:\Program Files (x86)\Java\jdk1.8.0_91        // 要根据自己的实际路径配置 变量名:CLASSPATH 变量值:. ...

  6. 借鉴一些关于js框架的东西

    八款Js框架介绍及比较,Dojo .Scriptaculous .Prototype .yui-ext .Jquery .Mochikit.mootools .moo.fx,componentartu ...

  7. JDBC开发,数据库的连接

    JDBC开发步骤 1.建完工程后,右击工程,new,新建一个文件夹Folder,装jar包,        2.将下载好的驱动包打开,找到jar文件,CTRL+C,选中装jar包的文件夹,CTRL+V ...

  8. 事件流,事件对象和jQuery

    事件流 多个彼此嵌套元素,他们拥有相同的事件,最内部元素事件被触发后,外边多个元素的同类型事件也会被触发,多个元素他们同类型事件同时执行的效果称为“事件流” 例子:html代码: <div cl ...

  9. iterable -------JavaScript

    本文摘要:http://www.liaoxuefeng.com/ 遍历Array可以采用下标循环,遍历Map和Set就无法使用下标.为了统一集合类型,ES6标准引入了新的iterable类型,Arra ...

  10. 关于java中异常机制

    什么是异常:异常就是程序在运行时出现的不正常情况.对于严重的情况Java通过Error类进行描述,一般不用编写代码处理:对于不严重的情况Java通过Exception描述,一般编写针对性代码对其进行处 ...