00:01
那么我们今天呢,我们今天啊,今天我们的这个知识点其实不多,但是呢,这个代码量有一点点,然后呢,第一是代码量有一点点,第二是需要大家把这个库存系统里面的页面的业务逻辑啊,需要把它捋清楚。第三个就是我们需要对这个系统做一些小的优化啊,我们把它分成三大部分。那么这个项目我已现在已经考过来了啊呃,我们先简单的看一看我们要学的一些小的一些基础知识点。好,稍等一下啊,这是第一部分。帮我写一下啊。就随便在这里写一下吧,叫金融内容,算了啊,就这样。第一个。第一个我们要学习的是。第一个我们要学习的是什么呢?第一个我们需要来看一下保存作用域。保老师,保存作用我们不是学过了吗?哎,我们学的是一个叫三线保存用语,是保存作用于其中的一个。
01:02
原始情况下。保存作用域。我们可以认为。有四个。有四个。第一个是page。第二个是request。第三个是筛选。第四个是application。啊,先不用管先,我先把它写下来,然后咱们再一个个来解释。这个配置指的是页面级别。它是页面级别的,那么这种目前呢,我们已经不用了。除非我们学的是之前老的JSP技术。我们才会用这个page页面级别。啊,一般情况我们现在的这个页面级别呢,我们基本上已经不用了。目前啊,或者叫现在几乎不用。后面三个注意了,我们现在还是在用的。这个request是什么?这个叫请求级别。
02:01
一次请求相应范围。腮线,它指的是一次绘画范围。Application指的是整个应用程序范围。我先把这个先写下来,然后我会后面三个,我会一个一个给大家去讲。下面我们就先来看第一个。我们先来看第一个。第一个是我们的request。Request他指的是他指的是一次请求响应范围,对不对好。你先不要管代码怎么写,咱们先通过画图先把这个先理解一下。好,我们回到这边来。来。这是我们的客户端。这是我们的服务器端,注意看啊。我们的客户端。给我们的服务器一个组件发请求。那么我们这个组件,我把它画在这。
03:03
这个组件里面代码是怎么写的呢?它分成了两部分。第一句话啊,分成两句话,第一句话代码叫request.set。Attribute。好一个key,一个value,比如说我就写个随便意思一下啊,和昨天一样,写个u name,然后我再写一个叫叫Lily意思一下啊,就这么写吧。就这样子。小是吧。把字改小一点啊,十号字典。行吧,将就着看吧,行吧,同学们啊,字稍微有点小,这是第一句话。第二句话他怎么写的呢?第二句话。好。我们是这么去写的。Request。或者叫response。点散。Redirect。好,我请求第二个组件。假设啊,假设第二个组件,我随便写一下啊,第二个组件,比如说就叫代零二啊,是另外一个斯。
04:05
当前这个假设是零幺。好,就出现这句话。我把这个把它改小一点啊。差不多就这样。好,这是第一个组件,那么出现这句话的作用是什么?这句话的作用是不是指的是现在他是不是会立即响应给我们的客户端说请你再发一次请求给代尼奥?所以这个客户端又发了一次请求给代马尼奥是吧,同学们。好,所以我们再把第二个组件画出来。我们在第二个组件里面。我在第一个组件里面存了。我在第二个组件里面去获取。它也出现两句话,第一句话是获取request.get attribute,好比如说。获取。子俊name等于子俊啊或者object吧,随便意思一下啊,Object。
05:05
OG。等于他。就这样的。这是第一句话。第二句话是。打印吗?system.out点。我们打印一下OBG,看这个值能不能打印出来,行不行,同学们。我们就来做这么一件事情。好,我再写一下,这个是杠零幺。下面一个是杠零二行吗?同学们有两个组件。下面我们来实验一下,看看行不行。大家觉得行吗?能不能获取到,为什么?你这个是请求一。请求一,那你这个请求一里面是不是去保存了数据,而且保存的是request范围?那是不是就表示的是在一次请求响应的范围,它是有效的?所以你这个请求一和响应一。
06:01
这是不是一个过程?你如果在这里面去设置啊,你去获取肯定是没问题的,但是下面这个是不是已经变成请求二了。请求二,那你想想,你在请求二里面想去获取请求一里面保存的数据能取到吗?是取不到的。我们把它放到这边啊。第一个。这个叫request保存作用域。好,就这样,这个图还没画完啊,先这样,先把它保存一下啊,再来下面我们来写代码来证明一下,看它能不能获取到。那么我想一想啊,这个项目。嗯。这样吧,这个基础知识要不我想,但是这个基础其实不多啊,基础知识其实不多。
07:01
这样吧,我就在这边建个package算了。com艾特硅谷,我就在这边写个叫DEMO,表示我们今天的这个失利,小知识点的失利全放在这里面行不行?这样就省得我再去新建个项目了,那行吧,下面我要在这边新建个。我就新那个叫DA01行吗,同学们。然后呢,我让他。我让他继承。HTTP行不行,没问题吧,接着它,然后我这边写个叫web可以吧,我写个叫杠零幺没错吧,然后我写个方法,或者你写个do get方法都可以啊。啊,就这样子。最大化。好,我们把这个单词改一下啊。Response。那行,那么刚才的两句话,第一句话。像。Request保存作用域。保存数据。request.set attribute,好,我们写个U,我们把一个叫Lily把它保存进去。
08:04
然后第二步我们进行重定向。啊,叫客户。重定向。好,我们执行的是response senddirect。好,我们请求代码零二行不行。好,搞定,那么我们再来写一个。302。零二好,继承HTTP。HTTP是不来的,好。然后呢,我们写一下web OK,然后呢,我们重写一下方法。OK。那么我们这边要获取吗。获取request保存作用域保存的数据。是吧?KVU。试试呗,Request get attribute attribute。
09:02
是不是叫UN这个K啊,然后我们能得到它返回的这个object啊。Object。好,UN obj,我们把它写出来。那我们把它打印出来呗。行吗?把ung我们把它打印出来。行,就是这样。好了,这是pro g10啊,我们之前这个up里面有rifx,这是不是我们之前一些web项目所生成的部署的文件夹呀,大家可以把它都把它删掉。或者或者大家可以执行build,然后build artifact执行一下。啊清理是不是把PRO09也清掉了。然后再build啊,这边一步一步的,这就稍微有点小麻烦一点,所以呢,你可以直接选中它直接删掉算了。啊,Production里面放的是什么?这些放的都是我们Java类编译好的class文件。你看全部都是class文件,看到了吧,这是Java类编译好的放在里面。啊,这个out叫输出目录。好,把它全部删掉。那行吧,现在我们是不是只需要去对它进行部署啊。
10:03
所以找到file,找到product structure,我们找到rect,然后这玩意删掉吧,这零九嘛,咱们现在是幺零嘛,删掉。点找一下web application,好找models。好,选幺零,点击OK。应用OK,行部署一下吧,Edit。找到deployment这玩意不要了吧,零九到被我们删掉了是吧,所以它变红了啊。重新加一个吧,Artifect。好,选幺零,然后咱们叫pro的幺零。应用一下。然后咱们再回到这边来,幺零改掉我们1010-DA01是不是同学们,我们想访问DA01好。我们启动一下。哦,我这还没洗,稍等一下啊零二。这个写了吗?这个写的是啊,这个没写,我那边忘写,大家要提醒我一下啊好。
11:04
让他启动一下。现在我们应该是获取不到的是吧,咱们已经说过了,那行,我利用它启动的时间,我们再重新来画个图。我把这个图,我把这个图。我要把它复制一份。我把这个图复制一下啊,我在这上面改。这个图CTRLCCTRLC,把它放在下面。哎,可以好,就这样啊。两张图,好,同学们。这张图的。差别在什么?差别就是上面这句话。我把这句话删掉。我把这句删掉,我们用的不是这句话。我们用另外一句话代替,我把它写在后面。我要把它写在后面。这句话是request.get request dispatch。
12:00
然后代零二,然后forward。行吧,同学们,我用这句话去代替。那请问一下,我把这句话删掉,用这句话去代替,请问一下,请问一下现在这个响应一还有吗。这没有了,那就没有了,那要不这样吧,我就把这根线删掉。行吧,同学们,我就这么把它删掉。然后这个请求二还有吗?也没有删掉。把它删掉。而是变成这句话之后,是不是就变成我内部把这个请求内部是不是就。转给了下面一个组件啊。哎,就转给了他。然后他是不是会给我们去响应啊。哎,就变成这个形。所以我们写一下这个叫响应一。
13:00
好,一会儿咱们来验证验证下面这张图,那请问一下这个能取到吗?应该是可以的,因为是一次请求响应嘛,我不管你中间服务器内部做了几次跳转我不管,反正你只要是一次请求响应,你在第一个里面去保存,第二里面当然能获取到。因为只要是一次请求响应就可以是吧,你内部经过三次四次五次跳转我都不管。第一个里面保存,第五个里面去获取也是可以的,只要是一次请求响应。我们来看一下啊。你看。是不是取不到啊,他是闹他是取不到的啊,咱们浏览器应该也也打开了啊,无所谓,反正他不报错。就这样子。那行啊,咱们把这个代码改一改。我们回到代码零幺里面。现在请问一下,诶,我问一下同学们,当前地址那里面显示的是代零二还是单零二。单零二啊,如果同咱们同学还搞不清的话,说明你还没有真正理解啊,现在显示的是单零二,因为是重定向。啊,两次星球啊,行,把这句话改掉。
14:04
换一个方式。啊。我们改成叫服务器。端啊服,极端转发行吗,同学们。好叫request get request好零二。Forward。Response。我们再来启动一次。那这次我们肯定是能获取到的啊。我们他让他启动着啊。他没有报错,你看地址是不是还是代码零幺。但是其实我们这个页面其实应该是302是吧。看一下是不是能取到。啊,它就是可以取得,OK,没问题,好,这叫request保存作用域。
15:03
下面呢,咱们再来看一下三项保证作用语。三星,他指的是一次绘画范围有效。一次规划范围有效。好。现在我要做的改动看好了啊。0102我就不删了,我直接把这两个组件把它拷贝一份。我把它写一下啊,零幺和零二。演示request保存作用域。Du灵药和Du巴。零二行吧,同学们,我就这么写了啊,好,演示request作,那么我把它和它CC我拷贝一份。感觉C,感觉V。W03。好,再拷贝一个。把它拷贝一下,CTRLCCTRLV04。这是零三,咱们写一下。
16:01
影视色性包子用有。其实我们已经用了啊。三和四。好,W03。同学们在代零三这个里面啊,我用的不是request,我用的是3A,那么就点。点get塞线是不是获取塞项啊,然后set at。往腮线作用域去保存了U,然后Y值是力,力。然后我们进行了跳转,跳转给代零四,没错吧。然后我们在代码零四里面。在代码零四当中,我们是不是也要从三线作用去获取啊?你不能说你在赛里面保存结果,你你去request去获取,肯定获取不到吧。这个应该能想象出来啊,行,请问能不能获取到现在。可以的吧,行,把它注释掉。能不能获取到?稍等一下啊,能不能获取到。也可以的吧,也就是说老师现在它变成重定向,我能到底能不能获取啊,我现在是一次汇煌范围,我才不管你用的是哪一种跳转方式呢,只要我的筛选没有过期。
17:10
是不是同学们,只要我的三线没有失效,我不管你采取的是哪一种跳转方式。啊,我都是可以获取到的。好了,这叫三先保证中域啊,这个我就不给大家演示了再来。我们再回到这边来。第三个。第三个叫application。它指的是一次应用程序范围有效,哎,这个是什么意思呢?他说的是一次应用程序范围有效,好,我把这个图也画出来。呃,To B我关掉了是吧,那行吧,我回到回到这儿,回到这行把它打开一下啊。打开一下。我们这个讲的是request保存作用域。然后呢,我们再画一个图,我们画一个稍等,不复制啊算了,不复制。
18:01
我们画一个三线的。客户端。服务器端。这是我们的服务器端。我先花三线的。这个客户端发一个请求。正好我考一下大家啊,发个请求过来,请求我们组建一。请求组件一。这个组件一里面。这个组件一里面我们保存数据,筛选点set。Attribute。好,UN name它保存了,叫丽丽。行,然后他就做跳转,我就不管他了,我不管了啊。这是第一个客户端,再来。我现在有第二个客户端,看好了啊,这第二客户端。然后呢,我还有第二个组件。第二个组件。我在第二个组件里面,我要做筛选点get。Attribute。
19:00
You name。先获取。BGBG等于它。然后system。system.out点。不必解好,我想说的是什么,同学们。第一个客户端给第一个组件发请求。第二个组件直接给第二个啊,第二个客户端直接给第二个组件发请求,请问打印出OB键能不能打印出利率。为啥?哎,非常好,你这已经是两个客户端了,你俩客户端肯定在线不一样。是吧,同学们,所以你肯定是获取不到的,如果你第一个客户端,你先访问111组件一,你第一个客户端你再访问组件二是不能获取到呀。或者你第二个组件先访问组件一,然后你第二个组件再访问组件二,是不是也能获取到。但是说你第一个组件访问组件一,第二个组件访问啊,第二个客户端访问组件二,那肯定不行嘛。因为是不同的赛线。
20:00
那行,说明大家理解的很好啊,我们把它保存一下。在线保存于。我这边写一下啊。打印了。啊,它是获取不到的行。这是三星作用。那行啊,再来。下面我要说的是application作用语。一起来看一下第一个客户端。这是我们的服务阶段。然后呢,这个客户端。他给组建一发请求。给组件一发请求。主建议里面执行的代码。就执行一句话吧,短一点啊。这句话就是application。点set。Attribute。Your name。行。他执行完了啊,这样就行了吧,后面就后面就不写了啊,别念了,不写了。
21:10
那么现在我想说的是第二个组件。给呃,第二个客户端,给第二个组件发请求。第二个组件里面是什么呢?我们写的是点get attribute。跌。Get。Attribute。Your name。好,OB解,OB解。system.out点。OB。好,这是第二个途径。给他发请求。那么它能不能获取到呢?好,我们这边写一下,它是可以获取到的。打印李。
22:01
他是能打印出来的。啊,他是可以打印出来的。假设我现在有第三个客户端。我也来访问朱金奥。他也能访问珠江。那能不能打印出来的呢,也是可以的。第四个组件也来访问,组件也可以打印。这啥意思啊?是不是某一个客户端执行服务器端的APP不更点set build请求,然后执行这个组件里面代码,它是不是表示往应用程序的角度去存放的有。那么应用程序相当于是当前是公共的。所有的客户端就请求应用程序角度都能请求得到。行吗,同学们?什么时候再请求不到,除非你通盖停止掉。你通盖的一停止,当前这个应用程序是不是就结束了,就这意思。啊,就是这样的。这个时候叫我们application保存作用域,我把它保存一下。
23:07
那我们通过代码来证明一下。三和四。我们拷贝一个。W05。好,再考一个代码零六。行。零五当中,咱们把它改一下零五,再改一下零六。回到这儿。演示application保护作用有。好,我们看一下代码怎么写。向application保证作用,稍等一下啊,刚才我这里面注释没改。是吧,先筛选啊。想色下暴子用用。这个里面我看一下啊。获取筛选报语是吧,同学们,刚才我复制的没改啊,现在把它改过来,行,现在边写一下,像application报语。
24:02
保存数据,它怎么保存的呢,同学们。他就不是这么写了。我们要获取AGA荣誉request.get context。啊,我把它分开写,剪切一下分开写啊。它其实对应的就是application。叫context。Conduct叫上下文。啊叫的上下文,好,我解释一下。它指的是上下文,啥叫上下文哦?我们的web应用程序啊,我们正常情况下,我们简,我们可以就是说不是很严谨的来讲,我们当前这个web程序,我们就可以称之为是一个应用程序。因为它里面有大量的控制器组件,叫。啊,所以我们称之叫色的上下文,那什么叫上下文呢?好,我举个例子。
25:00
比如说。啊,张三和李四在那边热火朝天的聊天。聊得很嗨,对吧?王五在很远的地方就看到他们俩在在聊了,聊的正起劲了,王五特别好奇,跑过去问他们,诶。你们在聊啥?为什么这么激动是吧?然后张三就说,诶,我们刚刚在聊什么什么什么什么,那我们刚刚在聊什么什么什么,是不是在给王武介绍他们当前两个人聊的这个上下文环境啊?能听懂我说的这个上下文吗?大家能感受得到吗?这就叫上下文。所以说你想想这个塑料的上下文是不是就指的是通盖的启动开始,表示这一次的,我们这一次应用程序是不是开始启动了,我们这个项目是不是开始运行了,表示这个上下文开始了。就这意思。那么这个上下文什么时候结束,通盖停止?他们盖的停止,这个上下文就结束了。行不行?同学们啊,这叫来的上下文。好,我们也称之为叫application。
26:00
所以我向application中我set attribute。那么我们回到零六当中。零六。这当中我是不是要从application去获取啊?获取application保存作用域保存的数据。Application等于request get contacts。好,就这样子,然后他。Get attribute。那行,咱们来试一试,看看他们能不能获取得到。现在,现在我们要请求的应该是零五。我们可以把这边改一改。把它改成零五是吧。改成零五啊试试。刚才咱们那个零三也没演示,要不咱们顺手一会也把它演示一下啊。先开一下零五啊,先看一下荣誉。
27:08
我问的是零四啊。我改的是零四啊。我不是改了礼物吗?零五吗?哦,我知道了哦,这段转到零四了是吧,真是的,这边没改是吧?哦。这个代码没改啊,诶,那我还得再重启。306是吧,没错吧。小三里面我看一下啊,三里面是零四。哪边我哪边没改过来,大家及时提醒我是吧,大家自信一下啊,老师写的代码不一定对是吧。所以说你不要很忐忑的,还要去反复去看老师,估计老师没写错对吧,估计是我想错了。哪边我这个没改过来,一定要及时提醒我一下。好,你看现在是不是访问到了,咱们看一下他现在是不是到零六上面去了,哎,就这样子。啊,这是application用语,那我问一下。
28:01
那我问一下。我现在直接是访问W06,能不能访问,能不能获取到。能不能获取到?可以了吧,来。零六。是不是可以啊,行,换个浏览器直接访问零六。能不能获取到?可不可以?可以的吧,应用程序级别只要有一个人。他往里面保存了,其他所有的人是不是都能访问啊,就这意思。C非。你看是不是也能打印啊雷,你再搞个浏览器还是能打印出来啊,是没有问题的。那么再来。再来我们看一下三线作用域,回到谷歌浏览器,我们反问一下单,呃,零三是吧,同学们是13吗?零三,零三是不是往三线作用域保证数据啊,看一下零三。啊,往三线中心保存数据,那行,那么它跳转到零四,请问能不能获取到。能不能获取到?可以的吧,销回车,你看丽丽它是能获取到的吧,啊是可以获取到的,那行啊,我再用同样的浏览器直接访问零四行不行。
29:08
可不可以?可以的吧,你看是不是也能打印啊,因为当前是谷歌浏览器嘛。没错啊,我关掉,关掉之后我们再来试一下,我们打开谷歌。Chrome。行,就是他。根据V。能获取了吗?获取了为啥。你是不是把刚才那个客户端浏览器进程给关掉了,是不是现在又是重新换了一个客户端呀,那就不行了,所以说请问同学们,我现在通过IE浏览器直接访问代码零四行不行。那肯定也不行,显然不行嘛,你同一个浏览器,它都不能恢复上一次的辉煌。你更何况不同的浏览器哦。是不是同学们那三选肯定是不能共享的?好,这是我们说的保存作用域。
30:01
其他的把全部关掉关掉啊。行,我们就说了这么三种保存作用域。
我来说两句