Fork me on GitHub

SpringMVC知识盘点及总结4@RequestMapping注解的method属性

学习目标@RequestMapping注解的method属性

知识点三、

@RequestMapping注解的method属性:

1. 匹配请求映射必须设置value,但是请求方式不是必须的

2.请求方式post和get来匹配请求映射,当同时设置了value和method属性后,必须都满足才
可以匹配请求映射。

3.get方式将请求参数用?拼接在浏览器url中发起请求,而post则将请求参数通过请求体发起请求。
两种都是请求方式的格式都是name=value的形式。

4.get不安全但是响应快传输量小,post安全但是响应慢传输量大

5.测试:
(1)success方法的注解里,加上method属性,以GET方式匹配请求映射
method ={RequestMethod.GET}

(2)在index.html中添加一个from表单里面写一个submit按钮,设置提交方式为post
    <form th:action="@{/hello/test}" method="post">
         <input type="submit" value="测试RequestMapping的method属性---->POST">
       </form>


(3)启动测试

点击测试按钮,发现报405错误!Request method 'POST' not supported
设置匹配请求映射方式为GET,而以post发起请求,所以不能匹配请求映射。
同理post也一样。

@RequestMapping注解的method属性通过请求的请求方式(get或post)匹配请求映射
@RequestMapping注解的method属性是一个RequestMethod类型的数组,表示该请求映射能够匹配多种请求方
式的请求
*若当前请求的请求地址满足请求映射的value属性,但是请求方式不满足method属性,则浏览器报错405:
Request method 'POST' not supported

其中@RequestMapping有对于指定请求方式的控制器方法,@RequestMapping的派生注解:

GetMapping --- 处理get请求的映射
PostMapping --- 处理post请求的映射
PutMapping ---处理put请求的映射
DeleteMapping ---处理delete请求的映射


练习测试一下@GetMapping,此时就只需要写value值
//测试指定映射请求的方式为GET
@GetMapping("testGetMapping")
            public String testGetMapping(){
                return  "success";
            }

 

<a th:href="@{/hello/testGetMapping}">测试GetMapping注解--->testGetMapping</a><br>

访问成功


练习测试@PostMapping
       //测试指定映射请求的方式为POST
            @PostMapping("testPostMapping")
            public  String  testPostMapping(){
                return "success";
            }

     <form th:action="@{/hello/testPostMapping}" method="post">
            <input type="submit" value="测试PostMapping注解---post">
        </form>

练习测试@PutMapping
      //测试指定映射请求的方式为PUT
            @PutMapping(value = "/testPut")
            public  String testPut(){

                return "success";
            }

     <form th:action="@{/hello/testPut}" method="put">
            <input type="submit" value="测试form表单能否发送put或者delete请求">
        </form>
           
以put请求报405错! Request method 'GET' not supported
说明即使指定为put或者delete方式,也按照get进行请求


总结:目前浏览器只支持get和post,超链接是以get方式发送请求,如果在from表单提交时,
为method设置了其他请求方式的字符串(put或者delete),
则按照默认的请求get处理。
posted @ 2021-12-22 15:15  诗错亦染丨  阅读(613)  评论(0)    收藏  举报