00:00
好,来上课,呃,那么下个话题呢,我们来给大家去讲一下,呃,Mac的整个的运行流程啊,就是其实到现在为止的话呢,我们的整个诶Mac啊,这个所掌握的这个话题啊,我们把它合起来,大家来看一下啊,总共呢,讲了这么多东西。啊,就从这个地方啊,一直到这个地方,我们就都给大家讲完了,那么也就代表着整个这个spring Mac啊,它相关的一些知识点呢,也就说的差不多了,那么最后呢,我们再把这个通MVC啊,它这个框架的一个运行流程呢,给大家去做一个讲解啊,然后呢,还是帮助你们呢,去理解这个整个框架啊OK,我们一起来看,呃,那么这个运行流程的讲解的话呢,我们是分成呃两部分。少了的东西是吧。嗯。
01:00
好,稍等一下啊。啊来我们这个整个话题的讲解呢,主要是分成两部分啊,第一部分的话呢,我们就通过现在大家所能看到的这个图啊,来去给大家去解释一下它整个的一个运行流程啊,那么第二部分的话呢,就是我们结合上诶底层的这个源代码,我们再把这个整个的这个运行流程呢,给大家再去走上一遍啊带着你们呢再去看一看,然后呢,对他呢,有一个更加深入的一个了解,OK,来吧,那我们首先来结合着这个图呢,给大家去讲一下。首先看一下这个图特别乱是吧?啊,也不能说乱啊,这个图就东西特别多是吧?OK来吧,那我们就呃挨个来看一下,呃,首先啊,这个图我们怎么看呢?我们把它拆成两部分,从哪个地方拆开呢?从这个地方拆开啊,我给你大概画一画是吧?啊就这个啊,这个是我们左边的一部分,然后呢,剩下的就是我们诶右边的一部分了,我们把它拆开,那么首先呢,我们先来看左边这一部分啊,就是当我们一个请求到达我们的这个dispat solid的时候啊,注意我们要去看一下当前的这个请求呢,是否存在对应的一个映射,能明白吧?诶看一下是否存在一个对应的映射,那么假如说它不存在这个映射,那么我们就要知道它是不会交给我们的PA solid去处理的,能明白吧?啊,不会交给他去处理,那我们就要什么呀,再去看一下什么呀,是否配置了一个default solid handler这样的一个配置。
02:33
那么假如说那听方讲啊,假如说这个配置我们也没有啊,那么其实呃,这个地方的话呢,他就会把什么呀,把这个请求呢啊,其实也是交给那个底斯牌的sorry去处理了,但是呢,他是找不到一个映射的,那么这个情况下呢,他告诉你一个no马米found的能理解吧,告诉你一个no白米found,那么假如说诶,我请求过来以后呢,它也是没有映射的,而且这个配置呢,我是有加的啊,就是我加过这个default s handle的这个配置,它就能帮我们去处理这个静态资源的请求了,那么这个时候你当前的这个请求呢,就不再交给那个dispa solid去处理了,而是交给谁呢?交给我们的tomcat服务器的默认的S来处理,那么他就能帮我们去找到这个,诶具体的一个静态资源,好,那么在找这个静态资源的话呢,其实也是有两种情况,第一种的话呢,我就是可以找得着,第二种的话呢,我找不到这个静态资源,能明白吧,但是啊,大家注意,如果你能找得着,那么我就把静态资源给你反。
03:33
返回来了,如果说我找不着这个静态资源呢,我同样是要给你一个404页面,但是我们的控制台就不会再有这个no map放,能记住吧,你一定要记住no mind found是只有当请求进入到PA solve以后,才会出现这样的一个警告,如果说我压根就没有进入到这个里面,那么我们是不会有这个警告的,能理解这个意思吧,所以说呢,左半部分呢,其实主要就是请求到达以后,我要根据你啊,有没有经过映射来去做出不同的一个处理。
04:07
啊,那么这是我们的左半部分,OK,那么接下来我们再来看,假如说我请求来了以后,我是存在对应的映射的啊,存在对应的映射,那么这个时候请求就一定要交给我们的dispa solid了啊但是的话,它是怎么处理的呢?大家注意,它首先呢,会由一个handle德ler mapping啊,会由这个handle德ler map来去获取一个handle德lerq ch这样的一个对象啊这两个对象的话呢,我们之前没有看到过,一会呢我会带着你去看看,获取到这两个对象以后呢,我们再去获取一个handle了adapter对象啊handle了adapter对象就是我们的诶处理器的一个适配器对象,那么把这个对象也拿到以后呢,接下来的操作大家注意它去调用我们的拦截器的pray handle方法,再调用我们的注意了啊,再调用我们的请求处理方法,就是我们handle了的请求处理方法。当调用。
05:08
那我这个请求处理方法的时候,如果正常结束,OK,那我会拿到一个model and维度对象对不对,诶,正常结束,假如说。正常结束的话,那么接下来我们就要去调用我们的post handle方法,执行完拦截器的post handle方法以后,那么它就会通过我们的视图解析器来去解析你的model and对象,得到最终的一个视图对象,那么得到视图对象以后呢,接下来我们就是试图对象去渲染我们的一些数据啊,就是我们这个渲染视图吧,对吧,整合输出你的模型数据,也就意味着在这个地方呢,要发生我们的转发以及重立下的操作,好最后呢,我们再去调用拦截器档after comp方法,那么整个的这个请求流程它也就结束了,好,这是我们说的正常的现象,那么假如说我们在执行这个目标方法的时候,就是我们的请求处理方法,它出现了一些异常了,能明白吧,它出现了异常了,出现异常以后呢,其实在我们的SPAMVC里面,它是有一个异常诶这样的一个机制的。
06:19
能理解吧,只不过这个东西我没有给大家去讲啊,但是呢,大家需要知道,它里面是有这个异常处理的,当你出现异常以后呢,诶,我们的异常这个机制啊,就是我们的异常解析器,它就要什么帮你去要处理这个异常,并且大家一定要注意,它处理完异常以后呢,也会得到一个model and的对象,能明白吗?也会得到一个model and的对象,而这个model and的对象呢,也要交给我们的视图解析器进行一个解析,最终得到一个视图,当然了,当你出现异常以后呢,那么你将来去玩的那个视图肯定就是一个错误处理页面了,而不是我们正常的一个结果了。
07:01
这个是能明白的吧,对吧,这是什么意思啊,他这个异常处理器呢,就是当你出现异常以后呢,他不会把那个异常信息直接扔给我们的用户,而是会帮你去做一个处理,处理完成以后呢,他会去往一个错误处理页面,比如说一个很友好的一个页面来给用户呈现出来,就不会把那一堆异常信息给你抛出来了啊,这是人家C提供的啊,只不过我们没有去用过它,理解了吧,但是你要知道它里面是有这么个东西存在的啊,所以说呢,整个这个流程下来的话呢,大家注意。不管你这个地方是正常执行还是什么呀,出现异常,最终的话呢,我们都会得到一个mav对象,然后呢,通过我们的视图解析器去解析我们的model and对象,得到我们的视图对象,再去往我们最终的一个视图页面,明白了吧,那么这个整个就是我们的Mac的一个运行流程,那么其实在这个里面大家来看一下,除了这个异常啊,这个我们是不会再去讲了,明白吧,大家了解就可以,除了这个话题之外,剩下的东西,好,这两个对象一会这三个对象一会儿我们会去看到,剩下的东西,大家看一看,我们是不是都讲过了,嗯。
08:14
对不对,诶剩下的东西我们是都给大家掌握的好,OK,那么暂时的话呢,我们就先通过这张图呢,给大家去分析一下它的这个流程,那接下来呢,我们就再结合上我们的源代码,结合上我们的代码,把这个里面的每一种情况呢,给大家去做一个演示啊。
我来说两句