00:00
好,然后呢,我们去准备一下哈,有哪些个资源是不需要做登录检查的。其实是两个部分啊。一个是这个我们特定的。请求地址。哎,比如说呢,哪些呢,你像这个我们的首页啦,啊,你像这个。呃,你像像像像这个去登录的页面啦,是吧,哎,去注册的页面啦,等等这些个地址啊,另外一个呢,是我们这个静态的资源。哎,是有这两个大的部分。那么特定请求地址和静态资源哈,就这些东西,呃,我们为了方便后边进行判断呢,我们去把它们放到我们的这个叫。呃,放到这个常量里边吧。比如说这个。Member。悠久啊,对。
01:00
常量,这个所有的常量都在这个里边。但是这都是字符串的吧,我们另外新建一个吧,放到这里边儿有点儿,这个太拥挤了。这个呢叫做我们的一个access。嗯。放情咋说?Scope。这个不对啊。范围,我说放行吧。Let it go。嗯。Pass是吧啊。Resources。呃,为了方便去操作哈,咱们把它设置成一个放到一个set集合里边啊。嗯,把它呢,设置成一个常量,Public static final,哎,来一个set类型。
02:04
里边呢,来一个字符串啊。这个叫做。Pass。Resource。然后尿一个哈希。哎,这样这里边放置呢,不会重复。然后呢,我们去给他初始化一下,因为这是一个静态的资源。你在这里边儿呢,你想去操作它。这边这个时候他会报错是吧?诶。呃,这叫我们这是非静态代码块是吧,这是静态代码块啊。对,那么我们这个直接要用的话呢,它这个还初始化不了,我们这得加上一个静态的。哎,他他们这个时候初始化的这个时候都一样,都是类加载的时候。比如说呢,这有一个首先加进来一个斜杠啊,这是我们这个首页。
03:05
然后呢,去登录的页面。登录的页面。啊to,这是去注册的页面啊,这几个我们都要算作这个放行里面的。嗯。哎,去登录的页面。然后呢,执行登录,执行注册,发送验证码。看一下啊,就是在这个里边。这是退出登录。Log。嗯,退出登录。嗯,下边这个是执行登录。哎,然后下边这个呢,是。
04:00
呃,执行注册。呃,还有是这个。这个叫。呃,发送这个,发送这个这个这个这个这个这个验证码哈。呃,初步是我们看这几个啊,咱们就不需要做登录检查了,完了呢,还有一个。Public static。Final。啊,这个静态句。这个叫做static res。呃,这个里边呢,我们也是在一个静态代码块里边,把数据呢给它放进来。
05:04
哎,这个放啥呢,我们静态资源是在就这些个目录对吧。这些个目录呢,光有这个目录还不行。光有这个目录还不行,就是它目录里边还有好多东西。所以说将来这个判断的时候呢,得呃,稍微费一点这个周折啊,但是这个咱们还是先得把这个目录本身呢,得放进去啊。呃。然后把这个把这个替换一下。这是这是我们静态资源所在的目录啊。静态资源所得目录,那那我们。拿到一个地址以后呢,拿到这个地址怎么去判断这些个东西,怎么去判断这些东西啊,这是咱们先就是等于说我们先是准备好了这些个资源,然后这些个资源呢,我们还得想办法啊,看看这个怎么能检测到啊,他们属于这样的这个静态的资源。
06:25
这个这个我们这样哈。这个咱们就不这么去划分了啊,这个是准备。好要就是可以放行的这个资源。呃,下一个呢,是这个。嗯。就是这个你你你你你如果是这个属于这些吧,其实还好啊,就是说你判断一下。
07:02
呃,就是说你调这个set集合的有一个方法呢,叫content。这个大家有印象吧,你传一个东西进来调这个方法,去判断这个东西在不在我这个集合里边,这样一调方法就行了,这个没有啥。呃,主要就是主要就是这部分你这个静态资源,我们只是能够说,哎,把这个目录拿到它里边,再深入一层的话,这里边儿东西太多了。哎,我们怎么去判断。啊,说这个静态资源,我们得咱们写个工具方法啊,来进行一下这个判断。嗯,在这个类里边,我们准备了这样两个赛的集合。哎,那么这时候就是说下一个呢,是我们这个,呃,判断。当前请求是否为?嗯。静态资源的这个请求。
08:05
啊,那么这里边儿呢,得得给大家介绍一个东西,就是说这个我们request的对象啊。呃,这个这个。HTTP哈,看一下server request。他有个方法。叫get pass。有这个东西呢,就能拿到我们当前的请求的地址。拿到请求的地址以后呢,它长的是大概是这样啊。就假设呢,他呃。是访问这个比如说CSS。下边是AABB。哎,然后CCCc.CX啊啊,我们会拿到的是这样一个地址。拿到这样一个地址以后呢,我们就看他的第一级的这个目录,看这个东西。哎,是不是我们这里边儿的某一个。哎,要是的话呢,就是静态机,要不是就不是。
09:02
啊,那你比如说你访问的是一个呃,Member什么什么。啊,那你这个拿到你第一集呢,就不在我们这一组,不在我们刚才这个赛集合里边。就它就不属于,所以说我们就拿这个get solid pass以后拿这个地址,想办法把这个第一集拿到,拿到第一集,拿到第一集这个路径以后呢,然后调那个set set集合的content方法就能判断了。所以下边呢,这是一个字符串解析的一个。一个任务啊,大家开动脑筋想一想,我们拿到一个地址以后,咱们怎么把它的第一集给拿到呢?呃。啊,我大概听到有大概听到好像是两个方案哈。一个是按斜杠呢,作为一个字符呢去拆分。哎,这个拆分的方法大家还记记得吗?Split啊,去拆分一下。
10:02
哎,按斜杠去拆分一下啊,这是一个办法,另外一个办法呢,有同学说这个。以斜杠,这是索引为零的一个字符,从索引为一的这个字符呢开始找,一直找到下一个斜杠前面。这也是个办法对吧?哎,我觉得这两个办法应该大致上都行得通,对吧。呃,就是说考虑这个万一会不会有一种特殊情况啊。他就一起。啊,那不不过也没关系,我们可以判断一下是吧,看到后边要是没有斜杠的话,那么我们就从斜杠开始呢,一直取到后边就是这个,或者说把第一个斜杠去掉就行了,对吧。这个办法也可以啊,这个办法也可以。呃。我呢在这儿就倾向于采用这个办法啊,大家如果说你想用第二种办法的话呢,你可以自己可以试试啊。哎,这这就是一个解析字符串的一个一个一个操作。所以说呢,咱们就呃,把这个工具方法呢,也放到这个类的里边。
11:02
哎,然后呢,让他把这个东西呢,给我们传过来。我们给它返回一个倍值啊,这个叫做。呃,价值。Current。So path。呃,这个叫。Static resources。先return一个放线。不是说这个。那天咱们看了嘛,不要嫌名字长啊,我们要把这个事儿要说清楚。我们让他把pass给我们传进来。来,让他把pass进来。呃。呃,把这个传进来的话,首先呢,是。
12:00
嗯。这个东西要不要判断一下哈。So pass。他如果等於闹。或者呢?或者这个东西的点Les是等于零。那咱们就我就不陪你玩了。四周尿一个。Runtime exception。哎,这个我们好像有这么一个消息constant点。这个叫做。Invalid invalidate啊。就是排除一下这个字符串不可用的这个情况。嗯。然后呢,然后我们去他可用的话呢,我们就不他。切分一下。按照这个斜杠呢去切分一下,切分得到的是一个数组。
13:00
这个数组的话呢。当然我们这个切字符串是这样的哈。假如说像这样的呢,按照逗号去切,切完了以后这个数组里边它当然应该是这样的哈。就是就是说,呃,这个就应该是第一个元素,就从数组里边下标零去取就完了。但是呢,我们这个东西吧,有点特殊它的。是长这样的,长这样的东西切完了以后呢,它这个数组是这样的。它的它它把它它每一个符号呢,左右两边它都有。第一个斜杠左边没有,它就保留了一个空组串放在这儿。然后呢,有效的值一依次接着往后排。所以说呢,我们现在不能取下标零。啊,下标零是个空组串,没有意义,我们得取下标一。
14:02
啊,我们得取下标一。哎。那么我们想想啊。Li。下边的一。当然了,他如果数组下标越界了。他如果数组下标越界了的话啊,他这边呢,应该是传过来的是一个斜杠。他可能应该就是这么个东西,或者说反正是。空头串应该不至于,这已经排除了啊,反正他如果下速度下标越界的话,那这个时候呢,就让他正常,就让他抛一场,我们看看是什么情况下他会速度下标越界啊。嗯,正常的话应该是不会有这个越界的问题。这时候我们拿到的呢,就是第一集first。Level。哎,这个past。然后呢,我们就看一下呗,看这个东西在不在我们这个集合里边。Contents。
15:03
哎,把这个first level pass传进去啊,他要在的话就是,不在的话就不是。就返回这个结果就好了啊。所以说这我们来加下注释。哎,说这个呢,是。呃,用于。判断某个。Pass的值是否?对应一个静态资源。呃,返回的呢,是两个。两种情况啊,如果是处的话,那就是静态街。不是静态街。哎,那么然后这里边儿,我们是先去这个排除字符串无效的情况。
16:00
第二个呢,根据斜杠。来去拆分我们这个so pass。拆分pass这个字符串啊。呃,第三个呢。考虑到第一个斜杠。左边哎,经过拆分后得到一个空字符串。哎,这个是这个数组的。呃,第一个。元素。啊,所以需要使用下标一。去取。第二个啊,元素,这是我们要的。下边呢是判断。是否在这个集合中。
17:00
嗯,咱们下边写个嫩方法,咱们来测试一下啊。这是个solid pass。哎,然后这边呢,AABBBCC。这个叫做一个榨。哎,这个,然后传返回一个处还是false。啊,这是false啊,这边没有,然后呢,这边如果我是CSS。啊,这就是处啊,就反正常规的是不会出问题的,然后如果说要就一个呢,其实就一个应该也没问题。
18:05
哎,然后呢,如果说我就写到呢。其实就斜杠他也不会到这儿。啊,这就跑一场了是吧?啊,这个时候就是数组下标就越界了啊,但是我们也不会说把斜杠给传过来。嗯。我们这个焖方法呢,咱们就先注释掉了哈,因为在这儿,呃,后边呢,你在spring布启动的时候呢,它会检测到多一个闷方法啊,它这个时候还得让你选这个就麻烦了啊,咱们在这简单测试一下,确认一下就可以了。
我来说两句