Spring MVC中的@RequestMapping使用(Spring Boot也支持)

Spring Boot中请求类型的说明(@ResquestMapping,@GetMapping ,@PostMapping,@PutMapping,@DeleteMapping)这篇文章中我们谈了RequestMapping的几个改进版本的用法。本文主要针对RequesMapping本身的某些特性进行说明。

  • RequestMapping是什么

RequestMapping是一个用来处理请求地址映射的注解,可用于类或方法上。用于类上,表示类中的所有响应请求的方法都是以该地址作为父路径。

  • RequestMapping可以做那些事
  1. 设置请求路径(value)
  2. 设置请求类型(method)
  3. 指定处理请求的提交内容类型(consumes)
  4. 制定返回类型(produces)
  5. 指定request中必须包含某些参数值是,才让该方法处理(params)
  6. 指定request中必须包含某些指定的header值,才能让该方法处理请求(headers)

设置请求路径和请求类型(method)

@RequestMapping(value="/{value}", method = RequestMethod.GET)  
    public void fun1(@PathVariable String value, Model model) {  
	//...
 }  

@RequestMapping(value="/new", method = RequestMethod.GET)  
   public void fun2() {  
       //.....
}  
注:value的值常见的可以是某一具体值,或者某一变量(PathVariable)。也可以是正则表达式(少见)

设置处理请求的提交类型和返回类型

@Controller
@RequestMapping(value = "/user", method = RequestMethod.POST, consumes="application/json")
public void addUser(@RequestBody User user) {    
    // ......
}
注;仅处理提交的类型为application/json格式的

@Controller
@RequestMapping(value = "/user/{id}", method = RequestMethod.GET, produces="application/json")
@ResponseBody
public void getUser(@PathVariable String id) {    
    // ......
}
produces第一种使用,返回json数据,下边的代码可以省略produces属性,因为我们已经使用了注解@responseBody就是返回值是json数据:
produces第二种使用,返回json数据的字符编码为utf-8.:
produces = {"application/json;charset=UTF-8"}

指定包含的参数

// 该方法将接收 /user/login 发来的请求,且请求参数必须为 username=kolbe&password=123456
	@RequestMapping(path = "/login", params={"username=kolbe","password=123456"})
	public String login() {
		return "success";
	}
	//@RequestMapping 中可以使用 params 来限制请求参数,来实现进一步的过滤请求

@RequestMapping(value = "/pets", method = RequestMethod.GET, headers="Referer=http://www.haoeasy.cn")
  public void findUser(@PathVariable String id) {    
    // .......
  }
  @RequestMapping注解折配置headers属性,也就是通过headers属性来配置请求头信息,对请求进行进一步过滤
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值