00:00
好,那我们现在呢,咱们的这个method的属性咱们也说完了,大家注意啊,其实我们以后用的比较多的啊,就是要么value,要么method,就这两个,就比如说我们之后咱们的这个叫什么rest of,对吧?Rest of就是通过value和method,然后来匹配请求的,换句话来说就是通过咱们的请求路径和请求方式同时来匹配请求,但是咱们的rest of里面啊,它不会像这样去写,然后咱们的rest of中一般都是什么呀,咱们当前咱们的这个控制器方法,要么只能处理post请求,要么只能处理get请求,要么只能处理delete的请求或boot请求,是这样的啊好,那下面大家再来看,那所以说呢,咱们就在咱们的it request mapping的基础上,然后就有了一些派生注解。什么叫做派生注解呢?大家注意,因为我们当前的请求方式呀,它也就这几种,咱们常用的也就get post delete put就这几种,对不对,那所以说它不像咱们的请求路径,它是可变的,每一次咱们从浏览器发送请求,这个路径是不是都不一样啊,对不对?好,但是咱们的请求方式就这几种固定的值呀,所以说就有了一些派生注解,什么叫派生注解呢?大家注意来看好啊,是在咱们的it request mapping的基础上,对吧?然后来结合咱们的请求方式对吧?啊,结合请求方式的一些派生注解,派生派生注解大家看啊,都有什么叫做get map map,叫做get mapping。
01:41
扶持逗号it。然后叫什么叫post mapping叫post,然后再往下,然后。叫做it,叫什么?叫做de delete mapping,然后再往下it叫做put mapping,行,这个大家都知道什么意思吧,咱们从名字上就能够看出来嘛,对不对,这就是在request mapping的基础上,你像这个只能匹配get请求,你像这个的话,在it request mapping的基础上只能匹配post请求,这个是只能匹配delete的请求,这个是只能匹配put请求,来大家看一下啊,It get mapping。
02:22
能看懂吧,然后呢,还有谁呀,还有post mapping对不对,然后还有谁,还有delete mapping,然后还有咱们的post mapping能看懂吧,那这个时候大家说我们还需要在这里面来设置method的吗?你看这里面有method的属性吗?没有,但是它value属性肯定是有的,对,为什么?因为咱们当前的method已经在我们当前的注解里面已经声明过了,我们当前的put mapping它只能来匹配什么类型的请求啊,Put方式的请求能听懂吧,这个大家注意,这个东西咱们现在呢,咱们先不用等到以后我们讲到。咱们的rest的时候,咱们再具体的去给大家演示啊,行,但是大家要知道啊,然后这些注解都是干嘛的,是在it request mapping的基础上,结合咱们的请求方式所生成的一些派生注解。
03:15
OK吧,行,那下面呢,咱们再来看咱们的第三个第三个属性呗,咱们的第三个属性啊,然后大家注意叫做it request mapping注解的pers属性,然后这个属性大家就是简单的去了解一下就行,因为咱们基本上呢,咱们也不用知道吧,好,然后下面呢,我们这样,咱们在这直接给大家来写这个笔记,然后这是第四个内容,对吧?然后是咱们it request mapping注解的什么paras,叫pers属性,然后它的作用是用来干什么的,大家注意是通过咱们当前请求的请求参数,请求参数,然后来匹配请求。它怎么去用呢?大家看好啊,什么意思,然后集集对吧,然后咱们浏览器发送的请求的请求参数,请求参数,然后必须,然后必须满足谁必须满足,哎满足,然后咱们的pers属性的设置啊设置。
04:25
好,那咱们的para属性该怎么去用,大家注意啊,然后它可以有四种表达式的用法啊,然后或者说咱们可以来使用四种表达式,哪四种表达式呢?大家看啊,咱们这样去写,首先第一个叫做per,来咱们给它加上一个双引号。加上一个双引号啊。啊,然后这是有有一种是这个,然后还有一种是什么叫做唉叹号per,然后第三第三个叫做per等于value,还有一个叫做per不等于value,哎,Per不等于value,大家注意咱们可以用这四种表达式,那这四种表达式分别表示啥看好啊这个来表示咱们当前,表示当前请求的请求参数中,然后必须携带per参数。
05:27
啥意思?很简单,比如说你在这写的叫username,那我们当前咱们所匹配的请求中啊,它必须得携带username这个请求参数,我不管它的值是什么,你必须得携带。表示当前所匹配所匹配所匹配。啊,所匹配请求的请求参数中必须写在它好,然后下面呢,我们再来看,比如说这个叹号per,表示当前所匹配请求的请求参数中,啊,一定不能携带,叫做一定不能啊,然后携带per参数,好,再往下,大家注意这个是什么意思,表示当前所匹配请求的请求参数中必须携带per参数,且值,然后必须为value。
06:16
OK吧,其实很好理解啊,然后下面咱们再来看这个,这个是什么意思啊,当前所匹配请求的请求参数中,然后可以不写带para para。能看懂吧,大家注意啊,它可以不携带,然后但是若携带若携带啊,然后直一定不能,一定不能是谁呀value。这个大家注意。行。那我们就来测试一下呗,比如说在这大家注意咱们加上一个逗号,下面咱们来写,然后来一个大括号,大家注意这东西是什么类型,咱们接着往下看啊看,也是一个字符串数组。
07:03
能看懂吧,好,然后但是这个它跟咱们上面这两个就不太一样了,为什么?因为咱们当前你的value和method的是我们当前所发送请求的请求路径,只要匹配其中一个就行,Method也是只要匹配其中一个就行,但是pers大家注意,你在这儿所设置的数组中的这些条件必须同时满足。必须同时满足啊,比如说我在这来写一个叫做username。咱们在这来写个username,大家注意这是什么意思,当前的请求必须携带username这个请求参数,比如说啊,我现在我来一个执行,大家看你看咱们其他的请求,你看它行不行啊,现在看行不行。好,然后我们把它给清空掉,比如说咱们随便来找一个啊,现在我来一个刷新,大家看咱们就拿着这个吧,大家说这个是我们的表单提交,咱们的路径匹配,我们的请求方式也匹配,但是现在你会发现它的请求参数不匹配吗?不匹配为啥?因为他要求我们的request mapping,要求请求参数必须有username,但是它有username没有没有,所以说我现在我来点击之后,大家看直接就是400。
08:17
能看懂吧?400是什么呢?叫做parameter请求,这这个叫做请求参数conditions条件的意思,他说我们当前咱们的参数条件,Username not me for extra,然后request parameters什么意思?他说我们当前咱们的这个参数的条件跟咱们真实的一个请求参数。匹配不匹配,不匹配。能看懂吧,好,所以咱们把这个呢,我也给它复制过来,然后先放在咱们的来,先放在我们当前咱们的这一个笔记里面,咱们一会再去描述啊,好,所以说大家看在这他就直接报错了,对吧?那所以我们要想去改它怎么去改啊,比如说在这我们再写一个超链接,然后这个超链接咱们就让它,咱们还叫做哈,当然ABC也行,然后我们是在这来测试它的什么呀,叫做pas,叫pers属性,那他现在要求我们去携带谁携带username,那咱们就来携带一个呗,怎么携带呀。
09:21
大家知道不知道,在咱们的c lef里面,如果咱们用这种方式来写路径,我们怎么来设置咱们的参数呢?怎么来携带咱们的参数呢?大家注意有两种方式,比如说你在这你就把问号给写上,在这咱们来写个username,比如说等于ain对不对,好,然后我们再来一个重新部署,大家注意就跟我们之前咱们写的是一样的,这个大家应该都知道吧,咱们的get的请求是不是会把咱们的get的请求。然后是不是在提交表单的时候,会把咱们的请求参数拼接在请求地址后,那咱们能他能帮助我们自动去拼,我们是不是也可以自己去拼呢?是不是?好,下边大家看啊,我们现在来一个刷新,看鼠标放上去大家看user name等于order me没有问题吧,咱们点击之后,你看这是不是就可以了呀。
10:10
是不是啊,哎,大家注意,这是咱们的第一种在咱们的c lef的这个路径里面来设置请求参数的方式,然后呢,大家注意我们也可以怎么写,我直接在下面给大家写了啊,第二种方式啊,在这后边加上一个小括号,然后user name等于单引号what me,记好在这里面要加单引号啊,然后唐老师这俩有什么区别,没啥区别,最终效果一样,只不过就是你在这写的问号它会报错。没有啥,没有什么区别啊,大家注意这个效果咱们刚才也都看过了,可以实现啊,然后下面大家再来看来。然后我们在这咱们稍等啊,等到他重新部署完就行啊。好,然后我们现在咱们再来一个刷新,大家看啊,鼠标放上去,Username等于a me,看这个问号,Username等于a me没有任何问题,它俩是一模一样的,知道吧,只不过就是写法不一样,所以说你要不想看到这个错,那你就在这加上一个小括号来设置请求参数名,这是请求参数值。
11:12
OK吧,行那行,那这是咱们的第一种写法啊,下面大家再来看一下,你看咱们的第二种写法,然后逗号,然后在这咱们再写一个什么叫做叹号passsw。叹号,Password什么意思?一定不能携带password来重新部署,大家注意,点这个地方也可以重新部署啊,点这个地方。啊。OK,咱们重新部署完成之后,下面呢,我们在这咱们再来刷新,大家注意啊,然后我们现在点击大家说这有问题没有,没有问题,你本来就没有携带u password呗,对不对,但是如果我在后边去加上一个,咱们在这写个password,你一个回车,你会发现它直接报错,你哪怕没给他传值,但是大家注意它也携带了。
12:02
知道吧,你看他告诉我们什么,他说我们当前的条件是啥,Username和叹号password,但是结果你怎么的了,你传过来的有username,是不是还有password,咱们的叹号password是一定不能携带这个password能听懂吧,好OK,那下面呢,我们再往下看来大家注意啊,这个逗号逗号,然后咱们再写第三个,这个年龄必须得等于20。年龄必须等于20,大家看啊,我现在再来重新部署啊,咱们一会儿咱们测试的时候把这东西注释掉啊,咱们再去测试,其他的大家注意啊,好。然后因为这个东西我们用的很少啊,就就是说我们有的时候在匹配请求的时候,其实咱们用的最多的也就是这两个,会不会通过请求参数去匹配呢?一般情况下都不会啊好,下面我们在这来一个刷新啊,行,咱们就这样吧,然后大家看现在它要求什么,要求我们必须得有username,不能有password,而且年龄必须为20,所以说这个时候他这些都不行啊,大家看不可以,然后那我们怎么做。
13:10
大家注意,这个password一定不能有,那所以说我怎么办,我在这就可以直接加上一个H等于21个回车,大家看就可以了。所以说这个per等于value,就表示我们当前的请求参数中必须携带某个参数,且值必须为value OK吧,好,再往下逗号,然后双引号,咱们来写个叫做金得,然后不等于大家看好啊。那不等于什么,不等于难吧。啊,或者说不等于女能看懂不好,下面大家注意,我们在这咱们再来重新部署你看啊,然后金德不等于女,这个表示的是啥?表示的是咱们这个金的你可以传,你也可以不传,你不传的话无所谓,你要传它的值一定不能是女看好啊现在你看咱们在这有没有传金的,没有我一个刷新大家看好使不好使,那没有任何问题,为啥?因为我没有传呀,对不对,那你没有传的话,那不就相当于我的值肯定不是女吗,对不对?
14:11
大家想一下。是吧?再说了,你没有传,咱们之前在讲my be里面的多条件查询的时候,跟大家说过呀,对不对,你没有传这个请求参数,而我在服务器中我获取了这个请求参数,对不对?那你获取的它不就是难吗?所以它等于你吗?不等于你,那这个条件不就成立了吗?大家说是不是?对吧,所以说大家看好,我们在这给大家写的啊,你可以不携带,但是你要携带值一定不能是value,好,然后比如说我在这我再给它加上一个and,叫做G,叫做金等于谁,直接等于女一个回车,大家注意直接报错,看到没有,因为我们要求不能等于女,但是在这等于女了。哎,这个大家注意啊,这个是我们当前的per属性,再说一遍,它用的不多啊,好,然后呢,什么时候它会遇到这个错,就像是咱们上面这个错,大家说什么时候是不是应该是跟咱们上面那个是一样的,就是咱们的请求地址匹配成功了,对吧,请求方式也匹配成功了,但是per匹配不成功,但是其实大家注意,它其实跟请求方式没有多大的关系,咱们一定是在请求地址能匹配成功的情况下,大家注意啊,若浏览器所发送的请求啊,来这样啊。
15:28
好,然后大家看好,若浏览器所发送的请求的请求路径跟它的注解的Y流属性匹配,但是什么不匹配,但是请求参数,但是请求参数不匹配,然后这个时候它就会报错,此时页面报错。哎,此时页面报错400,然后parameter咱们的条件是啥,但是我们当前咱们的真实的请求参数跟它是不匹配的,OK吧,行啊好,这是per啊,然后大家了解一下就行啊。好,咱们把这个东西最好是注释掉,然后再去测试咱们的其他功能。
我来说两句