00:00
啊来我们回顾一下昨天讲的内容,呃,昨天一天呢,我们主要讲的是MVC啊这个框架,然后呢,呃,大概讲了这么几个话题啊,第一个呢,就是啊介介绍了一下这个spring VC啊整个框架它的一个呃特点啊,然后呢,这个框架的一个什么作用啊,第二个呢,就是我们讲了一下request mapping啊,这个注解的一个用法是吧,是比较重要的一个注解,然后第三个点呢,我们讲的是一个rest啊,第四个点呢,我们讲的是如何来处理我们的请求数据啊,这就是我们昨天一天讲的内容啊,挨个来看一下,呃,这个SPAVC啊,整个框架的一个什么特点啊,以及呃,它的这个相关的一些什么啊作用啊,我就不再挨个带着你去看了啊这个东西的话呢,大家下去以后自己去了解,然后呢,你再结合上我们具体讲握的过程中,我们所做的一些案例啊,然后呢,呃,辅助性的啊,给他什么做一个了解,好我们直接来看一下,呃,写的这个hello。
01:00
啊,那么我们来回顾一下,我们如果要使用一个supreme VC啊,去写上一个小的案例啊,比如说我们写的这个hard word,那么我们需要经过如下的几部操作啊,就是你必须要有一个外部工程,然后呢,要加入一些核心的加包啊,那么这个加包呢,都给大家列到这儿了啊,你就挨个往里面去加就行了啊呃,第二个比较重要的就是我们要去配置一个dispatch sum,那么这个呢,也是我们spac中的第一个器啊,就是这个核心控制器,或者说呢,也叫做前端控制器,对吧?这个叫法呢不一样,但是呢,描述的都是同一个东西啊啊那么其实说白了啊,这个家伙呢,它就是一个solve啊,就是一个我们以前学习过的一个solid,所以说在配置的时候呢,诶,大部分的这个配置呢,大家还是能看得懂的,其中呢,啊有两个新的东西,一个是我们的int para啊,一个是我们的load on start up,这两个东西呢,需要给大家额外的强调一下,这个in para就是一个初始化参数啊,就是将来我再去。
02:00
框架这个dispa solid的时候,它会去读取到这个初始化参数,那么这个地方的话,我们主要是来去指向破Mac啊,这个框架的一个核心配置文件的,那么就相当于我在去实例化它的时候,就会把这个4R VC的容器也给它创建出来了啊,这个大家一定要知道啊,然后另外一个呢,这个load on startup,那么这个东西呢,我们昨天给大家强调过,说solve呢,其实有两种创建时机,第一种创建时机呢,就是请求到达以后才会创建,第二种创建时机就是tocad服务器启动的时候就会创建,那么默认情况下,我们都是请求到达以后会被创建的,如果说你想让它在tocad服务器启动的时候就被创建,OK,那么你就需要加上load on stand up,嗯,能明白了吧,这个,然后中间的这个数字呢,我们暂时不用去管它啊,这个的话我也说过,它是一个,呃,配置这个启动的一个优先级的,如果说现在只有这么一个PAR solid,那么其实就没有什么优先级的问题了。
03:00
明白吧,啊,这个数字我们就不用去管了啊,你就直接把它提示出来就可以了啊,那么在这个URL拍成这个地方,我们需要强调一下,配置的是一个斜杠啊,这个可能有同学现在呢还有疑问说这个斜杠到底是什么意思啊,那么今天我们应该就会讲到啊,然后与它相关的一个点,到时候呢,再来给大家去做一个具体的解释,现在的话你还是先按照我们昨天讲的,你就把这个斜杠配到这正常去使用就可以了。啊,OK,那把这个配好以后呢,接下来我们就要去写我们的核心配置文件了,那么在这个核心配置文件里面呢,啊,我们就是写了两个东西,第一个呢,就是我们的主件扫描,因为我们spring VC啊全程都是基于助解来开发的,所以说呢,你必须要有这个组件扫描。第二个呢,我们配了一个诶全新的啊叫做视图解析器,那么它呢,主要就是来帮我们去完成最终响应啊这样的一个过程的,那么这个配法呢,也是呃比较固定的啊,就基本上我们都会这么去写,然后呃,可以改的地方呢,就是这个位置我们是可以啊按照你自己的那个结构啊文件的结构来去改一下的,比如说我可以不叫这个维roses,我可以叫上别的名字啊,也是没有任何问题的,当然你就一定要跟你的工程里面的那个文件夹对应上啊,那么它是可以随便去改的,OK啊,然后接下来的话呢,我们就要去写编写我们的请求处理器啊,请求处理器的话呢,其实就是一个普通类。
04:28
然后呢,你在这个类上面呢,去加上一个ctrler这样的一个注解,注意只能加CTR了,不能加别的,明白吧,你加上别的,它只是一个普通的组件,不会把它当成一个请求处理器来对待。啊,所以说这个大家也要记住了啊,然后呢,呃,在这个请求处理器里面呢,我们就会去处理一个哎请求了,比如说我从客户端发送了一个hello word这样的一个请求,那么我在我的请求助理方法中,首先呢,通过request mapping给他做一个映射,好,那么后面的这个我东西我们暂时可以先不看啊,给他做一个映射,做完映射以后呢,将来你这个请求过来以后,诶,他就能去找到我们对应的方法,那么对应的方法呢,它就会进行执行,执行完以后呢,我返回了一个字符串,而这个字符串呢,它就要结合上我们刚刚写过的视图解析器,帮你解析成一个物理视图,然后呢,再通过转发的方式去往这个位置。
05:23
能明白了吧,OK,那么像这个整合的过程,今天我们在讲解啊,视图我与适中解析器的时候啊,我们会把这个源代码带着大家呢,从头到尾去看一遍,然后你就能明白它底层是怎么去处理的了啊现在呢,你先把这个结果先给他记住了啊呃,那另外一个呢,还是要给大家去做一个强调啊,就是我们昨天没有给大家去说啊,就这个位置,呃,对于我们这个po Mac的配置文件来讲,我们可以再通过in paramo给他去指定,就是比如说你放到你的类路径下面,那么你通过这种方式呢,给他指定一下,它是能找得着的,或者说呢,我们也可以不使用它,那么不使用它的话呢,它会去到默认的一个位置去找,而且那个文件名呢,它也是不能随便去写的,那么它会怎么找呢?注意啊,如果说我不在这个地方去指定,那么它会去往我们的web减ino下面。
06:20
能听懂吧,去往我们的web减音下面去找一个文件,而这个文件的名字叫什么呢?大家注意我们打开来打开这个代码来看一下啊,这个名件,这个文件的名字叫什么呢?就是诶结合上你配置的那个solve name这个名字,然后呢,后面有个小减号啊减so点查没有。明白吧,他会去找这样的一个文件啊,啊等我这个工具打开,然后呢,给大家去说一下啊,来来到这个位置大家来看了哈,就是昨天呢,我们是在这里面做过具体的一个指令的。啊,把这个稍微给大家强调一下,你看到别人这么做的话呢,你要知道是什么意思,我们在这个位置呢,具体指定了,让让他去到我们的类路径下面去找这个文件,能听懂吧,那么假如说我这个位置不指令的话,他肯定是找不着这个文件的,那么他就会去往我们的web减音缝下面,能看懂吧,在外B减音下面找一个什么文件呢?找一个文件的名字叫做什么呀?Sorry的减name就是它这个节点中的这个值啊,就是这个值,然后呢,后面呢,再减上一个solid,点查L,也就是你看好了啊,CTRLC,我拿过来一个配置文件,然后把这个配置文件呢,重新命个名啊。
07:39
好,他要找哪个名字呢?他找的就是我们的,哎,我写一下哈。好,Part没写错吧,Solid,然后呢,就是拿上你这个solid name中的这个名字能听懂吧,拿上这个名字后面呢,有一个夹啊,再加上什么so点查没OK,他就会按照什么呀,默认的规则去查找这个文夹。
08:07
能听懂什么意思了吧,所以说呢,大家以后如果说呃,看到别人的代码里面并没有进行指令的话,哎,那么他肯定是来去找这个默认的文件的。听懂这个意思了吧,啊,但是一般情况下的话呢,我是不建议大家这么去做的,你就给它显示的写到这,然后呢,再给它显示到配置到这儿能明什么了吧?OK,所以说呢,这种情况大家也需要知道一下啊,那这就是我们的1HELLO,然后讲完以后又给大家去说了一下他的一个呃执行流程啊,大概的一个流程呢啊,大家也要知道啊,就是我们在这里面给大家去写过是吧,这是开发hello word的一个过程,然后呢,这就是我们的一个执行流程啊,那么这个执行流程的话,大家必须要能看得懂,而且呢,你自己能把它说了出来,就是你明白它底层诶大概是怎么去做的啊,这个呢,只是一个呃简单版的啊,那么今天的话,我们在这个课程中呢,会给大家去说到一些这个底层相对来说比较,呃,这个这个细致一点的这个执行过程啊,好,所以这个呢,我也不再带着你去看了,你下去以后呢,还是自己把它好好的看一看,然后呢记一记,理解理解。
09:17
啊,一定要自己呢把它说出来。对吧,这样的话呢,才能把这个东西呢,学成你自己的啊来再来看下一个话题,那么下一个话题呢,我们就是哎说了一下这个request market注解,那么其实对于这个注解来讲,我们主要掌握的是什么呢?第一个它所能标注的位置,就是类上面以及方法上面都可以进行标注的,然后呢,我们必须得明确它标到不同位置,它的作用是什么。能听懂吧,哎必须得明确这个的啊,你不能说哎光知道它能标到什么地方,但是呢,你不知道标到每个地方的作用是什么,那是不行的。啊,就是你得知道它的作用啊,啊呃,另外一个呢,我们要了解的就是它能帮我们去映射一个请求,以及我们的请求方式,这两个是最重要的映射请求呢,它就是它什么最本质的一个重要的啊,来帮我们去映射这个请求,然后呢,像这个映射请求方式也是比较重要的一个,因为我们昨天在讲的这个rest里面,其实大家就能发现,我们必须得严格的按照你的请求方式来去区分我具体要调用的方法是哪个,是这样的吧,所以说呢,这个请求方式我们是必须要去使用的,而除了这个之外呢,像我这个请求参数啊,请求呃投啊,哎这些东西了解一下就行了。
10:39
明白了吧,哎,这些东西了解一下就可以了啊,它不是很重要的,中间呢,就是简单给大家去演示了一下,然后呢,你大概知道是什么意思就行了,所以说对于整个这个request mapping注解来讲,我们主要掌握的就是能标注到内上以及方法上,第二个能帮我们映射请求,第三个能帮我们映射请求方式,这就可以了。明白了吧?啊,说出还是比较简单的啊,来,再来往后看,呃,那么呃,在这个request mapping里面呢,我们还提到了一个站位符的URL,对吧,就是带站位符的这个URL,那么其实说白了,这个就是我们的一个rest,然后呢,呃,站位符怎么去写呢?我们在这个request mapping里面通过一个大括号,然后呢,里面呢,你去随便写上一个名字啊,这个名字就是你自己去取的,然后呢,这就是一个站位符了,将来呢,诶,他就能把你具体请求中所对应的这个值啊,给它通过一个pass reb这个注解呢,哎,映射到我们的请求参数中,就相当于我们可以把一个请求URL中的某个什么呀值给它什么,拿到我们的这个方法中来去使用啊,其实这就是我们教会大家的什么第二种传值方式啊,也是我们rise这种风格的一个传值方式。
11:58
明白了吧,好,那么下个话题呢,我们讲的就是这个rest了啊,对于这个整个话题来讲的话呢,呃,我们简单的了解一下它的基本的概念,然后主要的呢,就是去看一下它里面说到的啊四个操作方式的动词,就是我们get post put delete,然后呢,分别对应的四种超重,大家必须要把它记住了啊,而且你要记清楚了,不能记混了,然后我们使用了这个rest风格的这个URL以后呢,我们写出来这个URL后,就变得特别的规范啊,有一定的规律,然后呢,呃,更加容易什么看得懂,而且呢,也方便我们后续的一个什么扩展等等一些啊,昨天呢,也给大家简单的去说过一些它的好处啊,呃,那么其实对于那些东西的话,大家就是主要做一个了解,然后呢,最重要的就是掌握怎么去写这个rest风格的URL,以及怎么去发送我们相应的这四种请求,对吧,那么说到这个发送这四种请求的话,我们就不得。
12:59
这不提到一个诶过滤器是吧,我们要通过这个过滤器呢,来帮我们去做一个请求的转换好,那么什么情况下会做这个请求的转换呢?那么首先你得满足两个条件,哪两个条件呢?第一个条件必须是pass请求,第二个条件必须要能从请求参数中获取一个下划线method的什么请求参数能获取到这个,并且它也是post的,OK,那我就会给他什么做一个请求的转换好,所以说呢,在这个过滤器里面转换完请求以后呢,等你这个请求具体到达你这个PAR solid,或者说后续的这个handle里面以后呢,它的请求方式就是已经被转换以后呢,所以说呢,我们也就相当于实在了发送这四种请求了,明白这个意思了吧,OK,所以呢,这个中间我们给大家去读过它的这个源代码啊,就是下面的这一堆,那么大家应该要能把它什么全都看得懂啊,知道它是怎么去设计的。
13:54
明白了吧,啊,这个的如果说昨天没看的同学,你下去以后呢,还是要把它好好的去看一看的,很重要的啊,那么那我就不再带着你看了哈,我们就直接过了,呃,那么下个话题呢,我们讲了就是处理请求数据啊,就是怎么去获取我们的请求参数,大概呢,讲了几个注解,第一个呢,比较重要,叫做requestper来获取我们的请求参数,在使用的时候呢,我们可以使用这个注解来去映射一个请求参数到我们的方法的行参中啊,然后如果说诶有一些呢,你是想设置为不是必须的,那么你可以使用一个require把它设置为false,然后呢,如果说你想呃,在这个获取不到请求参数的情况下啊,让它有一个默认值,那么只可以使用default value来给它设置一个默认值啊,这个都还记得吧,应该。
14:48
记不记得啊,应该没问题的啊啊,那么呃,这个request para是我们用的最多的一个注解,就是来获取请求参数的。好,下面讲的这个request hier以及我们讲的这个cookie value用法呢,跟我们第一个注解的用法都是一样的,只不过这个是来获取我们的请求头信息啊,这个是来获取我们的cookie信息,明白了吧,你只要记住每个注解获取的是什么数据就可以了,那么具体使用的话呢,都是一样的。
15:17
啊呃,然后呃,又讲了一个比较重要一点的,就是我们的使用po JO啊,作为我们的这个参数来去使用,那么也给大家分析过了,假如说你这个请求参数比较多的情况下,那么我们就不建议大家呢,在这个请求处理方法中去定义啊,多个参数啊,来去接收这个请求参数啊,所以说呢,我们就希望能不能把这个多个请求参数呢,直接给它封装到一个具体的po对象中啊,那么其实它也是支持我们的,而且呢,他还支持这个G点的这种方式啊,昨天给大家写了一个案例,应该都还记得是吧?啊,我们通过那个案例呢,也就能演示出来,他确实是可以啊,把这个请求参数呢,直接封装到一个poo的对象中啊,并且呢,还支持我们的起点方式,但是呢啊,我们必须得有一个前提啊,就是你的那个请求参数名呢啊,必须要跟我的属性名是一致的,明白了吧,如果跟属性名不一致,那么它是没有办法帮你做映射的啊,这一点大家必须要记住。
16:17
啊,那么这样的话呢,我们就不需要说啊,再去写出多个这个。擎参来了,而是这直接定义一个对象,那么它将来就能把这个啊,把我们这个所有的请求参数呢,直接映射到这个对象中了啊,所以说这种方式呢,大家必须要学会啊,我们以后呢,用的也是比较多的啊啊然后最后一个呢,我们讲了一下啊,使用这个原生的solid API啊,作为我们的这个参数啊,那么就是给大家去说过,如果说你想在通Mac中去使用到我们原生的solid API,像这个request response3省等等一些,那么你可以直接在我们方法的形态中把它定义出来,然后就可以直接去使用了啊,那么具体的这个原理的话呢,首先也简单给大家去解释过啊,我再来说上一次就是,呃,这是我们的po mvc啊,就是提供给我们这个用户来使用的,就是MVC的一个什么顶层实现啊,底层就是啊,实是提供给我们这个用户直接去用的啊,那么其实它这个底层是什么东西呢?底层其实就是这个MVC。
17:22
那哎,对我们这个Java web的一个封装啊,对JA web的一个封装,虽然说我们看的是用了这个spring Mac做了各种各样的操作,但是最终的话呢,它还是要去转化成我们最原始的Java web的一个操作,因此在最底层呢,它肯定是有我们Java web相关的一些对象的,就是我们这个solid相关的一些对象的,像这个request response都是在底层有的,那么我们只需要在我们这个请求处理方法中去把这个声明出来,将来我去调用你这个请求处理方法的时候,我会先去分析一下你这个方法需要哪些参数,然后呢,我会在下面呢给他准备好,那么相当于就是把我最底层的这个原生对象呢给你啊,传到你这个使用的这个地方,然后呢,你就可以直接去使用它了。
18:07
明白这个过程了吧?啊,所以说你一定要明白啊,就是它底层的就是我们的展板啊,只不过是对它做了一个全新的封装而已,OK啊,那么这就是我们的使用原生的solid API,然后呢,在这个里面的话呢,我们也不需要说把它们都记住啊,昨天也跟大家说了,你只需要记住头两个就行了,剩下的这两个我们几乎不会用,剩下的这几个呢,我们都是可以啊,由他们两个来获取到的。能明白吧啊,所以说呢,你只要记住request跟response就可以了啊,这个session的话,你也简单记一记吧,如果说有些时候你想直接使用session,那么就直接定义一个三审就行了啊,不必要说我先定一个request,再去盖三省啊,那就又麻烦一点了,你就直接去声明好一个三省来去使用啊,所以说你就把这三个记住吧。不多吧,啊,把这三个记住啊,像下面这些硫什么的,哎,你就直接通过他们来获取就行了,好吧?啊这样一排除的话也就没什么东西了,听懂了吧?OK啊,呃,那这就是我们昨天给大家讲的啊内容,然后其实呢啊,我不知道大家有没有下去以后自己总结过啊,昨天一天我们都在研究什么呀,我们都在研究请求,然后呢,响应这个里面的谁呀?是不是请求啊,你来想想什么request money映射请求,什么获取请求参数,是不是一天都围绕着这个请求阶段来研究啊,对吧?而对于响应的话,我们都是比较统一的去往一个success页面。
19:42
对吧?OK,所以说今天的话呢,我们主要就是围绕着响应来去研究啊,我得教会你请求你知道怎么处理了,那你将来的响应你也得要会处理,所以说呢,今天我们主要的话题就是围绕着响应啊这个话题来去给大家讲解明白了吧,OK,好,那我们就先回到这了。
我来说两句