00:00
我们来看一下请求的转发,那什么是请求转发呀?什么是请求的转发?哎,先把这个概念和意思说一下,请求转发是指服务器收到请求后。服务器收到请求后,那么从一个资源跳转到另一个服务器资源。到什么呢?这个操作叫请求转发,就是从一个资源跳到,呃,这里不是另一个服务器的资源,是跳到另一个资源啊服务器还党内服务器是吧?还党内服务器跳到另一个资源的操作叫求转发。好,我给你演示一下,这有啥用啊,就比如说这边是客户端。浏览器,那么这边是服务器。
01:08
OK,就是那cat啊,然后这个服务器上呢,大家注意看,它有好多个资源共同完成一个功能啊,那么比如说。他有一个一。程序啊,还有一个程序。好。领导几啊程序好了,那么现在这两个程序啊,他们是共同完成一个完整功能的,我们说。在那看一下哈。那么。一和二可以共同完整一个完整的业务功能,业务功能哎,但是呢,他们这些业务的执行是有顺序的,你得先执行SELECT1,再执行SELECT2才行,那怎么办?那用户一开始上来的时候,他是不是得请求APP冒号双斜线IP地址,端口号,工程名加上so咿呀。
02:32
这能理解吧,好,这个时候呢,他就会把这个请求发给他。然后他就会干嘛,他就会先看看。诶,这个有没有带请求参数是吧。就这个东西特别像什么东西呢?就比如说咱们去某个这个呃部门某个平台去办理某些业务,然后这个业务呢,有多个柜台一起完成。
03:02
能理解吧,然后呢,这个相当于是柜台一,然后你来到这个柜台一的时候,你不是办业务吗?他就看你有没有带材料,材料就是请求参数,能理解吧,啊办事的材料是吧。好,然后呢,他觉得材料没有问题,然后就处理这个业务,处理这个业务以后怎么办呢?处理完了就盖个章是吧,处理完业务加盖。一个张。因为这个章是不是还得带到下面柜台去给人家看呢,人家看你没有这个柜台一还没有办,没有这个章,他就让你打回去,去前面放是吧,所以你要加个章好,然后第三你第一次来这个平台啊,办业务你也不认识路,接下来你是不是要问人怎么走了,就是我办完了,诶我下步去哪了是吧,问路是吧,问路吧,说啊怎么走是吧,好了,那么他就告诉你,告诉你完之后啊,你知道路了,你是不是就朝柜台上走去了是吧?啊,那就。
04:07
走到select啊,就柜台啊去了是吧,好,这是咱们第一个select他要干的事情,然后在SELECT2里面呢,这又是一个柜台,那这个柜台他会干嘛啊,他会干诶有没有带材料啊,他是不是也要写他有没有带材料,你要把材料给他还是一样啊,就是获取请求参数,检查材料是吧。查看材料对吧?嗯,查看到材料以后,他还会看,诶你这个业务一有没有办完呢,就是检查有没有柜台一的章是吧?啊这个柜台一呢,就你也可以理解为就收敛的一了啊。一的章对吧,诶,结果他发现哦,前面那个柜台也完了,这材料也没啥问题,那我也可些办法能理解吧,哎,那么就处理自己的业务,哎,他的业务处理完了以后,整个业务就算完成了。
05:11
就算完成了,哎,然后这个时候大家看啊,程序的这个流转的顺序是先访问了它,然后从这个SELECT1自动的流转到了S2。大家记住啊,从S1到S2,这个就叫求转发。到SELECT2的操作叫请求转发,知道啥意思了吧,哎,然后他过去以后呢,他会把整个过程,诶,把数据都给你带过来,他还会经过这个一。啊,经过一但是经过S1之后,一般这里面已经什么都不干了啊好,最终呢,就是用户收到最终的结果,就这啊这个就是请求的转发,这就是请求转发。
06:11
好OK,这个呢,咱们了解一下。好,那现在按照这个效果的话,我用程序啊,给你演示一下这个效果哈,那么对于咱们这个效果来说,是不是需要两个程序啊啊,我现在给你准备两个啊,咱们在上面咱们扭一下。那个一啊,来记成HP。诶,去那么远干啥好,我写一个get方法重改一下OK啊,然后呢,我去配置一下它的访问地址。其实很简单,是不是复制改改啊啊,咱们说这个是一就完了啊,复制类名111列名首字母改消息完了,那么咱们还需要一个serve啊,我看能不能复制啊啊好像可以。
07:16
OK,有了吧之类的啊,那这个呢,我们也来复制一下。走,这个都改成二就完事了。好,现在呢,大家注意看啊,服务器这边两个类咱们是不是准备好了,那现在我们来看看这里面它需要干啥,一上来它需要检查请求的参数吧,是吧,我们来一里面来看一下。获取启动参数怎么写?Re Q点get para还还记得吧,我就暂定啊,啊不对,暂定这个参数叫舆论链吧,啊,咱们就说获取请求的参数也就是半射的产量是吧?啊查看好了,那么我们打印一下。
08:16
在一柜台。一中查看什么什么呢啊参数或者是材料是吧。哎,这个呢,是多少呢,加上啊是usual name do。就他然后呢,这个时候啊,我就打印出来了啊,然后呢,他办完之后要干啥。他是不是加盖一个章,而且这个章是不是还得带到柜台上去看呢,这时候怎么办呢?我们使用语数据啊,就是什么呢,给。
09:01
材料盖一个章,并。传递到二柜台啊,去查看,那这时候怎么办呢?你要把这个数据带到某个地方怎么办?request.set to。大家想想,咱们昨天是不是讲过那个select content也有这个方法,它是不是保存好了以后在其他的也可以看到,是吧?那这个request它也有这个方法,看见了吗?这个方法也可以把数据带到其他地方好。大家注意看啊,那这个呢,咱们就叫做K吧,是吧,这个值呢,咱们就写成呃柜台。一的张。啊,就直接一点是吧,他盖了个章,然后接下来呢,他一看哦,业务办好了,他是不是应该问一下我下一步应该去哪是吧,问路。
10:03
是吧,啊。柜台二怎么走?能理解吧?他怎么问呢?他开始写代码的get request dispat。这是啥?快是不是请求是吧,你得翻译一下请求啊,然后pattern呢。这是不是,这是不是转发,诶怎么没看到啊,把这个也拿出来了,这是不是调度啊,就问路嘛,是吧,哎,我应该去哪呀,我怎么走反呀,看到了吧,哎,然后这里面写上什么,写上就是SL啊这个是不是柜台二呀,你问他呀,那这个路径怎么走对吧,他就会告诉你。得到一个结果就转发嘛,好,那么大家注意一下哈,这个请求转发里面这个东西它怎么写,大家记住啊,请求转发。
11:05
必须要以斜杠打头。啊,必须要以斜杠打头,那么斜杠表示地址为HTP冒号双斜线IP地址。端口号加上工程名,端口ipd斜杠就表示到这个地址了,斜杠咱们昨天是不是也讲过,知道它吧,然后注意啊,映射到ideal代码的web目录,还记得昨天是不是那是假的。昨天就这么讲了嘛,他不就映射到这个web这个目录嘛,是吧,好,那现在后面一般呢,就写上你的这个资源了路径了,哎,咱们是不是要去这个SO2呀,对吧,那就把它写上,他就得到这个路径,那现在你得到这个结果以后你怎么办?那告诉你答案呢,你是不是应该走向。
12:07
奥拉啊,也就是。柜台啊,没错吧,怎么走啊,request.forward forward啥意思,是不是前进的意思,但你英语好一点,就是要前进嘛,对吧,是不是前进向前呢,你就向前走了,然后这里呢,哎呀,它会自动的编译,看见吗?来这里呢,就是IEQ和绿色棒,好,这咱知道一下。来指导一下,这就向前走好了,那么自此呢,他就来到柜台二,那柜台二这边要干啥呢?给他20干啥?是不是也要看这个请求参数啊,对吧,那请求参数怎么办呢。别着急,跟柜台一的干的事情是一样的,他也要看请求参数,只不过我在这里说啊,啊,看见了吗?啊,除了看材料以外,他还要干啥呀?对,查看柜台一是否有盖章啊,对吧?哎,怎么看呢?来request。
13:18
点get啊,错误表看见了吧啊,一个是往里面保存数据,一个什么从里面获取数据啊,记住啊,这个P1定要相同,这个P1定要相同,这边是不是写的P呀,这边如果写P1,这边是不是写P1呀?诶。T是吧,我这写T看懂了吧,就两边要一致就行了,好,然后呢,我在这里打印一下。好,咱们说什么东西呢?哎,柜台一是否有张加上T就完事了,然后他一看,哦,张岩有怎么办呢?他是不是处理自己的业务了,处理自己的业务,那我就打印一句话吧,好吧,咱们说来的啊,处理自己的业务完事了。
14:15
好完事了,好,现在代码呢,咱们就写完了,咱们来看一定东西,就是大家想想啊,代码虽然写完了,那我现在是怎么个请求法呀,我怎么访问这个东西啊,我必须大家注意看看哈,必须要从浏览器访问,看见了吗?流程是这样子的,然后访问谁是防式类的一啊好,那我重新部署一下那个生肖啊,部署你去生肖吧啊。啊,部署成功会有打印啊,成功了以后咱们访问谁是不是练的一啊。看见了吗?交回车看控制台打印,他一开始哦,我没有传参数,这个参数是不是空啊,还没传来,我先清了再来一次,那这边怎么传参数呢?问号后面是参数,还记得吗?参数是不是有点累吗?这W了吧?来,再次向回车请看。
15:13
哎呀,我是不是缓存了来这是不是有啊usual啊少了个啊看见吗?单挑回撤我再先清一下啊。再敲回车啊,他在他是不是先进入柜台一啊,柜台一他就查看这个材料呗,然后查看了材料以后呢,他自己就盖了一个章,这个数据啊就会随着re或者对象啊传到里面去啊,然后呢,这边业务办好了以后,他就开始问路对吧?就开始问路,问完路之后走到这个对象怎么向前走,走了以后你看这里是不是到了柜台二,柜台二这边也是查看这个材料啊,对吧?查看完材料一看一样哦,然后就看看柜台一有没有章,这是不是有章啊好,然后开始处理自己的业。
16:08
看见了吧,这个就是请求转发的操作。啊,这就是请求转发,哎,这个操作好给大家了解一下,那现在这个效果呢,我们已经演示出来了,那一般这个请求转发它有什么特点呢?我们来看一些细节有什么特点,首先大家注意看,从这个图当中,类一它执行了,类二是不是也执行了,但是你想想地址有变吗?上面这个地址还是SELECT1的地址可以了吗?首先第一点。咱们说一下啊,请求转发的特点。来把这个拿掉啊。黑色,咱们先看第一。
17:04
好,第一是什么东西呢?呃,这个浏览器地址栏没有变化,没错吧,第二啊,他们是一次请求,记住啊,请求转发是不是一次请求,虽然你访问了两个资源,但是对于客户端通服务器而言,只有一进一出就是一次请求,理解吧,啊好,所以第三他们共享率或水域中的数据。啥意思,这个能听懂吗?你想一想,我在一里面,我把数据保存到这个request的对象中,对吧,看见吧,然后我又把这个录的对象是不是传到这个S去使用了,看见了吗?我把这个东西传进去了,然后这边这个的对象呢,就那边传过来的,所以你这个艺数据是不是一样。
18:07
看见了吧,所以连他们的请求参数都一样,看见吗?嗯,OK,好,第四。可以。转发到web-INF目录下,就是大家注意看啊,为什么单独说它呢?因为这个目录有些特殊,怎么个特殊法呢?注意看啊。我现在把这个放到这里面来。注意看,我再重新部署一下,你现在用浏览器能访问到它吗?注意看啊,我们说这个工程名是不是映射到web web目录好,到了web目录以后,里面是不是有web。对,然后这个web音符还得敲什么,是不是敲这个点HTML啊。
19:03
他不让你访问,看见了吗?其实文件其实真实存在,但你就是访问不了,你怎么样都可以访问呢,你可以使用这个请求转发,它可以进来转发是可以返回到这里面来的,但浏览器不行。注意看,那如果说请求转发可以的话,我这个地址咋写。啊,我这个地址咋咋写对大家注意看啊,我们斜杠是表是到工程名映射到代码的web的目录啊,那接下来里面是不是当符呀,我么in符下form.h加能理解吧,好就这个啊,就这个好。那这个时候就可以了,咱们来重新部署一下。好,那现在我访问这个三一的时候,你就可以看见那个表达是不是可以进来了,就不这样,请求转发可以,那我们又要问了,那请求转发能不能访问,哎呀,外面工程的资源呢,是否可以访问。
20:18
工程以外的资源,比如说我跳到百度去行不行?我跳百度行不行,冒号双斜线3W点百度点com对吧,这是百度的地址吧,地址是没写错的哈,我重新部署一次,这个时候再来看我敲回车。他是不是出不去呀,他告诉你404为什么对,你看到了吗?你给的这个地址,他其实直接就放到当前工程下去访问了,看见吗。他根本就不允许你出战。请求转发是出不了三整个自己的那个工程去调整啊,这就是他的特点,这就是他的特点啊,了解一下。
我来说两句