00:00
来,我们再来接着看。刚刚哦,刚刚我们主要讲的就是这个dispatch。我们对它做了,呃,做了一个抽取,我们把之前的同学们,我们把之前的float当中的反射的一个代码呀,向前。抽取到中央控制器当中去了。好,所以呢。所以呢,来。我把这个图呢,稍等一下啊。我把这段把它往上挪一点啊。差不多。呃,就是这样的,然后呢,我们发一个请求过来,注意看啊,我在这边发个请求。假设我的请求是这样的,HTTP。Localhost。8080。斜告。比如说PRO15啊,好,我写个叫float点。
01:00
问号operator是op还是叫还是全拼啊,忘记了。是全拼吗?全拼是吧,假设op等于ad的。啊,并且比如说fid等于一个值等于二,意思一下啊,就这样的好,我把这字改大一点啊。把它改成18。OK。好了,那么这个当中的。这个值。我把这个值加粗一下。把它变成蓝颜色。然后operate等于A的这个值,我把它改成绿颜色。好,也加粗一下行。同学们。我把它保存一下啊,前面的这个float点度,实际上同学们我们当前的float controller user controller。Order controller controller,把它写下来吧。
02:00
我写的这啊。我写在后面。好,叫C了。好,把这个字再改小一点,这个字差不多11。不加粗。差不多吧,啊或者是十差不多。那我改成CTRL了,那你中间这个应该应该应该要把它删掉。这个先把它删掉是吧,同学们。啊,这个把它删掉。好,这边的也是一样的,把它删掉,这边也是一样把它删掉。把它替换成CTRL。写在下面吧。Controller。这边也是一样,把它变成CTRL。OK。我们这些CT,它是不是在我们内存里面形成了一个容器啊。我们用一个蓝颜色的线来画一下啊。在这边其实一个容器。这个容器我们称之为叫冰是吧,同学们。
03:03
好,我们写一下并map。来也就是在这边。兵败。那么这个容器里面呢,我们会有一个一个的组件。我们写一下,比如说有第一个。啊叫float CT,把它写进去。Controller。OK。那你这个controller其实。啊,它其实是不是就和这个对应啊。哎,是不是同学们,我们输的这个URL。啊叫福禄点镀,然后我们是不是做了一个处理啊。做这个处理之后,是不是就能得到这个fruit了。得到的是不是就能和它对应上了,我们是不是在一个配置配置文件里面进行描述的。我们把它配中间。把它画在旁边。
04:01
这是个配置文件。这批文件叫application。context.xl。然后在这配置文件里面,我们有个病。并标签。好,我们有个ID叫。然后呢,它对应了一个class。等于某某某float ctrler是不是这样的?好,我们把这个省略号去掉啊,就不要加省略省略号了啊。行,就是这样的。所以呢,根据这个配置文件啊,我们解析的配置文件,把配置文件里面里面的一个一个病。封装成冰B当中的一个一个的对象。那么在我们获取啊,在么我们获取到这个flu.do的时候,我们就能找到了啊,你这个ID叫flu嘛,我们从杠float.do里面就能找到float,就能找到这个float ctrl了,这是第一步定位到某一个ctrler。到底是哪一个controller来处理我的这次请求?
05:03
这第一步。第二步。这个里面有很多的方法。到底是哪一个方法来处理我这次的请求是吧,同学们?我们靠的是什么?是不是一个叫op呀,是不是叫operateer呀?哎,靠的是oper。所以。再来。我们就回到这边来啊,假设这个方法叫edit。随便写一个啊,假设这个方法叫edit。A。好。把它写在这。看一下能不能加粗一下,没问题啊,可以加粗一下就A。所以呢,你这个ad的。其实。啊,就和他能够进行对应。好,就是它的一对是吧,同学们,它们两者是对应上的。好了,就是这样的。
06:02
啊,这是这么一个过程,OK。好,我们回到代码里面去。这个代码我们暂时暂时先这样啊,这里面我注释加的有点少啊,暂时先这样,但是我们这个思路应该是连贯的啊。再继续吧,咱们趁热打铁,再继续。反正大家已经听了很难受了,那也不在乎再多难受一会儿是吧,行,抓紧时间继续。这个是PROJECT15。我把它拷贝一份。根据。为幺六。好,弗洛2.1。那么在2.1的这个版本里面啊,我们还是叫就叫MVC啊,加加不加其实都行啊。这个其实已经不太重要了,我们写一个叫CTR。下面一步我们要对controller要做一些优化。刚才我们上一个视频里面,这个大家比较烦人的connect啊,其实这个解决方法大家可看啊,可以看,因为看的话,因为你碰到问题,你看老师怎么分析是吧,怎么去寻找到这个错误的根源的。
07:06
啊,你可以看啊,但是我们在当前这个类当中啊,当前这个案例当中,其实那个bug其实是可以把它避免掉的啊,是可以把它避免掉的。OK。打开它,把它重命名一下。然后呢,我们把它加进来。把这玩意删掉。回到model。把幺六加进来。点击OK,点击应用,再回到artifact。点他,点他。把幺六加进来,点击应用,点击OK,再回到这边来。把这个删掉。把它加一下幺六。可以吧,同学们。好,那我这边就改成幺六。好,一步步来啊,下面的代码大家听起来应该还是还是能听得懂的啊,还是应该听的是没有问题的,我们一起来看一下,下面我想做个小小的改动,同学们。
08:04
来看一下啊。打开它,再打开它。同学们。我们这个ctrler当中有float c。这个float controller里面大家帮我看一下啊,请大家帮我看一下。这个update的方法。他是不是要有这些获取参数。他要获取参数。这个A的。也有获取参数。这个delete。也有获取参数。A也有获取参数,那大家想一想,获取参数这个行为应该是通用的。只是每一个方法里面获取的可能不太一样。是吧,同学们,但是他们都有获取参数这个行为。
09:00
那我认为可出局。再来。再来这个update的方法,你看一下它是不是要做重定向。这个方法是不是也要做重定向或者是转发嘛。再看下面这个方法,他也做重定向或者是转发,每一个方法最后一步是不是都是这个操作。我认为这也是一个相似的操作,我也可以进行抽取。下面我就围绕着这两点来做优化。我们先从简单的开始,我们先从资源的重定向这一步开始。来看我屏幕。我们回到。在这儿。这是view best来啊,他继承他这边之前被我改的乱七八糟的。我为了我就不再在里面再去修改了,我直接把我最早的那个view best重新粘进来行吗,同学们。
10:00
重新粘进来啊,我们在这个里面应该没有改动吧。这里面肯定是没有改动的啊,打开它找到它,找到它。是吧,同学们,这应该是最原始的CTRLC。把它粘进来覆盖一下。覆盖进去好。再来。回到我们的去了。一起来看一下啊,现在他肯定报错,我覆盖一下,因为被改掉了嘛,是吧,代码被改掉了啊,这方法就没有了嘛,是不是。回到我们的controller里面去。这个不要了啊,刚刚加进去了不要了。这个也不要了。这个也不要了。我们这边有丢没问题,留着吧。这是一个update的方法,同学们。注意看啊。最后一步。这边的注释我全部把它去掉了。这个叫资源的跳转。看好了啊。Return。Redirect冒号float点读。
11:03
我洗了个瑞腾。然后这个方法改成死菌。那大家想一想。大家想一想。我这么一去改动的话。这个方法里面还有资源的重定向吗?是不是就没有了,他只负责返回个字符串,返回给谁?谁调用我的,我就返回给谁,谁调用我的是不是中央控制器调用我的?前面的中央控制器要调用的。所以我就把这个资产交给了中央控制器,让中央控制器统一的帮我们去做资源的转发或者重定向。所以我就把它变成这个了。那么因此我回到里面去。好,回到这里面来。这是应力的方法,我们再往下走。
12:00
这个是获取所有的并节点,你看同学们,咱们刚才写的这个乱七八糟,这个叫conduct method,这可以删了吧?不要了啊,删掉。所以这个method不要。This,什么get也不需要,他不需要再传了嘛,下面不需要了啊,不需要我就不传了,删掉。好,再恢复成我们原始的一个冰obg,还有一个ID是吧,同学们,然后把它放进去。好,这个没问题,再往下走,所以这两行不要。好,我们回到service这个方法里面去注意看啊。也就是在哪个地方呢。也就是在。这个地方。是不是?method.invo。这个方法是不是就表示。调用的是我们CT里面的一个一个的方法呀。对吧,同学们。这个method吗?你看是不是根据or获取的呀。对吧,根据or获取的这个method的吗。
13:02
所以我们要把它的返回值接收下来。死菌。Method。Return value。STL。或者叫STL吧,就这样。好,再来。他这个invoke方法,他给我们返回的是object类型吗?那我们肯定不能用一个死菌接收,你可以强转。那我这边我最好呢,把它做的,呃,做的程序代码写的规范一点,我们最好用obj结束。然后判断,如果obj不等于none,咱们再强转行吧,同学们,咱还是把它写的规范一点。Object obj。大家一定要知道我思考的过程好不好。等于此菌。Obj。然后我对他进行处理,注意看啊。这是第三步。叫试图处理。
14:04
这是第二步。第二步叫这个,第二步叫这个,第二步叫叫什么呢?叫叫CTRL方法调用。Controller组件中的方法调用。好,就这样子。这是第二步叫CTRL组件中的方法调用啊,第三步叫视图处理,所以你这边给我返回一个。返回个字符串,我要开始做视图处理了。我这边可以做个判断。If。Method still.start with。Redirect冒号。如果你是以direct冒号开头的,咱们刚刚写的这个是不是就是以direct冒号开头的?好,CTRLC把它放到这边来。比如像这个。
15:02
比如。啊,冒号点,如果是这样的情况下。Method return sd.subs string,我们要截取。Redirect冒号。稍等啊,把它剪切。Method return,他点index。啊,把它放进去。好。OK。结局了,他的这个叫索引,稍等一下啊,我感觉这个逻辑有点不对。剪贴不需要这么麻烦。点灯。从它的长度那边开始截取,我的意思是什么?我的意思是萨巴斯因一截取是不是就只剩后面那个了?只剩下后面这个。子俊。Direct ST等于它。然后在这个地方我们写一个response。
16:03
跳转redirect STL写完了,这样就完成了重定向。啊,这样就完成了重定向。其实我这边把它改成之后。你这个方法。后面的路I exception。我们试一下。这局是不是也不要了?设置变码是不是已经挪到中央控制器里面去了?三。你看一下我把那个异常删掉了,是不是他也不报错啊,之前这句话是要抛异常的,看到了吗?他需要抛的就是我们刚才那个异常。能不能看到他破的就这异常,现在把它异常删掉,因为我们已经不需要写这句话了。那这样的话,我们就把这个CT出了组件里面的一个一个的方法。他就不再去。关心到底要怎么去做资源的跳转重定向,它不需要关心,他只要一个字符串就可以了。
17:04
具体这个视图怎么去处理,还是交给他的核心控制器去统一的处理吧。我们就把它放在这儿了。再来。下面一个ad的,我们做的是什么事情呢?好,Template这句话是不是用的是咱们time的那个模板啊。Edit。就这样的,我就直接写个return。那我这边写个死句。假设你能跑到外面去瑞纳吗?行吧,同学们,或者一个比如说一个error。也行。大不了你自己再去新建个error.htm页面呗。行吧,同学们啊,我就写个error吧,就这样子。好,我这边A,那么这个字符串和上面这个字符串不太一样,上面这个字符串有redirect冒号开开头,下面这个没有前缀开头。
18:01
啊,他没有前缀开头我们就写个else。Else的情况,我们就执行process。点,哎呀,没有没有,是因为什么原因呢,这边我故意把它改成HTTP了,现在我把它改成。我把它改成他。啊,让他去继承他,然后就可以用它里面的方法了。围到这边来,Template。把我们的这个字符串,把它放进去,就是他吧。把它挪过来。就这样的。把两参数把它加进去。Request。Response,把它加进去。好了。那么这种情况。比如。我们返回的就是一个ad的是吧,同学们,它返回的就是一个ad的。
19:02
好,再来看一下啊。这边的视图处理,再回到这边来。所以我这边把它改成edit,再继续下面这个delete,这是不是用了重定向。重定向应该怎么改?微。Redirect冒号flow的点是吧,同学们,来就把它改掉,死句。然后跑到外面去。Return。可以吧?再往下直接改。这个也是重叠下马。Return。Direct冒号float点是吧。就变成这样就可以了。下面这个没问题啊。这个是index。回到最下面。这句话改成什么?是不是啊,改成这样就可以了。
20:02
啊,改成这样就可以了。那行吧,咱们一起来试一下。所以说我们所有的方法当中。我们所有的方法当中,其实。这个response对象也可以不要了,删。我删掉了。这个当中的response。三。Exception。三。这个参数。删掉。这个异常。删掉。这个参数是。这个异常删掉。这就删掉。没问题吧?再来这个。删一下,把这个野狼删掉。全部搞定。那我们这个方法的参数个数已经变化了啊,所以你不要忘记了回到这里面来。
21:01
我们在这边借在这边写的叫get message。Get get。你这个还需要传俩参数吗。是不是后面那个response可以删掉了。删了啊,删掉了,只保留一个。OK。就这样子。没问题吧?Invoke方法。在这。我们这个response是不是要把它删掉。杀。其他的还有什么问题吗?其他的应该没什么问题了啊,有问题这个再说吧。这是这个应力的方法。这个in的内部,它其实在这个里面,它其实有一句话叫super init。是不是会调用这个super.init那么这个super是不是就是它呀。所以我们就回答它,它里面是不是有个叫应力的方法呀。
22:00
哎,没错吧,会利用这个应力的方法。好了。好,这边这边怎么还报错了,是不是要泡异常啊。啊,这边还要泡一场,真是的,抛一下吧。好就放在这边抛一下啊。好了。我们来试一试啊。呃,先运行再说吧,先运行看它会不会报什么错啊,那你说你这个float controller,同学们还要记上它吗?还要吗?根本不用进这套。他现在就是一个普通的类。但是说实话,正儿八经的讲,它还不能完全算是一个普通的类,因为它还是和我们的API,我们的规范还是有的。当然,我们想把它改成一个,改成一个纯粹的P接类,这是我们的目标。这里面我们把这些变灰的这些都表示不用的。全部都清掉。搞定。行。
23:00
先运行吧,报错再说啊,看到错我们再解决问题。看一下当前是22.1,然后是幺六对的吧。幺六没错啊,这边都改过来了,启动一下。暂时没有问题。好了,来,它也是可以访问的,下一页下一页是吧,同学们说明也是没有问题的。啊,也是没问题的,OK。好,这是我们去做叫提取啊,提取我们的叫视图资源处理的部分。
我来说两句