SpringMVC 笔记@RequestMapping的属性

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

  • @RequestMapping属性
    1、 value、method
    value: 指定请求的实际地址,指定的地址可以是URI Template模式;
    method:指定请求的method类型:(HTTP协议规定)GET、POST、PUT、DELETE、HEAD、OPTIONS、PATCH等;

    2、 consumes、produces
    consumes:指定接收的处理请求的提交内容类型(Content-Type);
    produces: 指定返回的内容类型,仅当request请求头中包含该指定类型才返回, Content-Type:text/html; charset=UTF-8;

    3、 params、headers
    params: 指定request中必须包含某些参数值 。
    * param:请求必须带上指定参数 例: @RequestMapping(path="/hello",params = {"username=123"})
    正确请求为:http://localhost:8070/springmvc_day01_01_start/haha/hello?username=123
    * !param:请求不可以带上某个参数 例:params = {"!username"}
    * param!=value:请求所带参数值不可以等于value 例:params = {“username!=123”}
    * {“param1”,"!param2",“param3!=value”} :请求必须满足集合中的多个参数规则

    headers: 指定请求头,request中必须包含某些指定的header值。

  • @RequestMapping的模糊查询

1
2
3
4
   ?:替换一个字符,例: @RequestMapping("/hello?")
       注意:0个和多个都不行 (模糊和精确情况下,精确匹配优先)
   * :替换多个字符或者一层路径,例:@RequestMapping("/a/*/hello ")
  ** :替换多层路径,例:@RequestMapping("/a/**/hello")
  • @RequestMapping 路径占位符@PathVariable 可以占一层路径
1
2
3
4
5
  @RequestMapping(path="/hello/{id}")
     public String MyPathRequest(@PathVariable("id") String id){
           System.out.println(id+"入门成功");
      return "success";
     }