00:00
好,那下面呢,我们再来看it request mapping里面的heads这个属性啊,大家注意这个属性啊,它跟咱们的paras属性的用法是一模一样的,然后这里面呢,咱们也是可以用四种表达式,比如说header,就是我们的请求头中必须要包含咱们的header这个请求头信息,因为大家都知道,不管是请求头还是响应头,大家都学过这个请求报文和响应报文对吧?HTTP,然后请求头和响应头都是键值对的方式,所以说这个header指的就是咱们请求头的键,然后当大家去设置一个键的时候,就表示当前的请求报文的请求头里面必须要包含这个键,这个是一定不能包含某个键,这个是咱们必须得有这个键,并且它的值呀,然后是某一个值,然后这个的话就是我们可以不携带,如果携带的话,它的值一定不能是这个value,所以这个大家注意啊,大家可以自己去演示一下,因为这个咱们其实用的并不多啊,然后而且它的用法呢。
01:00
跟咱们上面的这个pairs的用法是一模一样的啊,然后有一个需要注意的地方就是什么呀,就是说我们当前咱们的request mapping注解,当前请求如果满足request mapping注解的其他属性,比如说value也满足,Method也满足,但是就是不满足谁呀,Head这个时候它页面报的是404。这个大家一定要注意,报的是404,不像是咱们之前method的不匹配报的是405 pers不不匹配报的是400,对不对,然后我们当前如果你的请求头信息不匹配,那大家想想,请求头不就是咱们的表示,咱们当前的这个整个请求报文里面的请求头吗?如果说你的请求头不匹配,那他跟我们当前咱们的整个请求就不匹配,所以说在这它直接就是404,就是资源未找到啊来咱们可以测试一下,比如说啊。来我们在这,咱们把这个给它注释掉啊,然后下面呢,咱们再来写一个,然后叫做head啊heads,然后大家注意这东西啊,因为它跟咱们的paras用法一样,所以说这也是一个字符串联型的数组,看到了没?好,然后那我们再接着往下看,然后咱们怎么写啊,比如说啊,随便来写一下,咱们在这呢,来写一个叫做R1F1212。
02:21
对吧,叫做refer双引号啊,不是单引号,然后叫做referee,然后这个东西是干什么的?大家注意,这个东西来表示的是我们当前咱们的一个来源叫做referee,比如说我现在呢,然后我来访问咱们当前的这个首页,对吧?然后咱们把F12给打开,然后来找到咱们的network,然后我们现在来一个刷新,大家看这就是我们当前发送的请求,找到headers,然后这是它的请求头,大家看这里面有这个referee吗?并没有对吧,为什么没有呢?大家注意,那是因为我们当前咱们第一个访问的页面就是它,所以说它有没有来源页面是没有来源页面,来源就是说我从A,然后跳转到B,然后那我们当前对于B来说,这个A就是来源,来源是一个路径,比如说下边大家看啊,我们现在呢,咱们随便来点击一个啊。
03:19
哎,我没有重新部署是吧,好,这个大家注意,我没有重新部署啊。然后咱们在这重新部署一下。好,然后下面呢,我们再来看咱们的这个效果啊,然后我们来刷新,然后下面咱们随便来点击一个,然后我们再来看当前它的这个请求头信息,大家注意你看啊,这里面就有这个referee了。能看懂吧,然后这不就是我们从咱们当前跳到这儿,是从哪跳过来的,不就是从我们当前咱们的首页跳过来的吗?对不对,所以说它的来源就是首页。好,那我们现在咱们来做的,大家注意,就是为什么我们现在咱们这个请求,我在这设置了一个head,然后我们当前咱们的这个请求啊,然后它也是可以来执行的,对不对,对吧,它也是可以被我们的控制器方法来处理的,为什么?因为就是说它是有这个refer这个请求头信息的。
04:14
你看我们在这设置的不就是当前这个请求,浏览器发送的请求必须得携带一个请求头叫啥叫referee,你看我们这里面有没有有的嘛,所以说当前这个请求就可以被咱们的控制器方法来进行处理。能听懂吧,这个啊,好,那有同老师,你在这写的是小写,但是我们在浏览器中看到的是大写,大家记好,请求头和咱们的响应头都是不区分大小写的。当然是这个键不区分大小写,只是区分大小写的,能听懂吧,一定要看好啊,这个东西大家注意啊,然后这个请求头和响应头里面的键是不区分大小写的,所以说你看我们在这写的这个小写的其实也没问题啊,好,那如果我要是这样的,比如说我现在我复制一下,然后我再打开一个新的标签页,然后我们现在咱们直接来进行访问,大家注意这个时候大家说它有来源页面吗?
05:10
啊,来一个回车,大家看直接就是404,为啥是404,现在它有来源吗?没有啊,我现在我跳转到这儿,我是怎么跳过来的,我是直接从我们当前咱们的浏览器中,从他的地址栏里面直接输入这个地址来访问的,所以说它没有来源,所以在这咱们的页面中直接报错就是404。OK吧,行,这个大家注意啊,好,咱们把这个上面,咱们把这个注解,把这个注释呢,给它写一下,第五个内容叫做it request mapping,这个注解的什么属性值,这个注解的叫做heads,叫做headers属性,对吧,然后它的作用大家注意是用来干嘛的,然后是通过咱们当前请求,哎,是通过当前请求的。这个什么叫做请求头信息,请求头to o头对吧,然后信息来匹配请求,然后其浏览器所发送的请求的请求头信息,哎,请求头信息满足咱们的headers属性的设置,Head这个属性的设置,然后呢,咱们的。
06:21
啊及浏览器所发送的请求的请求头信息必须满足head属性的设置,对吧?属性的设置,然后只要满足当前这个属性的设置,那我们就可以来直接处理这个请求了,能看懂吧,行啊,然后它的用法跟我们上面的pers的用法一模一样,也是有是有四种,有四种表达式,然后分别是咱们的这个header叹号header header等于value header不等于value对不对,然后它的作用也是一样的啊好,那我们下面咱们把这两行咱们也复制过来,大家注意这两行是什么意思,就是说当我们不满足什么的时候,如果说它的Y流属性匹配,但是它的请求什么,请求头信息,请求头信息不匹配的时候,然后这个时候咱们的此时咱们的页面报什么,大家注意啊,此时页面报错,直接404资源未找到。
07:16
直接404资源未找到啊,OK,像这是咱们的一些特殊情况对吧,咱们把这个如果说咱们当前这个请求跟咱们的配置,它跟request mapping里面的各个属性的配置不匹配的时候,报什么错,然后也给大家这个呃,演示了一下,当然呢,我也希望大家不要光测试正确的情况,大家也要把咱们错误的情况呢,也给他演示一下,因为我演示的是我知道大家演示出来的才是你自己知道,OK吧,行。好,那下面呢,我们这个request mapping里面,咱们常用的这几个属性呢,对吧,当然常用的只有value和method,剩下的这两个就是给大家演示一下,大家知道什么意思就行啊。好,OK,那属性咱们就先讲这四个,然后下面咱们还要继续来回到咱们的Y流属性上,因为咱们的Y流属性是通过路径来匹配的,而我们当前request mapping里面的这个路径啊,大家注意咱们是有很多种,咱们是有很多种写法的,就比如说在这按风格的路径,我们也可以在咱们的路径中来设置一个占位符,好,那具体该如何使用,下面咱们来看一下啊。
我来说两句