00:00
好,接下来我们就来啊,具体开发一个我们的OK,那这个怎么开发呢?大家注意,现在呢,其实我就想去完成一个登录的这个效果吧,啊对吧,那我将来的话,我会从我的浏览器端呢,发送一个登录的请求到你的这个toca的服务器里面,那么在他CA的服务器里面,我是不是就得有一个处理这个登录的一个soft啊。对吧,就得通过这个solid略的去处理你这个登录的这个请求,OK,那我们就怎么写呢?我们就在我们的这个web应用里面啊,我们就去写一个什么呀,你看看哈,我去用一个什么东西啊,用一个class啊,那么取一个包啊,包名的话,我们就要什么com点艾硅谷啊呀,比如说呢,现在我们讲的是呃,登录吧,可以吧,那么登录的什么呀,一个solid啊,就是这个包,那么这里面的话,我们写的就是loging log solid,我取一个什么类名,看明白了吧,OK,那么大家注意,呃,现在呢,我写好的这个类呢,就是我们的一个登录的消费,好稍等啊,我把字体呢也给大家去调一下,哎哟,这个好像收不了是吧。
01:19
第一个第一个第一个第一个最后一个是吧,出题啊调成18吧,OK。那有点大是吧,大不大小一点哈,要不写不了几行就满了是吧。十。16吧,啊,稍微少一点啊,OK啊这就行了啊来大家注意,那这就是我们的,就是处理我们。好,处理我们这个登录请求的一个什么呀,Solve好,那么刚才有说过这个so呢,它是这个上公司制定的,制定的什么呀?哎,制定的这个标准能理解吧,就是一系列的接口啊,然后呢,呃,Tom k,也就是我们的这个web,哎,Web应用服务器好也叫做什么呀,So容器能理解吧,它去什么呀,它实现了什么呀?哎,这些标准能理解什么意思吗?OK,那么也就意味着我们要去写这个solve的话,因为现在我用的就是toca,那我是不是得按照toca的这个标准去写啊,嗯,对不对,按照康这个时现去写,那么他开帮我们提供了一个什么东西呢?他帮我们提供了一个叫做HTTPS。
02:51
提供了一个http solve,那么这个就是我们要去使用的,怎么去用它呢?那你就让你自己的这个logging solve么去继承一个叫做http solve就可以了,那么大家来想一想,这个东西在哪啊?
03:08
在哪啊,注意,我们加上了他的环境,大家还记得吧?记不记得这个东西啊,好在这里面的我们去找一下,有一个sorry的减API点炸,看到没有,是他开的下面的吧,OK,在这里面的话,我们就能看到一个Java X,然后呢,HTTP里面你看是不是有一个htp so加class,所以说他帮我们提供了具体的一个实现,那么我们就接着什么接着它的这个实现来去写我们自己的处理过程就可以了。因此现在你们要理解的就是toca,我们使用它的目的就是因为它既是一个服务器,又是一个solid的一个什么实现的一个什么啊,就是solid的一个标准的一个实现,听明白了吧,OK,好,那么进成的它以后呢,大家注意了哈,来导个包,导包的话,注意我们导的是加va X so.http导完包以后呢,诶,那我们看一下这个就写好了,看明白了没有,但是你写好这个东西的话呢,还不知道咋处理是不是啊。
04:17
你说那我咋处理啊,大家注意,其实在我们这个http solve里面呢,我们有这么几个方法来给大家去说一下,它里面的常用的方法有这么几个,一个是do get,一个是do post,能查到是干嘛的吗?啊,大家注意这两个呢,就是分别来处理一个get的请求,Post请求,而这个service又是干嘛的呢?Service来是对这两个方法进行调度的啊,这个给大家先来解释啊,就常用的方法,首先这个do get的作用是什么呢?它是来处理我们处理客户端的这个get请求,Get方式的请求,好,那么这个do post呢,它是处理客户端的post方式的请求,能理解这个意思吧,OK,那么大家注意了啊,因为我们这个。
05:17
Guide跟do bos是最常用的方法,也就意味着将来我从我的这个大家注意哈,从我的浏览器端我会发送一个请求过来,那么这个请求过来以后呢,就会进入到我的这个login solid里面,这是我的弹,看什么能理解吧,进入到我这个login solid里面,如果你这个请求是一个get请求,那么它进到这里面以后,执行一个do get方法。听明白了吗?如果你是一个pass的请求,OK,他进来以后执行的是一个do pass的方法。这个是人家帮我们制定好的一个标准,也就意味着我们不需要去做一些特殊的指定啊,或者怎么着的,不需要你直接把这个方法写出来就行了,好,那我们就来把这个方法来给大家进行一个重写,你看哈,重写一个do get有没有?
06:08
有吧,来,这是我们重写的do get,好,重写一个do post。来,Do past。有没有有吧,哎,那就重写出来了,看到这个了吧,OK,那么是这两个方法,那么现在我们说你研究一个问题,那你怎么知道你将来要发送的是一个盖的请求还是P请求啊,对吧?比如说就对于登录的这个请求来讲啊,你说我在这个方法里面处理好呢?还是这个方法里面处理好啊。你知道吗?你不清楚人家到底是干这个或者是post吧,那么像这种情况下,大家注意了,我们是不会去写上两个处理的,就是我只会写一个处理。对吧,那我就可以怎么做了呢?我不管你是get请求还是post请求,我只需要在这两个方法的任意一个方法里面去写一个。
07:04
实现就可以了,比如说我就在这个do get里面啊,我就在do do pass里面吧,对吧,将来呢,我在do post里面去做什么呀,注意做登录功能的一个实现好,那么这样的话,假如我就是POS请求过来的,那它是不是进入到这个方法了,那如果我是概念请求过来的呢,它就进入到这个方法了,那这里面我是没有写过具体实现的吧,那我就可以怎么做呢?哎,对了,你就什么呀,Do post呗,然后你do post的时候注意了哈,你看它需要有两个参数,而这两个参数在这个方法里面是不是也有啊,那么你只需要把这两个参数来传到我的这个方法里面,就相当于我是不是也有也能用你这个登录功能的实现了,嗯,明白这个意思了吧,所以说呢,我们只需要这么来写就行了,当然哈,你在这里面写具体的实现,你让这个方法去调它,是不是也是一个道理啊,OK,好,这个大家需要知道,那么这个知道了以后呢,我们再来给大家去说一下这个service。
08:04
啊,再来说一下service它的这个方法是干嘛的啊诸位,那我们就要去看人家的这个源代码的啊,我们需要把这个源码给他加一下,源码的话呢,给大家发下去的,还记得在哪吗?哎,就是在我们的呃,资料里面有一个他们看的是不是有这个源代码啊,来加进去打开好,我们就能看到人家的源代码了啊,那我们来看现在呢,我要去看它里面这个do get啊,我去看到这个副类,你看是不是这个HTTPS的一个什么do get啊。对吧,然后呢,这里面有读干,当然你也能找到它的什么do post啊,为了能看的方便一点,我们把谁打开啊,把这个after曼打开,大家来看这个里面不就是它具体的这个方法吗?你看啊,有这个什么do post有没有,有吧,Do get有没有,有吧?其中有一个service,你看到没有,看到了吧?OK,那我就进入到service里面,我们来看一看,这就是我们的service方法,然后你会发现这个service方法里面它会怎么着啊,首先你看它会获取到一个请求方式啊,这个可能大家看不懂,但是我告诉你这是来获取一个请求方式的,说白了获取到的就是什么get或者是什么呀post,那么它会根据不同的请求方式去调用不同的方法,你看如果你是一个get请求,那我就去调用你的do get,如果你是一个,比如说哎,Post请求,那我就调用你的do post,你看到没有。
09:37
那么也就意味着我们能理解的就是什么呀?Service方法是干嘛的呀?它是什么呀?根据具体的请求方式去调用什么呀?哎,对应的什么呀,Do get呀,或者是什么呀?哎,读什么post的方法是不是这样子的?OK,那我来问大家,那我其实可以在我的logging so里面直接去重写service,是不是就更简单了?
10:12
能理解这个吗?因为在负类里面来讲,这个方法它是要去调用do get,以及去调用我们这个do post的,是不是负类里面就是它要去调用do get或者是do post,那么我直接把这个方法一重写了,相当于我就把负类的方法是覆盖了,那么所有的请求过来以后,你都进入到service,我也不用再去写这样的代码。能理解吗?所以说呢,我们就有两种方式,要么呢,你就重写这两个方法,完成一个相互的调用,要么呢,诶,你就重写一个3万次方法就可以了,明白了吧?哎,那么这个写法的话,比如说今天嘛,那我们就啊先把这个注释掉,我们就先使用一个谁呀,先使用一个do get或者是do pass吧。明白了吗?哎,就这使用它了啊好,那么这个其实我们就写好了,写好以后的话呢,大家注意了哈,我们在这里面啊,登录功能就实现,你看哈,我们在这里面呢,我去输出一句话啊,比如说嗯,登录请求过来了,OK,完了我输出一句话能理解吧,我们先能看到这个请求过来以后,他还能给我们打一这句话来啊,那你说我这个东西写好了,写好以后怎么用呢?
11:27
开发好了怎么用啊,注意我们就需要回到我们的这个地方,什么地方呢,外点长秒中。看到了吧,哎,Web点叉秒中,在这个web点叉L中呢,我们需要做什么事啊,哎,这是一个XL配置文件啊,我们把这一堆注意了哈,我们看到就是从display到这个welcome这一堆呢,我不想用,就是这个东西其实没有用啊,你可以把它直接删掉。理解吧,哎,然后在这里面呢,我们需要做一个这样的配置,注意我们要什么样配置我们的logging solveage,因为什么呢?因为你现在写这个loging so的目的是什么呀?是不是要去处理我们的登录请求啊,但是这是你自己的想法,慷快的知道吗?
12:14
知不知道吗?他们看知道你这个是要处理登录请求的吗?不知道,所以说你要做什么事啊同学们,诶配置S说白了就是配置什么呀,配置我们的login solid与什么呀,与处理的请求的一个什么呀,映射。好,我把这个再给大家解释一下,这是我的客户端浏览器端,这是我的服务器端,客户端呢,我将来可能会发送各种各样的请求过来吧,比如说有登录的,有注册的,有删除的,有添加的,那么在我的后台里面呢,我就要去对应我各种各样的一个什么骚吧,对吧?那么你怎么知道登录请求要找我的登录的骚呀,注册请求要找我的注册的骚呀,我是不是提前让comca知道这个骚能处理一个登录的请求,这个四能处理一个注册的请求,那么将来等你登录的请求过来以后,那我是不是直接去找他就行了呀,对吧?你得把这个关系告诉他们孩子,你要不告诉他,他做不了的啊。A此这个位置我们就是来配置他能处理什么请求,给他做个映射,怎么配呢?大家注意啊,我们需要通过一个solid,这里面的话呢,我们需要写一个solid name需要写一个。
13:37
So class还需要配合一个so麦,你看这是不是那个麦映射的意思啊,对吧,再写一个so name,再写一个URL拍给大家解释啊,比如说将来我从我的客户端理解什么意思吗?从我的客户端,也就是浏览器端,我要干什么事儿啊,发送一个登录的请求,假如说客户端的登录请求好它是这个样子的,叫做HTTP冒号双斜下local host,然后呢,8888,那么首先我是不是先访问到你整个的这个应用啊。
14:23
对不对,在这个应用下面,你是才能找到这个loging solid,因此我们将来的请求是这个样子的啊,Local host8888,先访问到WEB01,然后呢,在WEB01下面呢,我就要访问一个login请求,比如说这就是我客户端我的一个请求,那么其实对于我的这个web点叉L来讲,它只关心这个斜杠loging,因为前面的这一堆其实是固定的,能理解这个意思吧,所以说呢,哎,那比方说我将来呢,就想让我的这个login solid去处理login请求,那么你在URL拍成里面就写上斜杠login。
15:06
将来这个请求过来以后呢,他会根据什么呀?根据首先你的请求客户端的请求是谁呀?是他,那么他来了以后呢,会到你的URL pyon做一个匹配,如果匹配上以后,他会去找solid name,而这个solid name我们可以随便写,比如说我就写成小写的lock solid,那么他找到这个名字以后干什么事呢?注意了,他要到solid这个节点里面去找谁啊,去找这个solid name。那么找的标准是什么呢?就是你的名字必须要跟我当前的名字是一样,比如说我把它也写成login solid,这样的话呢,就是请求来了,我能找到它,因为它在同一个节点里面肯定是能找得到的吧,然后呢,再拿上这个名字呢,到每一个so这个节点里面去找一个名字跟它一样的。
16:00
那么是不是找到这个solid了,从而在这个solid class里面,我就可以把我的login solid的全类名大家注意拷贝一下,往这个地方一放,看到了吗?那么最终呢,它就能让你的这个请求就进入到这个log,所以说他查找的这个过程是什么样子的呢?给大家解释一下啊,就是客户端请求匹配的过程,什么过程呢?就是好先与什么呀,哎与什么呀,与我们的URL patternon进行匹配,明白了吗?然后呢,匹配到以后,匹配到以后再与谁呀,哎,再找到,再找到我们的就是这个呃,So内。
17:00
好,就我写的详细一点哈,先与谁啊,与这个solid mapping好中档大家都跟上哈,中的谁啊,URL pyon进行匹配,匹配到以后呢,再找到我们some little mapping中的好,再找到中的name,是不是找到这个值了,能明白了吗?OK,好,中的sorry的内容啊的值好再拿上哎,该值到谁呀?到我们的三类节点中啊,匹配什么呀,匹配相同的什么呀,一个solve name能明白什么意思吗?就是相当于我拿上这个名字,我到这个so,到每一个so节点里面去找。
18:01
找一个与这个名字相同的一个骚name,是不是找到它了对吧?找到它以后呢?进而而进而什么呀,找到我们的so class能明白这个意思吗?那你说我都找到这个家伙了,知不知道要去执行我的这个了啊?知道吧,那么大家想一下它后面的过程会怎么处理啊?怎么处理啊,后面的过程咋处理啊啊接下来注意了哈,后续的过程是什么呀,就是通过反射的方式,肯定得反射了吗?对吧,知道什么反射吗?创建我们login solid的实力。啊,就是谁来创建的呀,是我们创建的吗?他们看一下。
19:04
对吧,诶,他们看的容器啊,啊,就是我们他们看对吧,通过反射的方式创建好你的这个对象的实例,那创建好实例以后呢,就什么根据具体的请求方式调用对应的do get或者是或者是什么呀,Do past。方法能明白了吗?所以说呢,我这个过程就是告诉你了一个客户端的请求过来以后,比如说这个请求过来以后,他是怎么样进入到我们最后的这个处理方法中的,这个流程你们必须得知道。对吧,这个不是说你随便写一写就行的,它肯定是有一定的流程去走的,能明白了吗?现在OK,好,那么把这个写好以后,其实我们这就配好了,配好以后呢,接下来我们要做什么事呀,接下来要做的事就是什么呀,你是不是得把你的这个整个的应用是不是交给这个Tom cat呀,他才能给你提供服务吧,来所以呢,接下来这个操作是这么做的啊,大家注意了,怎么做呢?选中我们的WEB01,然后呢,有一个run as,看到没有,以前我们是什么Java application吧,不要选它了,现在我们用的是run on server,在server上给它启动来run on server好,Combo会选中我们的com k7啊,那么们选中它就行了,然后呢,下一步好,你看一下这个位置呢,会显示出来你要部署的这个WEB01,看明白没有,然后呢,再点击finish就行了,那么toca它就会帮你启动,并且把我们当前写好的这个应用呢,就交给toca帮我们服务了,理解吧,那么启动以后它默认。
20:45
到时候会访问一个页面啊,就是启动以后,你看到这个404的话呢,你不要害怕啊,这个是正常现象,理解吧,这个是正常现象,这个后面的话,我们会给大家去解决这个问题的,暂时呢,我们先不用去管那么多,暂时你就按照我们刚才分析的那个过程,你看好了啊,我是不是要从客户端发送这样的一个请求啊,对不对?哎,那我就发送一个B01LOG,你看一下他现在访问的是WEB01,后面不是有一个log吗?是不是这个请求啊,我从客户端给你发出去来,注意回车。
21:22
好,大家看这个cons,诶这是一个什么请求啊,这是一个读干的请求是吧?哎,我们那我们这个地方是不是写的有点问题啊,诶没问题啊,我是发生发生了什么do get吧,Get的话呢,它会走到了这个do里面,那这个啊打印我这个工具,哎呀,刚才是不是没看到啊,现在是有了对吧,你看了哈啊,我把这个清空一下,重新来给你访问一下啊,因为我这个工具有点问题,现在啊回车等一下就有了哈。啊,还不出来啊啊,这工具有问题了,正正常一下就出来了是吧?嗯,那这样吧,我们从这个浏览器来访问一次吧,啊log house的8888,然后呢,外宝零幺我去访问。
22:23
那就你看两次,你看这刚才肯定这个地方访问了一次嘛,对吧,来你看这个东西,你看是不是打印出来了。看到没有对吧,诶这个就打印出来了,说明什么呀,说明现在我们已经成功的从客户端与这个服务器端把他们给什么联系起来,能进行什么交互了,理解了吧,OK,那么现在我问大家一个问题啊,你说谁是客户端,谁是服务器端啊。浏览器,浏览器是客户端明白吧,服务器端呢?谁呀他态的,所以说大家注意哈,你一定要想明白,我当前的这个计算机,它充当的两个角色,一个是客户端的角色,一个是服务器端的角色,能明白这个意思吗?OK,那么既然我提供了这个服务了,那么其实大家也是能来访问我的,能明白什么意思吗?比如说你要写什么呢?来现在你们打开浏览器,你们不要写local host,明白吧,你们把local host呢换成我的IP地址,我的IP地址是多少呢?我帮你看一下啊啊,我的IP地址是192.168.26.56啊,那就是什么写程你看哈,来先看先来看我哈,幺九二点幺六八点。
23:50
26.56是不是OK,那你就把那个local host呢换成它,换成它以后呢,后面的你访问的是我的端口号,明白吧,访问了我的主机,访问了我的他cat啊,访问了我这个应用,发送了这个请求,你看我回撤一下,注意他这边也能访还到的好,我来清空一下,然后接下来我不做任何操作,你们来访问一下啊,你们只需要输入这样的一个请求就可以啊,就是这个请求能看明白吧,然后呢,你们试着访问一下,其实我这个地方就是打印了能访问到吧,哎,只不过你们访问完了以后呢,我这个页面是一个空白的,为什么是空白的呢?因为我的后续的处理的话,就只是做了一个输出,我是没有做任何响应啊,能理解吧,OK,那么我们后续的话呢,就是要给大家去啊,做一个这个响应啊,但是呢,现在呢,我们就暂时先不做了,明白了吧,OK好,那么这节课的话,主要是教会了大家。
24:50
诶,怎么去开发一个solid,那么再往后做的话,我们就是要在这个solid里面要去处理我们登录的请求了,就是我们要把业务给他加进去了,现在我们是没有这个处理业务啊,对吧?诶那么下午我们要把业务加进来,完成一个具体的一个登录过程,听懂了吗?OK。
25:15
嗯。
我来说两句