00:00
好,大家看看这种功能大家应该怎么来做了,那我们要简单分析一下是吧,那我们说我们要把我们这些业务资源都保护起来,将来从浏览器或者从客户端访问任何业务资源之前,都必须在前边验证。来到业务目标资源之前,必须必在前面拦截一下。所有的业务资源,这不管访问哪个业务资源,只要是你想保护起来的,只要来到什么发请求了,在到达目标资源之前先什么先拦截一下,拦截,然后在这里边来判断判断是不是登录,登录成功了,放心,不那么没登录成功跳转到登录页面就这。这是我们大家说到账账那这样了怎么验证,那肯定要写我们的代码验证,那写我们的类去验证去这个类就什么架,在我们的所有的这些目标资源之前,不管访问哪些目标资源,只要是要保护起来的话,都先执行这个类,然后执行完了之后,在这个执行的时候来判断这个用户是不是登录了,登录了放心,不登录知道吗?这个没登录知道吗?去跳转到登录页面去知道吗?
01:11
好,下面我们就来做这个事了,大家那这个类大家看我们说用什么类啊,能不能随便写一个类啊。是不是不能功能,那那什么样的企业,什么样的类能够在什么用户访问目标资源之前,先执行我们这些类,什么样的类才能拦截在所有的什么目标资源之前。对,我们现在学的只有两种类是吧,第一种是当以以前学基础外部的时候,基础的外部理论这种技术的时候,哪一个类啊对过滤器是吧,一开始写的过滤器是过滤器的话,当然这种类也能能够拦截在所有的这种什么目标资源之前。知道吗?啊,只要是符合拦截规则,过滤器也可以什么可以什么拦截的目标资源,之前所有的请求到达目标资源先监控过滤器,知道吗?先经过过滤器,然后我们可以把我们的代码写到过滤器里边来进行来进行验证,通过了放行不通过,然后呢,特长登录页面,这是我们的过滤器,但我这过滤器的话,大家写的时候它是基础记录,那就稍微麻烦一点了,是吧?那大家不知道大家还记得不记得这过滤器咋写知。
02:25
为实现。对,写个类要实现它的接口是吧?对它那个接口是一个什么叫非接口是吧?非接口在这个接口里边定义三个方法,你把这三个方法实现了就行了,其中有两个方法在用到可以实现,不用到可以空着它就行了,对哪一个,一个是初始化的init方法是吧,还有一个什么。对,还有一个叫什么,还有一个叫这个当这个过滤器是么?啊当当这过滤器这个对象销毁的时候,执行的一个方法叫destroy方法,是不是这样的,对这样这两个方法你要用到可以写,用不到可以说不写初始化方法可以做一些初始化工作,然后呢,Destroy这个方法可以在这个什么过滤器对象销毁的时候,然后呢,做一些收尾工作,知道释放一些资源啊等等这些知道吧,那这个iit初始化工作就是当这个过滤器是吗?这个对象创建的时候会执行这个方法是吧?可以做一些初始化工作是吧?当然这两方法我们用的比较少是吧?我们真正要把我们代码写在哪个方法里边。
03:31
它里边有一个叫什么do飞肉草那个方法是不是这样子,把我们代码写在这里边就行了,那么将来只要什么写完之后这个类呢,会这个什么,这个过滤器类要配置到什么yb.xml里边知道吗?然后呢,配置这个类,然后呢再配置它的蓝过滤的一些规则,只要什么外界发的请求符合它的过滤规则,都会执行这个度filter这个情,然后我们把这个验证代码就可以写到这里边知吧,好,这时我们说到这个过滤器这个类,所以这些大家要要会是吧,要要会写它就别忘了这些啊,虽然它是基础技术,我们以后也会用它是吧,也会用它,但是我们说会用它的话,但是我们说它用的时候稍微麻烦一点啊,对,再一个它的功能也不够强大,是它的麻烦是麻烦在什么地方,就是你得写类的实现接口,实现它三个方法,而且即使I it方法和这个destroy方法,你即使不用,你也得有个空实现,这样知吧,这是这样,这。
04:32
然后呢,写完这个类之后呢,还得把它配置到外部点XML当中,知道吧,然后一个非配置一个一个非点配置一个道,还得配置它的拦截的规则知道吧,好,这是我们说的这再一个它的什么这些这个稍微麻烦一点,这些我们也都可以接受,但是最主要一个呢,就是它的功能不够强大,什么它的功能不够强大,就是它只提供了三个方法,一个int,一个一个do filter do filter。啊,我们说N初始化的,你知道destroy销毁的知道吗?然后呢,这个什么do filter是我们真正拦截在什么请求到达目标资源之前来执行这个方法,执行这个方法知道吗?啊,这是我们这样,但是有的时候呢,我们通常是在做什么,在做这种这个拦截或者过滤的时候,我们通常会用到这种功能,什么功能呢?就是说。
05:24
我想什么在请求到达目标资源之前执行一段代码,然后呢,请求呢,到达目标资源之后就说我还想再执行另一段代码,或者说什么啊,还有我还想在什么在这个什么响,执行完目标资源之后,然后呢响应信息回到什么,回到这个浏览器之后,我还想再执行一些代码。那这个时候这几个时机它分的不太明显是不太明显,所以你要想在这些时机当中拦截到请求之后,执行执行你的代码,你得分,你得自己分三个什分三个这个这个时机来进行写自己的代码,知道吧,呃,所以它默认情况下只是什么当请求到达目标资源来执行你这个代码执行都非的就行了,你想什么目标资源执行完之后,然后执行再执行一段代码,你得自己来完成这个事儿了,或者说当什么响应信息回到什么浏览器之前,这个这浏览器之后再执行一些代码,你还得再找自己的时机,是吧,所以这个时候就稍微麻烦一点了,就运转非。
06:27
啊,所以大家我们真正到公司开发的时候,一般来讲什么这种分数的也有用,除只有那些简单的什么过滤的这种请求才会用它,你比如说就像我们说我就想在请求到达目标资源之之前执行一些代码,那这个时候我可以用这种非知道吧,但是如果人些复杂的一些过滤的请这个需求的话,他就不太适合了啊就就刚才我说的那三个时期,我都想执行一些代码,就它就不太适合了,你写起来就比较麻烦了,所以那时候呢,所以下边后边我们什么学外部层的什么这种MVC层这些什么框架的时候,每一种框架都提供一种叫什么对拦截器,什么拦截器来对来进行封装,这种拦截器是框架帮我们做了什么,对非做了封装了,所以他们的功能一一个是用起来稍微简单一点,再一个他们的功能更强大。
07:21
怎么强大,你想在这三个时机当中执行一些代码的话,他都提供相应的方法来执,来让你什么来让你,让你执行,你不用自己来找这个时机了,就这个意思是吧。好,当然我们是这样,那所有当然我们说这种什么CTRL层这些框架,我们都提供这些功能,都提供这拦截器,像大家我们以前用的TRU12,包括现在大家用的这种C都提供拦截器的功能,都提供拦截器知道吧?啊,所以实际开发过程当中,如果你要过滤这种请求,就过滤的这种需求,如果比较复杂的话,那这个时候一般来讲大家都用这种拦截器啊,都用拦截器啊这样啊,那我们这个地方呢,我们基于spring器的,那我们这个地方就用拦截器了。
08:08
啊,做登录验证我们也用拦截器,那用我们的这个什么,做我们这个登录验证是吧,做登录验证我们这个地方也用拦截器了,登录验证,那这个地方我们也用拦截器吧,当我们说当然你要想用这种是吧,过滤器也行,你要想用这种过滤器也行啊,Filter也行啊,那就是说它稍微麻烦一点而已,就它稍微麻烦,你得写这个你这种过滤器吧,我们写过滤器。啊,过滤器你要用它也行,用它的话我们说就稍微麻烦一点,再一个它的功能不够强大,知道吧,啊这样,当然我们这个如果只做登录验证用它完全可以,当然我们既然学了可门m Mac了,那所以我们就准备什么用那种拦截器,用这种拦截器拦截器这这我这那拦截器的话,同样的道理,那我们还是什么用它的话也是这样,它的用法也是首先写累是吧,首先写类,那首先写类的话,大家看s spring MC的拦截器在那写个什么样的类。
09:16
对,是不是也得实现它的接口啊,对,也得实它的接口,那它那个接口叫啥接口,对handlecept是吧,Handle intercept,一会儿我们写的时候,到时候再给他写是吧?然后在这个接口里边,是不是它定义了,也定义了三个方法啊对这三个方法是吧?一个是什么请求到达目标资源之前执行是不是这样的,还有一个什么,对之后执行,还有一个什么,对最后执行响应回到浏览器之后执行,知道吗?这三个方法你想在哪个时机当中执行你的代码,你就把你的代码写到里边就行了,知道吗?所以这是我们桌子上,那写完之后的呢,一个是提供,那么就吧提供知提供,然后呢,拦截器类,拦截器类,那这个类,我们说我们这个地方要实现这个接口,叫实现这个接口啊。
10:16
啊,实际上这个结构它那个叫什么叫handle是吧,Intercept是吧,就这个类是吧,当然在这个类里边三种方法是吧,三种方法到时候你是吧,我们这个地方来提供这三种方法就行,提供这三种方法你想在哪个时机当中执行你的代码,你就可以啊一个是请求到达目标资源直线执行对吧。啊,这个方法这个是吗?这个大摩这个这个地方你这个你也不用记是对叫handle是吧,Handle还有一个什么对post还有一个什么对after是么?叫什么after comp comp是吗?就是中处理完所有的是么?一所有的数据那个代码都执行完了,然后最后执行这个方法这样吧,所以大我们解放它就行,然后呢,大看那这样类我们就写完了,写完之后是不是还得把它配置一下,对配置一下,你让这个过滤器拦截什么样的请求,是不是你得什么配置一下,配置过配置这个什么拦截器叫配置拦截器,那配置拦截器到时候是吧,再配spring Mac的配置文件里边配置就行了,要拦截什么样的请求,不拦截什么样的请求,然后再配置你拦截器这个类名叫什么就可以了,明白吧。
11:32
所以这是我们说到这儿,那其实大家这个过滤器用法也是类似,过滤器大家也要会,虽然我们这个地方不用,大家也要会写过滤器,也要会写过滤,我这样给大家列一下,你大家如果要是记不住的话,你可以翻一翻前面的笔记,前面的前面的代码是吧,那我这过滤器写的时候也是实现这个接口,也是实现一个接口叫employment知吧,这些类你都不能随,不能随便写,必须按照接口定义的方法写,你随便写他不执行知道吗?他这个什么叫这个。
12:05
叫我就是这个非物是吧,叫非物实际上这个接口,那这个接口里边我们说它它定义了三个方法,它定义了这三个方法,然后呢,一个是这个init这个方做初始化来用的,说这个filter这个对这个什么,我们写的这个filter这个这个这个类将来初始化,初始化的时候,一创建对象的时候,就会自动执行这个方法。你可以把你的代码写到里边,还有一个方法就这个啊destroy方,就是当你这个filter对象销毁的时候,然后会自动执行这个方法啊destroy啊,这样啊,你可以做一些收尾工作,比如说你这个非里边用到一些资源的一些数据库连接连接什么之类的,可以释放掉,知道吧,好,这是我们说到这,当然我们最重要的一个方法就这个啊都非嗯这个啊,当我们说当请求符合,只要符合它的过滤的这种规则,然后呢,都会请求到达目标资源之前,都会先执行这个。
13:08
我们可以代把代码写到里边就行了,好,这是我们讲下边还有一个写完过滤器之后也得配置啊,叫什么就配置过滤器知吧,配置过滤器,那它的配置是在这个外部的X当中配置,就是你的过滤器要配要过滤什么样的请求,叫什么要过滤什么样的请求。啊,这个过滤器的这个哪是哪一个过滤器,把这个过滤器的名字,这个类名,然后配置到外部的SM这样就行了,是吧,那它这个是在spring m Mac的配置文件这边来进行配置,好这时候我们说到这过滤器,过滤器和拦截器,它俩用哪一个都行,一般来讲我们简单的功能用它,复杂的功能用它,因为它比较,因为它功能比较强大,但是它的效率肯定没这个高,你知道为什么,因为他对他做了封装了。
14:01
这框架都对他做说磨,它会额外的执行一些代码,知道吧,啊当然我没说,但当然这种效率的话,一般来讲我们开发的时候不太考虑,主要是从功能上考虑,简单的功能用它,复杂功能用它,知道吧,那我们既然学了什么样的器,我们这个地方登录验证就准备用拦截器了,知道吧,好,下边我就准备写一个啊登做登录验证的一个拦截器,用来做登录验证,知道吗?好,下边我们。
我来说两句