00:00
下面呢,我们详细学习一下,请求转发。请求转发,我们用的是request。它里边一个方法get request dispat获取到request dispat对象,那么request dispat。这个对象当然它也是个接口啊,它也是个接口,那么这个对象里边有两个方法。Forward include。它只有这两个方法,我们看一下。我们找谁呢?找这个。Request。就response。Request。它里边有一个方法叫get request。Get requestpa。
01:00
这儿有没有?没有是吧。没有,那就找他嘞,Get request。它的返回值是request。这里面就俩方法,一个是forward,一个是。它们俩的区别是什么?Forward,你看啊,他说a request。From a to。Another resource。他说这forward不是向前嘛,是吧,让一个请求继续向前。怎么就继续向前了,从哪到哪啊,从solid到另外一种资源,这种资源在哪呢?是在服务器上的,这种资源是什么呢?可以是solid,可以是JSP文件,也可以是HTML文件。
02:02
这是include includes the content of a resource。In the response。就是包含。内容。什么内容?一种资源的内容,哪种资源?Solid JSP文件或者是atl文件的内容到哪到response?什么意思啊?是不是是是没看明白呀。哎,我们这样啊,在搞清楚他俩的区别之前。还有一样东西让大家先看一下,这是让大家能够感觉到比较诧异的。什么呢,这样。咱们这样啊,拷贝这个代码。他不是又用的forward吗?是吧,我们是23。
03:01
起个什么名,我们就叫dispat forward吧。嗯,看一下啊。这里边还有这个东西,我们其实不用它了啊。我们直接看账。Some so,这里边儿啊。我这个都删了。这个也删掉。这不,哎,这是呀,这是咱们当时给大家做测试的时候改了啊,我就得给你改回来forward。Forward。那么这个改回来了。
04:04
改回来以后。看这哪儿比较诧异呢,看他。这是request对象。你看看这个request对象。再看他。这个里边咱们这样。这也request这个呢,我给你这样加上这个区分开了啊,区分开了,咱们这样这个我先删掉它不要。好。这个是forward,这是佛的啊。好。
05:01
这个index页面没有了。爬起来。九。好,我让some。呀,控制针了。17行。咱们这里边儿还有17行吗。17行。我看看我改错了没有啊。坏了,改改成它里边的了。这事弄的。那这样把它里边内容。站到这儿。
06:01
这。它里边是输出那个那个啊那个。Yeah。好。看一下啊,Other没问题啊,这次没问题。Some。看好。你看第一个some里边这个request是谁?是request for对象,这没有任何问题,我们知道I subject request这个接口的实现类是不是就是request呀?关键问题是你看看里边这个request是谁?
07:16
这是个什么东西啊?啊。我们看一下。查看一下它啊。就他。看这是什么?It activity,诶,Activity somebody request,我们知道。Rapper。这这这什么东西啊。注意啊,这是一种设计模式。什么设计模式?这个叫装饰者设计模式,装饰者是干嘛的?对。对。
08:01
你的目标对象进行增强的目标对象是谁?目标对象就是他。这个参这个代餐构造器里边带的这个对象I request就是对它进行增强的。这是他的目标对象。也就是说,你注意。现在我们出来的这俩结果是什么意思呢?请求转发。Some。会将这个请求对象传递给other other并不是直接拿这个对象来用的,而是。将这个对象进行了增强。将它进行了增强。用这个东西将它增强了。增强什么了?他做了什么增强?
09:03
做了很多增强,但是这里边儿我们关心的。其实他是将这个请求,你注意将这个请求和这个请求。进行了一个合并。什什什什么什么意思啊,怎么怎么这这个请求和那个请求了,这又是什么意思啊。你注意啊。我们看着。请求转发重定向。我们这是用户提交的请求,对吧,用户提交了请求,请求的资源一,那么资源一到资源二这是什么。你对,这也是一种请求。他也是提交的一个请求。只不过这个请求不是由浏览器发出来的,是父亲内部的一个请求资源一,请求资源二呀。
10:06
所以我们这里边的application request做了一个增强,什么增强做了一个请求的合并。将。用户提交那个请求。和这里边儿的这个请求进行了合并,合并以后给了他了,所以这个请求里边既包含用户提交那个请求,还包含这次请求啊。这也是一次请求啊,你注意请求转发这儿也是发出一次请求啊。所以他是做了一次合并。明白吧,你看这。改成include。好。
11:01
我直接刷新走。是不是一样?也是他。不管是forward还是。都一样。对于请求来说都一样,他都是other的这个啊,里边的这个request实际上是合并了前面两次请求以后,得到了一个新的请求,但这个请求里边包含用户提交的那个请求和。和这次请求。好。这是request,再看response。在看response。那那这样吧。拷贝。Yeah。那那那那就这吧,拷贝他吧。
12:00
好。从来。咱们重来啊。伤心走。呃。诶,怎么回事儿,大家看。怎么少了一次request呀?是不是?这有个request response,这是不是还有个request response?啊,这这这这这没保存看到没,这没保存啊,这样我们还先看forward先看它啊。关了,重新来。Start。
13:09
我们看页面。直接刷新走。大家看啊,请求我们说过了,不用再看他了。看响应。诶。Request不是对吧,看这个对象。这俩是不是一个对象啊?对不对,这俩是一个对象啊,这哪个forward。再来include。好,重新发布了。刷新。走。
14:00
Request不用管,看response,这是response。哎,你看这他是谁?Applicationp response,这这,这又是谁呢?那我们猜测一下,我们知道这个是对I request的,是不是增强?者,这个呢?是对b response的增强,是它的装饰者,应该是这样的,对吧,那我们看一下。不错吧,对不对,装饰者设计模式。那OK了。那现在先让大家看一下啊,先看一下我们现在主要是谁,你注意啊,主要现在看的是response。对于。
15:01
请求来说是不是都一样?不管是include还是forward,对于请求来说是一样的,不一样的在哪儿?在于。不是在于。这个response。所以先让大家看这个区别啊。啊。无。无论是。嗯,Forward还是对于谁呀?对于请求来说都是一样的。那么它们的不同点。主要集中集集集中在哪儿啊响应。
16:07
对象,所以我们一会儿分析他们的时候,主要分析谁,主要分析的是响应。那么这个增强,他的增强增强的是什么?这个增强你注意啊,我们现在用的谁。是不是include,那我们现在就分析,简单先说一下这个增强,我们猜测一下,根据它猜测一下,这里边肯定也做了一个合并。你注意他也做了一个合并,至于做了什么合并?我们先不说,我们现在先看到了。Include和forward。它的主要区别。
17:02
集中在谁身上?我们已经看到了这一点。
我来说两句