00:00
好,那我们现在咱们配置了web的叉L之后,下面大家再来看我们的下一个步骤呢,我们是需要来创建一个请求控制器,其实就是创建咱们的控制层,好,那在我们的spring VC中呢,因为它封装的是solve light,那大家说我们现在咱们还需要自己创建serve light吗?不需要,所以说呢,那我们现在咱们的控制层,咱们只需要去创建一个pugo就行。什么叫po?就是一个普通的Java类,它不需要有任何的继承,也不需要有任何的实现,不像是咱们之前的solve,是不是必须要实现solvele接口,当然呢,我们最终咱们创建solvele的方式是继承httb solvele对吧?好,但是在咱们的SP微C中啊,因为它本身封装的就是solve,所以说我们就不需要在自己创建solve了,我们只需要去创建一个类,然后这个类咱们不需要有任何的继承,也不需要有任何的实现,我们只需要把它给标识为一个控制层组件。那我们就可以通过spring VC为我们所提供的方式,然后呢,把我们当前咱们的这个控制器,把我们的控制层中的方法来作为我们处理请求的方法,大家听好啊,我再说一遍,就是说我们spring VC呢,它封装的是solve,所以说我们现在需要手动创建STEM,不需要我们当前所有的请求经过咱们web的叉L的配置,是不是都被咱们的dispatch solve来处理了,对吧?所以说我们到底咱们该如何来处理请求呢?那你肯定不能让dispa of letter直接处理啊,因为它能帮助我们来处理的是我们的共性的问题,比如说获取请求参数,往预对象中去存共享数据对不对?还有就是我们的这个页面跳转转发和重叠项,但是我们当前请求具体该如何处理,我们还是要去具体去写一个方法来处理的好,那我们现在咱们该如何去创建咱们的控制层呢?大家只需要去创建一个这个普通的Java类,然后它不需要。
02:00
有任何的继承,也不需要有任何的实现,我们只需要把它给标识为我们的控制层组件,大家注意,那我们就那我们当前这个控制层里面的方法,就可以通过spring mvc为我们所提供的方式,将它给设置为处理请求的方法,OK吧,所以说咱们先把咱们的控制层给创建出来啊。好,然后我们来找到Java,然后来创建一个类叫做com.at硅谷,然后点count controller,对吧,然后点叫什么呢?咱们就叫做hello controller con行。哈,大家注意啊,然后呢,我们现在呢,咱们来一个回车把它创建出来,然后在这咱们要把它给标识为控制层组件,大家注意一定得是控制层组件,知道吧,否则的话,你就在这创建一个普通的类,那咱们的spring VC也不认识它呀,所以说呢,咱们现在能够通过这个控制层来处理请求和响应,那咱们当前的这个类,它就必须得是spring MC中的一个组件,大家注意啊,控制层组件啊好。
03:05
那我们把它创建完成之后,那下面呢,我们就需要来创建spring VC的配置文件了,好,这个VC的配置文件呢,是非常非常重要的,当然这里面有些东西啊,大家可以直接去复制啊,咱们不需要自己去写啊,大家直接复制就行,好比如说呢,那我们在这咱们把spring mvc的配置文件创建一下,那咱们该怎么去创建。首先大家注意这个配置文件它是自动加载的,它需不需要跟我们之前咱们的spring一样,咱们需要手动去获取它application context的对不对,IC等于new class pass XL application需不需要不需要这个配置文件,然后它是在我们当前咱们的dispatch of that,也就是它在它初始化的时候,它就会直接干嘛呢?然后去加载咱们spring VC的配置文件,那所以说既然这个过程它都是自动完成的。
04:00
那大家想一下,那大家那也就是说这个代码人家都是写好的呀,对吧,那所以我们现在spring mvc的配置文件是不是应该也是一个固定的名字和固定的位置。对吧,因为这件事情它不是由我们去做的,如果是由我们去做的,那我们想加载谁就加载谁,但是我们现在咱们说了,Spring VC的配置文件是在dispatch solve初始化的时候来完成加载的,那所以大家想,那这个代码不就是写死的吗?那人家写死了之后,那大家说它加载的配置文件是不是应该就是一个固定位置的,固定名字的配置文件,对不对?好,OK,那我们现在以我们这样的一个配置,咱们spring mvc的配置文件应该在哪叫什么呢?大家注意啊,好,那我们在这来写一下。大家看好啊,然后呢,咱们这个spring mvc spring mvc的配置文件,然后默认的位置,然后和名称对吧,在哪大家注意,首先咱们先说位置啊,这个位置在哪呢?在web INF下。
05:08
We部音符下,好,然后咱们当前的这个名称是什么,大家注意是啥?看好了啊,比较特殊,当然呢,咱们也只是给大家演示一下,以后呢,我们肯定不会把咱们的配置文件放在web INF下呀,咱们的配置文件都是要放在resource之下的,OK吧,所以说它的默认的名称是什么呢?大家看好是solve let-name这个标签的值。加上杠solve that,然后点叉一定要看好啊,是我们当前这个标签的值,加上杠solve that.xl就比如说啊,比如说以下配置,以下配置,以下配置的以下配置,然后这个。啊,这个或者说咱们当前配置下啊,当前配置下的配置文件,配置文件名为什么大家注意啊,然后是spring mvc,然后杠serve let,然后点长苗,哎,这个大家注意。
06:13
好,然后这个咱们只是给大家先演示一下,咱们以后我刚说过了啊,咱们不会把配置文件放在webo下,我们肯定是要把它放在resource下面的,OK吧,所以咱们先讲默认的配置方式,然后等到咱们把这个功能实现了之后,我们再给大家去讲一些这个扩展的配置方式啊,好,然后咱们把这个名字复制过来,然后呢,在这个web info下面来创建一个spring的配置文件,大家注意啊,跟我们之前创建spring的配置文件是一模一样的,然后叫什么spring VC,然后杠solve let,点查名,OK。好,那这里面咱们都需要设置什么呢?首先咱们说了,那spring VC里面咱们的控制层啊,必须要标识,标识为控制层组件对吧?那但是咱们是大家都知道,我们的这个基于注解来管理病的时候,咱们光有注解行不行不行,所以说咱们一定要去扫描组件,知道吧,所以说在这第一个标签是干嘛的呀?扫描控制层扫描,然后控制层组件OK怎么写。
07:19
啊context,然后冒号comp看,然后com.a硅谷点control完事啊,大家注意好,这是第一步,剩下的大家就可以去复制了啊,比如说我们来找到咱们的笔记,然后咱们呢,这里面给大家配置的东西比较多,目前大家只需要配置一个扫描组件,还有就是咱们当前的一个视图解析器就行,大家注意啊,在这儿我把这个bin呢,然后给大家复制过来。大家看啊,这个东西啊,就是一个视图解析器,什么叫做视图解析器呢?它的作用就是用来解析视图的,也就是说呀,我们配置完它之后,我们就可以使用spring VC为我们所提供的方式来进行一个视图渲染,然后并实现一个页面跳转了。
08:08
好,然后大家简单的看一下啊,你看这个东西跟我们之前。咱们学习SIM Le的时候,配置的东西是一样的啊,大家注意,首先它是一个B,然后它的ID叫做view overver,当然这个东西不需要我们自己访问,等到我们以后咱们去看spring VC的源码的时候,大家就能够看到这个视图解析器其实是由咱们spring VC,也就是dispatch solve它的内部来加载的,OK吧,所以说这东西不需要我们自己访问啊,咱们只要把它给配置到这儿,它就会有功能,就像是我们之前咱们在讲spring VC的一个特性的时候,对不对,叫什么?叫做内部组件化程度高对吧?然后即插即用,你只要配置了什么内容,咱们就可以实现什么功能,OK吧,行来下面呢,我们再来看,然后呢,大家看它的类型叫做SIM Le view recoverver,是我们当前c spring整合SIM rif的这个价包里面的。
09:06
好,OK,大家再往下,Order是它的什么优先级,然后是一,就是优先级比较高啊,然后char incoding,然后这个是咱们设置的编码,然后template engine,大家注意这个是我们的模板引擎,其实咱们创建的这个过程,大家如果说你要是对咱们的STEM leaf,然后咱们之前在solve里面讲的这个c lea有印象的话,其实我们之前咱们用到的也是这几个对象。知道不像这个叫做模板引擎对吧,然后模板引擎里面我们是不是还需要干嘛,我们在这,咱们是不是还需要这个来设置一个叫做templateor,叫做模板解析器的一个东西。这个标签大家应该都认识吧,这是bin,这是set注入对吧,然后这个叫做内部病,然后我们在咱们在内部病里面是不是又为我们的template resolve,是不是又设置了一个内部病来进行复制,OK吧,然后大家看一下这个叫spring resource template resolvever,然后大家看好,你看这里面都设置的有谁啊,师徒前缀。
10:12
试图后追。对吧?SIM里面是不是会有这样的一个内容,叫做逻辑视图和物理视图,大家有印象没有,逻辑视图就是物理视图,就是我们当前要访问的这个页面的一个完整的路径。而我们当前咱们的逻辑视图是什么?我们的物理视图,然后把咱们的视图前缀去掉,把我们的视图后缀去掉,然后得到的就是咱们的逻辑视图,那换句话来说,反过来就是咱们的逻辑视图加上视图前缀,加上视图后缀,然后就是我们当前要访问的一个真正的页面的路径。对不对,好,这个大家注意c lea里面我们是通过什么来这个实现页面的这个跳转的,来确定我们要跳转的页面的,我们是通过逻辑视图,我们设置一个逻辑视图,然后呢,加上视图前缀,加上视图后缀,最终确定我们要跳转的页面,OK吧,好。
11:08
那我们现在咱们在这儿可以把页面来设置一下。比如说然后我们在这来创建一个目录,这个目录咱们就叫做template,来大家看啊来啊,创建一个目录就叫template,好,然后创建完之后,我们是不是就可以在这里面去写一些对吧页面,比如说HTML,大家看啊,比如说这个HTML咱们去叫做首页,叫做index加HTML对吧,这叫首页。好,然后这里面咱们加上一个H1,就叫做index.html,行完事,好然后下面呢,我们再来看,那比如说我现在我要访问这个页面的时候,大家说它的一个完整的物理视图是什么?是不是应该是web info下面的time place下面的index.html对吧?好,然后那我现在我的逻辑视图是什么?那我再去访问这个页面的时候,我需要把完整的这个完整的这个页面的路径都设置出来吗?不需要,然后我们只需要通过逻辑视图就可以,为什么?因为c lef中咱们的逻辑视图可以被我们的视图解析器对吧?然后来进行解析,然后来匹配我们当前这个视图的前缀,然后匹配咱们视图的后缀,然后这个匹配完之后的结果才是咱们一个完整的物理视图。
12:29
OK吧,什么意思啊,比如说我现在我要往哪跳,大家看好,咱们要往这跳,往咱们的斜线啊,然后web杠,In for,然后下面的这个temp as ten place下面的index.html去跳。好,那我们现在咱们要往这去跳的时候,咱们需不需要把这个完整的路径写出来的这么长,对不对,不需要,那我们怎么做看好啊,然后呢,这不是咱们的物理视图吗?你只需要把我们的前缀给去掉,也就是这个东西去掉,然后再把咱们当前的视图后缀给去掉,把这个东西去掉好,那我们现在咱们就可以直接通过index这个逻辑视图来访问到它所对应的物理视图。
13:21
能听懂吧。好,这个大家一定要看好啊,好,那所以呢,那大家看一下,那所以这个大家一定要知道他们之间的关系,咱们的视图前缀加逻辑视图加视图后缀就是我们完整的物理视图,那当大家知道你要跳转的页面的一个完整的路径的时候,那我们是不是就可以干嘛呀,就可以来准确的获取到咱们的逻辑视图了,OK吧啊,就三个拼接之后就是是就是物理视图,那你真不知道什么是逻辑视图,那你就把物理视图写出来,把前缀去掉,把后缀去掉,这不就是逻辑视图吗?对不对。好,OK,这个大家注意啊,好,然后再往下呢,然后咱们在这这个叫做我们当前的一个模板的一个模型,叫做HTML5,也就是说我们现在是以HTML5来作为咱们的视图的,再往下这是我们当前去渲染视图的一个默认的编码是UTF杠八,OK,那这是我们当前spring mvc的配置文件,大家注意这下面的这两个标签啊,大家可以不设置啊,然后这个现在目前咱们还用不到,等到我们用到的时候,咱们再具体的去配置,能听懂吧,这样的啊。
14:30
好。行,那下面呢,咱们就可以来测试一下它的功能了啊。
我来说两句