00:00
好,那我们刚才咱们已经讲了model model map和map之间的关系了,对吧?那其实呀,在我们当前咱们往预对象中共享数据的这些方法里面,我建议大家呀,就是多看一下这个model and view,因为这个model and view啊,然后是我们的SPAVC中呢,他建议我们所使用的一个对象,然后这个对象呢,然后包含了两个功能,一个是model,一个是view,对不对,对吧?为什么这样去说呢?因为我们不管用的方式是什么,你就比如说我用API啊,还是model and view啊,还是咱们的model,还是咱们的map,还是咱们的model map,它其实最终都会将咱们的模型数据和我们当前咱们的视图信息封装到一个model and view对象里面,能听懂吧?好,OK,行,下面呢,那咱们就来走一下源码,OK吧,下面咱们就来走一下源码,然后让大家来看一下这个问题。就是不管。
01:00
管咱们用什么方式,它最终都会干什么,它最终都会把我们的模型数据和视图信息封装到一个model and view中,能听懂吧?好,那所以说咱们开始来打断点呗,这咱们是不是要打一个,这咱们要打一个对不对,或者说你打到这儿也行,都没关系,是不是啊,对吧?因为咱们看的也不是这个地方,咱们来看的是咱们的spring VC里面,然后来处理完来调用了我们的控制器方法之后,它的返回值是什么,对不对?那我们只要来看到同一行代码,并且返回值都是model and view,那我们当前这个代源码就看完了,OK吧,好啊,行来,那我们下面呢,咱们再往下,咱们在这或者说你在这答也行啊,可以没问题啊,好,咱们在这儿来常见,好再往下,然后在这,然后在这再打一个OK吧,这五个方法来啊,大家看好,那怎么来进入到五。
02:00
我们的断点模式,首先大家需要用什么方式来启动,是不是要通过debug方式启动,对不对,好,然后呢,我们现在用的就是debug模式,然后咱们看好点击,然后呢刷新,然后为什么现在没有进入到debug模式中,因为我们当前咱们所发送的请求有没有执行到咱们的这五个方法呀,没有是不是好,OK来下面那我们就来先看咱们的第一个叫做使用SOAPI来实现向域对象共享数据的功能,OK吧,咱们来看一下这个东西啊,首先咱们先来点咱们的第一个超链接,大家看是不是就进入到断点模式中了,对不对,对吧?好,然后在这个地方给我们来输出的是我们当前咱们所执行过的代码里面的一些变量,能听懂吧,能听懂吧,我们所执行过的一些代码里边的一些变量啊,然后再往下大家看咱们的这个地方,也就是咱们的这个模块,哎,大家。
03:00
大家注意这个地方,这个地方是什么,这个地方是我们当前咱们的一个什么,大家说是我们的方法站对不对,对吧,也就是我们当前咱们执行到这个位置的时候,我们进入到站中的这些方法对不对,对吧?换句话说白了就说的简单一些,就是啥呀,就是什么,就是直接或间接的调用了我们的这一行代码的这些方法,大家说对不对。能听懂不就是直接或间接的调用了咱们的这一行代码,或者说咱们打断点的这个方法的这些代码,这些方法能听懂吗?就像是这里面大家看到咱们的每一行,它都是在底层中直接或间接的调用了我们的这个方法,能听懂吗?所以它就会存在于咱们的方法站中,那这又是为什么呢?因为咱们打了断点,那我们当前的代码是不是到这就结束了呀?大家说是不是啊,到这儿就停止了,对不对,我们不点击下一步,那我们当前的代码会继续往下执行吗?不会,那所以说我们的这个方法没有执行完,那我们直接调用这个方法或间接调用这个方法的这些方法会不会执行完?不会,所以说他们将全部都处于咱们的方法战中,处于什么状态,压战状态是不是啊,行,OK,来下面呢,咱们再往下,那大家说我们应该去找谁呀?我们应该去找,就咱们的方法在里面,咱们应该去看谁呀?那大家都知道我们说过,咱们spring VC里面,我们从浏览器发送到服务器中的请求,是不是都要被咱们的dispa solve核心前端控制器进行处理,对不对,对吧?那所以咱们是不是应该来找到我们当前咱们的方法占中,然后来调用了dispat so let中的某一个方法,大家说对不对,对吧,来,咱们往。
04:58
那找找找找找找找找找找找找到这儿,哎,大家看有没有有没有,哎,这里面有两个,那你说谁先谁后啊,啊大家说这是不是应该是先执行的方法,这个方法中调用了它,它又调用了它能看懂吗?能看懂吧,好OK,来,咱们来看我们的Dis part of that里面的第几行,1061行能看懂吗?点击之后大家看就进来了,看看。
05:29
这一行我这样说啊,这一行其实就是我们当前。大家听好啊,我当前的这一行代码里面,其实就是来获取了我当前控制器方法所返回的结果,大家说对不对,也就是说我的这一行代码里面,它在底层中,它一定来执行了我们当前咱们的控制器方法,大家说对不对?既然它存在于我们当前咱们的这个方法占中,那所以说我们当前咱们的这个方法来,咱就是我们看到的这一行代码,这里面它在继续往下执行的时候,最终一定会调用到这个地方,大家说对不对?
06:15
大家说是不是能看懂吧,好,OK,那所以说咱们的这个方法执行完之后,那大家想想,那我们的这个方法啊,是不是伴随着我们它之前的这些方法的完成,那是不是就会执行到这个地方,对不对,对吧?好,那所以说大家来看,你看这个地方是不是有个MV啊,对不对,那MV是什么?来咱们先点进去,先来看一下啊,来我找到之后,大家看这是个啥?这是不是一个model view对不对?那所以说我们从咱们当前的这一行代码里面,咱们就能够看出来,当我们去调用了我们的控制器方法,我们最终所获得的它就是一个model and view对象能听懂吗?首先大家先明白这一点,我的这个方法的执行,它一定是最终调用了我们的控制器方法的,对不对,否则它是不会存在于我们当前的方法站住的,是不是啊,能听懂吧,好,OK。
07:16
那既然我们当前的这个方法最终调用了我们的控制器方法,那所以说我们的控制器方法执行完之后,它最终返回的不就是咱们的这个MV这个对象吗?而MV这个对象咱们刚才也看了,它就是一个什么对象,Model and view对象能听懂吗?能听懂吧,好,OK,来,咱们在这儿打个断点。能看懂吧,好,然后来大家看一下啊,来那比如说然后咱们在哪呢?算了,咱们就在这打断点吧,然后F9是不是跳过断点啊,是不是对吧,F9跳过断点,OK,咱们再来看一眼,大家看好,我现在呢,我再来点击我们通过solvepi向request预对象共享数据的这个超链接,点击之后大家看知道为啥先进到这不知道。
08:09
我可没跳过断点,我哪跳过断点了啊,知道为什么要先进到这,知道不知道知道不知道知道他是最调动。这个东西咱们刚才没在这加断点的时候,这是不是在方法站中啊,那方法站里面的代码是不是就已经执行过了,对不对,对吧,所以说咱们在这打了个断点,那一定是先执行这个方法呀,对不对,是不是啊,所以说一定是先执行这的没问题吧,好,然后呢,大家看好,我现在把这个断点跳过了之后,大家说会怎么办?啊,我在这把这个断点跳过了之后,那是不是要看咱们有没有下一个断点,如果说有下一个断点,跳转到下一个断点,如果说没有下一个断点,那咱们当前的程序是不是就执行完了,对不对?但是大家说咱们有没有下一个断点,有咱们说过,那这个方法最终调用的就是我们的控制器方法,大家说是不是啊,所以说我在这儿我来跳过之后,大家看是不是跳到这儿了,能看懂吗?好,那所以我这样说有问题吗?我当前大家看好我的控制器方法执行完之后,在我们的dispa of let里面,最终它都要将我们的模型和我们的视图信息封装成一个model and view,能看懂吗?
09:35
有问题没有?有问题没有啊。有问题没有好,然后下面呢,咱们再挑拨,OK就完事了。好,然后呢,咱们在这打个断点,看看这个model and view是什么吧,行吧,要不然呢,你这个断点跳过了之后,那我们当前所有的断点是不是就就都就都结束了,对不对?来下面大家看好,我在这直接刷新页面是不是又进来了,然后跳转到这儿,然后再跳转到这儿,咱们鼠标放上去,大家来看,这就是一个model and view,能看懂吧?好,然后这个地方real视图是不是等于success呀,是不是,但是大家看这model里面有数据吗?没有数据知道为啥吗?因为我们没有用model的功能,我们用的是原生solve API,能听懂吧,所以说在这model里面是没有任何数据的,知道吧?好啊,行,这样的啊,来这个就是我们当前的一个model and view,其实还是非常简单的,咱们说过你通过名字你就知道它的功能是什么,第一个模型数据,第二个就是视图信息,对不对,对吧?啊来,那我把这个东西咱们给它跳过,然后下面再。
10:49
大家再看我通过咱们的model and view,然后向我们的request预对象共享数据,OK吧,这个就不说了,咱们本身用的就是model and view,是不是啊?来点击之后大家看跳到这儿了没?跳到这儿了,然后跳过走到这儿,再跳过是不是到这儿了?那所以说大家想我们当前的控制器方法返回的是不是同样是一个model and view,对不对?来,鼠标放上去,大家来看看咱们的view等于success,这没毛病,Model等于谁?Test requestco,不,然后等于谁?等于咱们的hello model and view,大家说是不是呀?能看懂不?所以说这里面的view指的是视图信息,咱们的model来指的是啥?指的是我们往请求域中共享的数据,能听懂不能听懂吗?好,OK啊,行,那我们再跳过,OK,结束,再来看咱们的第三个方法,来点击之后通过model向request与共享数据,OK吧。
11:49
好,来在这咱们点击大家看啊,跳过,然后再跳过走到这,鼠标放上去,然后大家看好使不好使,好使是不是最终也是创建了一个什么,将数据封装到了model and view中,是不是是不是好OK啊,再跳过,然后下面,那我们再来看我们当前的第四种方式,然后跳过跳过,然后走到这,大家自己看好使不好使里remember是test request scope等于hello,逗号,Map有没有有能看懂吧,所以说当我们使用map方式的时候,最终是不是也是一个model and view能听懂吧,好,OK,来再往下,咱们再访问咱们的最后一个来看是不是又走到这儿了呀,对不对,然后咱们来执行咱们的控制器方法,那控制器方法执行完,那我们当前咱们的这个方法是不是就执行完了,对不对,那我们是不是就可以来获取咱们的model and view,能看懂吧?
12:49
Success model等于request test request scope hello model map,能看懂不好,所以说大家需要把这个问题记住,就是不管我们用的是什么方式,然后我们最终咱们都要把数据封装到咱们的model and view中,能听懂不好啊,行,那咱们的这个断点呀,然后咱们这个源码呢,咱们就先看到这儿,然后咱们到后边,咱们再具体的去看各个功能,OK吧啊。
13:18
现在咱们要想把断点给取消掉,你要么在这把它给点击,这个是什么意思啊啊,这是取消断点吗?哎,也差不多就是取消断点的意思,点完之后咱们的断点还有效果吗?没有效果了对吧?那如果说我要删除断点的话,你要么知道你在哪打的断点,要么咱们是不是可以点击这个能看懂吧,这里面就是我们当前这个断点,所有的断点,大家只需要把这个东西直接给它删掉就完事了,看到了没?啊,行,这个大家都能听懂吧啊。
我来说两句