映射请求地址(@RequestMapping)

Exisi 2022-06-28 14:18:07
Categories: Tags:

处理映射请求地址为完整地址的注解。

参数

描述

value

指定请求的实际地址,指定的地址可以是URI Template 模式,请求地址保存在列表中,可以指定多个地址,用逗号分隔;

 

valueuri值为以下三类:

  1. 可以指定为普通的具体值;如@RequestMapping(value =/testValid)
  2. 可以指定为含有某变量的一类值;@RequestMapping(value=/{day})
  3. 可以指定为含正则表达式的一类值;@RequestMapping(value=/{textualPart:[a-z-]+}.{numericPart:[\d]+}) 可以匹配../chenyuan122912请求。

method

指定请求的method类型, GETPOSTPUTDELETE

consumes

指定处理请求的提交内容类型(Content-Type),例如@RequestMapping(value = /test, consumes=application/json)处理application/json内容类型

produces

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

params

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

headers

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

 

@RequestMpapping有以下衍生注解:

衍生注解

说明

@GetMapping

Get请求,等价于@RequestMapping(method = RequestMethod.GET)

@PostMapping

Post请求,等价于@RequestMapping(method = RequestMethod.POST)

@PutMpapping

Put请求,等价于@RequestMapping(method = RequestMethod.PUT)

@DeleteMpapping

Delete请求,等价于@RequestMapping(method = RequestMethod.DELETE)

示例

@RequestMapping("/index") 
public void findOrd(String name) {     

// implementation omitted 

}

 

//仅处理请求中包含了名为“name”,值为“zhangsan”的请求

@RequestMapping(value = "user/login", method = RequestMethod.GET, params="name=zhangsan")

public void findOrd(String name) {     

// implementation omitted 

}

 

//仅处理requestheader中包含了指定“Refer”请求头和对应值为“www.baidu.com”的请求

@RequestMapping(value = "user/register", method = RequestMethod.GET, headers="Referer=www.baidu.com") 
public void findOrd(String name) {     

// implementation omitted 

}

示例

@Controller

@RequestMapping("/user")

public class MainController {

@RequestMapping(value = "/login", method = RequestMethod.GET, headers="Referer=www.baidu.com") 
public void findOrd(String name) {     

// implementation omitted 

}

@RequestMapping(value = "/register", method = RequestMethod.GET, headers="Referer=www.baidu.com") 
public void findOrd(String name) {     

// implementation omitted 

}

}