@RequestMapping
的用法。
@RequestMapping中的参数
参数 | 说明 |
---|---|
value | 指定请求地址,指定的 url 可以是 url template 模式 |
method | 请求类型 |
consumes | 提交内容类型,application/json,application/xml 等 |
produces | 指定返回内容类型 |
params | requests 必须包含某值 |
headers | 头 |
path | 指定路径,和 value 一样 |
注解在Controller类上
将 @RequestMapping
注解在 Controller
类上,这时类的注解是相对于 Web
根目录,而方法上的是相对于类上的路径。
注意: @RequestMapping("/index")
等同于 @RequestMapping(value = "/index")
1 |
|
注解在Controller类的方法上
method属性:
通过method属性来指定请求的类型:
- GET(查)
- POST(增)
- PUT(改)
- DELETE(删)
通过 @RequestMapping(value="/login",method=RequestMethod.GET)
来指定 login()
方法 仅处理通过 GET
方式发来的请求
1 |
|
通过 @RequestMapping(value="/login",method=RequestMethod.POST)
来指定 login()
方法 仅处理通过 POST 方式发来的请求
1 |
|
由于在 RequestMapping
注解类中 method()
方法返回的是 RequestMethod
数组,所以可以给 method
同时指定多个请求方式,例如
1 |
|
params属性:
@RequestMapping
的 params
属性,该属性表示请求参数,也就是追加在 URL
上的键值对,多个请求参数以 &
隔开,例如:
http://localhost/SpringMVC/user/login?username=kolbe&password=123456
则这个请求的参数为 username=kolbe
以及 password=123456
,@RequestMapping
中可以使用 params
来限制请求参数,来实现进一步的过滤请求,举个例子:
1 |
|
该例中则表示 UserController 中的 login()
方法仅处理 /user/login
发来的请求,且必须带有 username=kolbe&password=123456
的请求参数,否则浏览器将返回 HTTP 404
的错误。
headers 属性
@RequestMapping
的 headers
属性,该属性表示请求头。
通过 @RequestMapping
中的 headers
属性,可以限制客户端发来的请求。
1 |
|
带有占位符的URL
带占位符的 URL
是 Spring 3.0
新增的功能,可以通过 @PathVariable
将 URL
中的占位符绑定到控制器的处理方法的参数中,占位符使用{}
括起来。
1 |
|
在这个控制器中 show()
方法将可以接收 user/1、user/2、user/3
等等的路径请求,请求的方法必须为 GET
,使用 @PathVariable
为应用实现 REST
规范提供了具大的便利条件。