00:01
好,来吧,那我们拦截器也写好了,然后呢,也把它配好了,接下来我们就来演示一下它到底有没有起作用是吧,因为我们配的是拦截所有的请求,所以说呢,我们直接访问任何一个请求,它其实呢都会做一个拦截的啊来我们来跑一下,呃,我就不再去写这个具体的方法了啊,我就随便用我的刚才的某个请求都是可以的啊,来访问一下。好来启动了,那么呃,启动了以后呢,比如说我们就来访问一下这个啊,类似的o emps,大家来注意啊,点一下OK,那么我们能看到啊,首先呢,我们能来到这个页面,并且呢,这个地方已经打印出了我们的输出语句了吧,但是呢,你会发现他打印了几次啊。啊,打印了几次啊啊,搞晕了是吧,到底几次啊。
01:16
感觉像上次哈,但是又好像少点东西,是不是搞运了是吧?啊,为什么会打印这么多次了啊,因为我们的这个请求大家注意哈,你这个请求里面我去啊,显示所有的员工信息列表,对吧,你看了哈,它其实这个样子的,我把它清空一下,我们先来看啊,我先来到inexp。对吧,然后呢,我去点击显示所有的EPS。几次啊一次,为什么会出现刚才打印了那么多东西呢?那是因为刚刚有些东西打印出来没看我们明白吧?啊正常情况下打印几次啊一次明白吗?啊是不是给你们搞晕了是吧?正常情况下你这个请求过来以后,哎,你就打印这么一次就行了,听懂了吧?哎,刚刚是出现一些问题了,明白吧,OK,好,那我们把这个。
02:20
配好以后我们来运行一下,我们就发现,诶,它其实这个是能打印出来的,那也就意味着我们现在的这个拦截器是不是已经开始工作了呀,对吧?诶他就已经什么开始工作了,好那么我们能看到你开始工作以后,接下来我要研究的是什么呀,我要研究一下你拦截器里面这三个方法的一个执行顺序。对不对,那我们来看一下,从打印的结果上面来看的话呢,它是什么样子的,先执行pre handle,再执行handle,最后呢,再执行我们的对不对?好所以说我们就能总结出来了啊执行顺序呢,是先执行它,好,这是我们的第一个执行的,然后呢,接下来呢,是我们的第二个执行的啊,再接下来呢,就是我们的,诶它是我们第三个执行的方法啊,但是的话,我们知道的顺序还不行,我们还得去研究一下,那你这个拦截器的方法到底是在什么时机去执行的。
03:31
能听懂吗?这个我们必须要有一个深入的研究啊,所以说接下来呢,我们在这个上面呢,都给它加上断点啊,这样吧啊,我在这个加断点之前呢,我先把我现有的断点都给它去掉啊,因为我们之前是不是加过好多断点啊,对吧,来都去掉啊。好,都去掉,去掉以后呢,我们再回到我们的拦截器里面,来这个位置加上个断点,看到了吧,来这个位置呢,我也加上个断点,好,这个after comp里面呢,我也加上个断点,OK,每个方法我都加上了断点,然后接下来大家注意了啊,我们来debug启动一下服务器,然后呢,每一个方法我们都来做一个研究。
04:13
好,来,先把它停掉。停下以后来第八个启动。结束啦。第八个启动啊。好来第八个启动来,那么启动以后的话呢,我们还是先来访问到我们的这个页面啊。哎,我刚才用了这个吗。用的是这个是吧,来吧,我们来刷新一下。好啊,来提空一下啊,然后呢,我们来点一下来类似的all emps OK,首先的话呢,我们来看一下这个代码停到了什么位置啊,是不是停到了我这个prohanno这个位置啊,OK,那我们就来看一下你到底是在什么地方执行的啊好,怎么看呢,我们还是来到我们这个调落站这个位置,我们来看代码停到了这个普handle,那么谁掉了它呢?肯定是往下看吧,OK,在这个位置有一个handle了,CU里面呢,调用了a pre handle,那这个的话我们也好像不咋熟是吧?再往下看,我们就看到了dispa solid的什么动底PA里面,然后呢,一点它,你发现就来到了这一行代码,那么这一行代码呢,就在我们的dispa solid里面,而且它是939行,好,那么现在我们就来分析939行,开始去执行我们的prono。
05:45
对不对?OK,那么我们能记住的是这一行代码大家应该还没忘吧,是不是执行我们的请求处理器的方法啊,那也就意味着我的普handle这个方法,首先它是在我们的诶请求处理方法之前被执行的吧,而且你能看到的就是我们一开始给大家讲到的这个拦截基准执行时机,是不是在我们的dispatch solve的里面才会去执行的呀,对吧?OK,这个大家都必须要记住啊。好,那么现在我们能总结出来的是什么呢?就是对于这个pre handle这个方法来讲啊,在这个位置,好,对于这个方法来讲,它是在什么地方执行的。
06:26
哎,是在什么注意的啊,执行时机诶是在我们的写的清楚一点啊,PA solid的939行是吧,方便你们下去去看啊,然后呢,具体的时机的话呢,就是在我们的请求处理方法之前执行的。能明白了吗?诶,在这个请求处理方法之前去执行的好,那么这是我们的pro handle,然后我们再来接着往后看啊好,现在我要断点的放行啊走,那么它现在呢,又来到我们的post handle动里面了吧,那么这个是在哪执行的呢?我们再来看还是往下看啊,调用post handle再往下看,我们看到了动底子page的,诶这一行954行看到这个位置没有,OK,我把它也加上一个断点啊,然后呢,把刚刚呢,我们那个939行呢,我也回去给它加上一个断点吧,一会方便我们再去调试啊,就这个位置,然后呢,945呢,就是我们的请求处理方法,我也给大加个断点,那么现在我们能看到的是在954行这个位置呢,去执行了,我们的post handle,而这个post handle呢,它是在我们的请求处理方法之后执行的吧。
07:42
是不是啊,你看这个方法执行完成以后,是不是还开始去执行它的呀,对不对,哎,你方法的这个顺序肯定是根据你代码的这个顺序来的嘛,啊执行完他以后再执行我的。Post handle,好,那么现在我们能总结出来的就是什么呢?哎,对于我的第二个方法来讲,它是在我们的dispa solid的959号是吧?那么具体的时机的话就是什么呀,请求处理方法之后,好,那么再来分析分析啊,在你的请求处理方法后面这个位置执行的post汉导,那么大家还记不记得959行它是干嘛的?
08:25
啊,是不是开始把我们的model and游对象传进去,是不是开始去处理结果了呀,那么从这个地方进去以后呢,它所做的操作就是什么呀?诶先得到我们的视图对象,再通过视图对象呢去整合你的模型数据,最后呢,作为一个转发重立下的操作是都是从这个地方进去的呀,对吧?那么我们就可以简单的去总结一下,它是在我们的this part solid,诶959行请求处理方法之后,然后呢,我们这个试图处理啊之前执行的能明白了吗?OK,那么这就是我们的诶第二个方法的一个执行时机好,再来接着往后看断点往后走,那么哎,因为我这个地方加了个断点,它就来到这了,因我是不是刚刚把这个加格断掉了呀,对吧,来吧,断点还是放心啊,最后呢,来到我们的after comp这个位置。
09:22
好,还是来分析它在什么地方执行的啊,你来看它是在我们的process dispat this up里面看到没有,还是在第次拍S里面,只不过它是在1030行执行的,那么现在我们就要来看一下这个代码在什么位置啊,注意往上翻一下1030啊,往上翻我们能看到它是在这个process dispar out这个方法中,而这个方法是不是就是我们刚刚看到的959行啊,是不是这个地方调过去的?
10:01
嗯,对不对,你看啊,我一点它是不是来到这个方法里面了,而在这个方法里面的1030行,你看一下是不是执行了我们的after completion啊,对不对,那我们就来看在它上面做过什么操作呢?你注意了啊,你处理结果的时候,你进到了这个方法里面,你是不是要去执行一个render啊。对不对,然后从这个地方进去以后,哎,从这个地方进去以后,就是解析得到我们的视图对象,然后呢,去整合输出我们的模型数据,最后呢,做一个转发重立项是不从这个地方进去的,那也就意味着我们的这个方法其实就是最后最后才会执行的,一直到什么时候呢?就是你的转发从定向都做完了以后,我是不是才会执行到这个方法呀。能理解吗?因为什么呀,因为你从这个地方调进去以后,后续的处理你都要在这里面完成了吗?你完成以后,最后他执行完以后,是不是才有可能会执行到这个地方啊,对不对?哎,所以说呢,我们又能把它总结出来一个了,叫做什么呀,首先呢,它是在我们的,诶dispa sorry,这个什么呀,1030行执行的,好,这个大家可以稍微记一下啊,然后呢,它绝对是在我们的图处理,哎图处理之后哎执行的,他是在我们图处理之后执行的,那么大家具体来记的话就是什么呀?哎,转发重定向都做完以后,他才会执行的,重定向后执行,为什么敢这么讲呢?因为我们知道的就是从这个地方进去以后,接下来的操作就是什么呀,要进行视图的渲染,就是我们先得到视图对象,再。
11:55
进行什么呀,试图对模型数据的一个处理,最后呢,根据你试图的对象呢,来完成转行以及重定向,这一套呢,都是从这个方法进去以后执行的,那么等把这一套执行结束以后呢,他才可能回到我们的这个位置,再去执行我们的after composition这个方法明白了吗?OK,所以说呢,这就是我们拦截器三个方法的一个执行顺序,以及他们的一个执行时机。
12:25
记住了吗?记住了吧,OK,好。
我来说两句