00:00
好,那咱们刚才是看了这个value流属性,那下面呢,咱们再来看第二个属性叫做什么叫做method啊叫做method来咱们来找一下啊,这个method的这个东西是干嘛的,它表示的是请求方式。大家注意它表示的是请求方式啊。那请求方式呢?我们目前咱们所学习过的请求方式就只有两种。一种是get请求,还有一种是post请求,对吧?好,然后呢,所以我们现在就可以来规定我们当前的控制器方法对吧?然后在我们的请求路径匹配的情况下,然后我们当前的控制器方法来处理的请求的请求方式是什么?如果说我们当前的请求路径你能匹配,请求方式你也能匹配,那我们的控制器方法才会来处理这个请求,OK吧,行,大家看啊,然后在这咱们直接给它加上一个逗号,加上一个逗号咱们要用什么属性呢?Method的属性。大家看前面自动是不是就把value给我们写出来了,这个大家应该都知道什么意思吧,如果你当前你在使这个,咱们在使用注解的时候,如果注解我们只使用它的一个value属性,那我们当前咱们的value是可以省略不写的,OK吧,行,那大家再来看,然后咱们把这个method呢给它写出来,然后咱们的value它就自动出来了,OK吧,行。
01:24
来,那咱们来看一下啊,然后这个method它的类型是什么呢?大家注意它的类型是一个request method的数组,你看这又是一个数组,那说明啥?那说明我们当前控制器方法所处理的请求可以是多种请求方式的,对不对?只要是我们浏览器发送的请求的请求方式跟咱们数组中的任何一个值匹配,然后是不是都可以来处理这个请求?能听懂吧?好,那request method这个东西又是个什么呢?这是个枚举啊。好,大家也可以直接看上面的注释,我们当前咱们的这个枚举类型里面,它都提供了哪些请求方式get。
02:06
Post head options put pat delete,还有trees。对吧?这个可能跟大家想的不太一样,咱们的请求方式怎么这么多呢?对不对?但是大家注意啊,其实咱们的请求方式确实有很多,Get post,这是咱们目前学习过的,然后像咱们后边咱们马上就要来学习的这两个请求方式,一个叫put,一个叫做delete,这是在我们的rest里面我们需要去讲的啊好,然后那我们现在没有学习过其他的,那咱们就直接来测试咱们的get跟咱们的post呗,对不对?大家注意,那怎么来访问?你看啊,咱们把这个枚举类型给它打开之后,对吧?然后咱们是不是直接来访问咱们的枚举项就可以,对不对,Request method.get它就是get.post它就是post。OK吧,那行,那下面大家看好,你看啊,我们在这咱们先设置一个什么叫做request method,然后点get request method,然后点get,那说明我们当前咱们的这个控制器方法所匹配的请求是不是只能是什么方式的请求,只能是get方式的请求。
03:16
对吧,那大家看,那我们现在所发送的这两个请求的话,然后它是什么请求啊。啊,咱们当前所发送的这两个请求,它的请求方式是什么。超链接吗?超链接是不是发送的?应该是get请求。大家说是不是啊,好在这大家注意啊,跟大家说一点,就是我们目前咱们所学习的请求方式只有两种,Get跟post,然后我们当前要发送get请求的话,你什么情况下发送的是get请求?这个东西大家不需要去记啊,为什么?你只需要记得什么时候发送的是post就行,因为其他发送的全是get。什么时候发送的是post表单提交,把method设置为post?
04:00
能听懂吗?或者说咱们的阿贾克斯里面,然后你把请求方式设置为post,剩下全是get。比如说咱们的超链接来发送请求,比如说你的地址栏里面直接输入地址来发送请求,对不对,像这些的话,大家注意都是get。OK吧,然后但是咱们的post的话只有一种,就是把付额表单的提交方式设置为post,这个时候咱们的请求方式才是post啊,好,所以说大家看啊,你看我在这呢,然后咱们可以先测试一下吗?对不对,你测试完之后,大家就会发现我们当前的这些请求能被正常处理吗?可以啊,为啥?因为我们不单请求地址能匹配,咱们的请求方式也能匹配,那所以说当前的这个控制器方法就是专门来处理请求的。OK吧,行,然后我们在这儿,咱们再来一个刷新,然后大家看你看我点击没问题,然后咱们点这个是不是也没有问题。能看懂不好,但是如果我现在我把它改成是post,大家注意它就不一它就不行了,因为我们当前咱们要求我们的这个控制器方法所处理的请求必须得是什么方式请求必须得是我们当前的post请求方式,但是我们当前的这两种方式,大家说你发送的请求是什么,是不是以get方式发送的,对吧,或者说我们在这咱们专门来创建一个phone表单吧,行吧,然后在这咱们的路径是同样的TH冒号。
05:29
然后在这咱们来写一个A。然后来写一个it大括号对吧,然后来一个斜线,咱们比如说就访问这个哈,啊,然后间括号加上,然后这里面大家注意,我直接写个input,然后按钮叫做submit,这个value,咱们叫做测试,哎,然后it request mapping注解的什么属性叫做method属性,行。大家看啊好,大家说现在它是什么请求,是不是get请求啊,因为我们不设置表单提交的时候,你不设置提交方式,那method的值默认就是post,对不对?好,现在我们再来一个重新部署,大家可看好了啊,我现在的控制器方法是要求咱们的请求方式必须为post的,而我当前我的这三种,大家注意咱们所发送的请求的请求方式都是什么,都是get,那这个时候它会出现什么问题,大家看啊,来点击之后直接报错405。
06:29
直接报错,直接报错405啊,大家注意。那405是什么?他说我们当前的请求方式,Get,然后not supported不被支持。这个405呢,大家看好以后,咱们可能也会遇到,如果说大家遇到了,你要看看错误的描述,如果你遇到了之后,大家注意它一定是什么问题,我们浏览器所发送的请求的请求方式跟咱们的控制器,然后他所要求的控制器方法所要求的,或者说请求映射所要求的请求方式不匹配。
07:04
能听懂吧,好,这个大家看好啊好,那我们下面呢,比如说我在这我把它给设置,为什么咱们给它设置为post,那这个时候还会出现问题吗?大家注意这三个都不行啊,现在你看吗?这三个大家注意它都不行,知道不为什么,因为我们现在这三个都是get,那我现在呢,我把它重新部署,然后我们把phone phone表单提交,然后把它的这个提交方式改为post,这个时候它就可以和我们的请求映射的method进行匹配了啊好,咱们再来一个刷新,大家看这个时候好使不好使,好使啊。好,然后呢,我们现在呢,咱们在这来写咱们的笔记,第三个叫做it request mapping request mapping注解的什么属性,叫做method的属性,好它的作用是用来干什么的,大家注意是通过咱们请求的请求方式,请求方式对吧,然后来匹配请求,匹配请求。
08:05
OK,好,然后这个如咱们的这个method的属性,Method的属性,然后它是什么类型,大家说它是不是应该也是数组类型,但是是什么数组看好啊,叫做request method类型的数组。能看懂吗?什么意思,然后及大家注意,我先把这个错先复制出来啊,然后呢,及当前浏览器所发送的请求,所发送的请求的请求方式,哎,所发送的请求的请求方式,然后来匹配咱们的method啊,Method的属性中的任何一种啊,任何一个值,或者说任何一种请求方式,任何一种一种请求方式,对吧?好。哎,那则当前请求就会被注解所标识的方法进行处理啊,行,这个大家注意好,那我们在这咱们是不是还看到了一种特殊情况,大家说啥时候才会报这个错呀,大家说若谁若咱们的浏览器所发送啊,然后所发送的请求。
09:16
的请求路径,然后和it request mapping request mapping注解的什么属性,大家注意value属性,然后匹配,然后但是什么不匹配,大家注意请求方式,然后不匹配,然后此时啊,然后此时啊,这个页面报错啊,页面报错冒号,然后叫做405,哎行,大家注意这个啊。页面报错405 request method get,或者说咱们在这写一个叉叉叉对吧,然后某一种请求方式它不被支持,行这个大家注意啊好。那其实呢,咱们除了看咱们的页面,其实我们也可以看谁呀,咱们也可以看咱们当前的这个控制台,比如说呀,然后大家看啊,你看咱们现在把这个东西给它清空一下,我们现在咱们再来一个刷新页面,大家注意,这个时候大家说还行不行啊。
10:14
啊,我问大家,大家说我直接在这刷新页面还行不行,我们刚才之所以这个请求能被我们的控制器方法来处理,大家说是为什么?为什么?因为我们是不是用表单提交把method设置为POS的方式发送的请求,对不对,所以说你看我现在我直接就跳过来了,但是我现在直接刷新页面,大家说的好使吗。来,我现在直接刷新来,直接咱们点击继续啊,这个是浏览器的功能啊,那这样吧,我直接这样啊,咱们把这个路径复制过来,然后放在我们当前的地址栏中,咱们一个回车,大家看这个时候就变成405了。知道啥意思不?因为咱们的地址栏直接访问的话,它就变成get请求了,知道吧,所以大家以后一定要知道什么时候发送的post,目前咱们所学习过的啊,表单提交,把method设置为post才是post请求,知道吧,好啊,那行,那下面呢,我们在这咱们再来看大家看啊,你看这就是我们的这个控制,控制台输出的一些信息啊,然后我们当前咱们发送的是一个POS的请求,请求路径是它,然后请求参数没有。
11:26
能看懂不好,然后我们现在咱们是不是通过我们当前的这个类叫request mapping handler mapping。通过我们当前咱们的这一个类,然后去映射到了我们当前咱们的这一个控制层里面的这个方法。能看懂不行,然后下面是我们当前咱们响应的一个状态码,叫做200,大家注意,咱们也可以从控制台里面去看啊好,然后下面呢,我们再来看咱们在这,大家看看这个错误的情况啊,你看咱们在这呢,这个错误说的是什么?他说我们当前发送的请求是我们的get。
12:02
Get类型的,然后呢,这是咱们的请求路径,没有参数对吧?好,然后我们当前通过我们的这一个什么呢?通过我们当前咱们的一个dispatch of来处理这个请求,然后结果呢,他怎么地了,你看他给我们报的错,最终咱们得到的一个结果是不是叫做request method get not supported的。能看懂吧,好,这个大家注意啊,好,然后这是我们最终咱们的服务器给我们浏览器所响应回去的这个信息,然后complete的,然后什么405OK吧这样的啊,行,所以说我们可以从我们的页面中去看,咱们其实也可以从我们的浏览这个控制台里面去看,每一次咱们发送请求啊,在咱们的控制台里面都有它的一个处理过程,OK吧,以及处理的结果啊。行。OK,那下面呢,咱们大家想到,如果我现在我既想让我当前的这一个请求映射来匹配get请求,又想让他匹配咱们的post请求怎么办?
13:01
大家想一下怎么办,咱们说的这个属性它是什么类型啊,数组类型,所以说我们可以在这直接加上一个大括号,然后后边咱们再写个谁叫做request method.get就可以了。能看懂吧,那这个时候就跟咱们上面写的是一样了,当前浏览器所发送请求的请求方式,咱们匹配master的属性中的任何一种请求方式,然后当前的这个请求就会被这个控制器方法来处理,OK吧,好,大家看好我现在我再来一个重新部署。好,然后我们再来看咱们的浏览器,大家注意,咱们从这开始访问,你看啊,我现在我来点击第一个没问题,点击第二个没问题,咱们通过post来提交,点击大家看是不是也问题,为啥?因为咱们现在是不是来设置的两种请求方式,咱们当前的请求只要来匹配其中的任何一种,是不是这个控制器方法就会来处理当前的请求,能听懂吧?好,那这是我们当前咱们的这个啊,Request mapping注解的method的属性,然后通过什么来匹配请求,通过咱们请求的请求方式来匹配啊好。
我来说两句