使用@RequestMapping映射请求

目录

1、标注位置

2、规定请求方式:method

3、规定请求参数:params

4、规定请求头:headers

5、规定请求头中的Content-Type :consumes

6、给响应头中加上Content-Type:produces

7、模糊匹配 - Ant风格的URL

8、@PathVariable映射URL绑定的占位符

9、REST风格的URL地址约束

高版本的Tomcat(8.0以及以上版本)的REST - JSP不接受DELETE、PUT形式请求的问题。


 

 

1、标注位置

在控制器的类定义和方法定义处都可以标注

  • 类定义处:提供初步的请求映射信息,相对于WEB应用的根目录
  • 方法处:提供进一步的细分映射信息。相对于类定义处的URL。若类定义处为标注@RequestMapping,则该方法处标记的URL相对于WEB应用的根目录。

DispatcherServlet截取请求后,就通过控制器上的@RequestMapping提供的映射信息确定请求说对应的处理方法。

 

2、规定请求方式:method

 RequestMethod[] method() default {};
RequestMethod
标题

 

  • 指定只接受哪种请求方式的请求
  • 默认可接受所有请求

3、规定请求参数:params

String[] params() default {};

可支持一些简单的表达式:

  • {"username"}  

发送的请求必须带上username这个参数,没带就404

  • {"!username"}

必须不携带名为username的参数,带了就404

  • {"username=123"}  

带的username值必须是123

  • {"username!=123"}  

没带username或者带的username值必须不是123

  • {"xxx","xxx","xxx"}

请求参数必须满足所有规则

 


4、规定请求头:headers

 String[] headers() default {};

和params一样,可以写简单的表达式


5、规定请求头中的Content-Type :consumes

String[] consumes() default {};

规定只接受内容类型是哪种的请求

 


6、给响应头中加上Content-Type:produces

    String[] produces() default {};

告诉浏览器返回的内容是什么类型


7、模糊匹配 - Ant风格的URL

url地址可以写模糊的通配符:? * **

  • ?:替代任意一个字符
  • * :替代任意多个字符和一层路径
  • ** :替代多层路径
 /*精确URL*/
    @RequestMapping("/antTest01")
    public String antTest01(){
        System.out.println("antTest01....");
        return "success";
    }

    /*模糊匹配:antTest0几都可以*/
    @RequestMapping("/antTest0?")
    public String antTest02(){
        System.out.println("antTest02....");
        return "success";
    }


    /*模糊匹配:a啥啥Test0几都可以*/
    @RequestMapping("/a*Test0?")
    public String antTest03(){
        System.out.println("/a*Test0?....");
        return "success";
    }


8、@PathVariable映射URL绑定的占位符

带占位符的URL是Spring3.0新增的功能,该功能在springmvc向REST目标挺进发展过程中具有里程碑的意义。

  //路径上可以有占位符,可以在路径的任意一个地方写一个占位符{变量名}
    @RequestMapping(value = "/user/{uid}")
    public String PathVariableTest(@PathVariable("uid") String id){

        System.out.println("路径上的占位符是:"+id);
        return "success";
    }

 


9、REST风格的URL地址约束

Representational State Transfer,资源表现层转化。是目前最流行的一种互联网软件架构。

主要是用来规定URL地址的。

  • Resources:资源。网络上的一个实体,网络上的一个具体信息。URL即为每个资源的独一无二的识别符。

 

  • Representation:表现层。把资源具体呈现出来的形式,叫做它的表现层。txt表现格式、HTML格式、XML格式、JSON格式,甚至可以采用二进制格式

 

  • State Transfer:状态转化。HTTP协议里,四个表示操作的动词:GET、POST、PUT、DELETE。他们分别对应四个基本的操作:GET获取资源,POST用来新建资源,PUT用来更新资源,DELETE用来删除资源

系统希望以非常简洁的URL地址来发请求,

同一个URL,以不同的请求方式来区分功能,可以大大减少URL数量。

 

高版本的Tomcat(8.0以及以上版本)的REST - JSP不接受DELETE、PUT形式请求的问题。

  • 解决方式:

在返回页面的jsp加入:isErrorPage="true"

表示页面可能出现异常,如果出现就封装在Exception里

<%@ page contentType="text/html;charset=UTF-8" language="java" 
pageEncoding="UTF-8" isErrorPage="true"
%>
  • 或者通过@ResponseBody注解将返回值转化为JSON也可以解决。

 

 

 

 

 

 

 

 

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值