00:00
下面呢,我们来看第二,第二类监听器叫预对项中属性的变更的试卷监听器,B对象中属性的变更事件先听器,用来监听service context session request这三个对象中属性变更的监听器。什么叫属性变更啊?比方说添加属性,置换属性,移除属性好了,这三个监听器的名字呢,叫呃,后边都是attribute listener开始的名字叫s context http session跟request,我们统一的来进行测试。Attribu,好,同时实现这三个接口,So contact,一个request,还有个APP3TBU达加方法。
01:27
有几个方法,一共是九看看。好,第一个他应该是谁的呀,是不request的属性添加的方法来。过来看,像request中添加了一个属性。
02:15
第二个是属性移除的。从。Request中移除了一个属性,还有一个什么呢?叫属性置换的。Request中属性替换了,OK,其他几个我不写了啊,道理都是一样的,可以看一下,这个是属性添加的,这应该是哪个属性添加service contact吧?这是service context属性移除的,Context属性替换的。
03:07
三分钟添加属性的,三分钟移除属性的,三分钟属性替换的不写了啊,就写这三个看一下效果。当然我们还需要干什么呀,需要配置一下。这个的配置的话呢,可能是我们写的这么多配置里边最容易的是吧,直接配就可以过来看一分28/1保存OK。CA。Attribute。Listener的JP。
04:01
看request.tribute。这是什么,这是一个,然后。一个还有一个他。好。再看request.stem我变成EFB啊,这是干什么呀?是不是把这已经替换了呀?汇总替换了话,会发生一个replaced,再来。水把这个属性移除,OK,看效果。看见了吧,最开始的时候是不是添加了一个属性啊,在哪呢。
05:09
在这我们看是怎么打的啊,最开始先创建了一个,创建了一个request吧,然后创建了一个session,第一次访问嘛,添加了一个属性,替换了一个属性,移除了一个属性,可快速被销毁吧,整个这个流程就是这样。就是我们的什么叫。五。我们以这个为例啊,我们说的是tri呢,啪说监听了,然后呢,还有一个。
06:11
Request中属性,添加属性、替换属性,还有移除属性。价的的事,驾监听器啥意思啊?就是说当我向这每一个预对象里边加一个属性的时候,它会掉一个方法,把这个属性替换的话,会掉一个方法,移除一个属性的话会掉一个方法,以这个为例。二我们怎么样,我们说以这个为例,这里边有几个方法呀,这里边儿一共是有三个方法,那每一个里边这个对应,每每一个里边这个方法的话呢,差不多都是相对应的,我们拿过来CTRLC过来看。
07:15
第一个大家说这个方法什么时候被调用啊,添加属性时被调用它呢,移除。属性时。调用这个呢,替换属性时被调用好了,其他的相类似三我们要说一下啊,这三个监听器用的机会都比较少,说这三个监听器这个。
08:02
相对而言较少会使用精精气较少使用了解即可啊,然后的话呢,我们再看一下这个APIAPI的话呢,除了这些方法以后的话,我们还看到一个什么呀,这个事件我们看一下。来不来,我们看这里边我们能获取一个什么呀,大家看是不是获取一个name和value啊,大家觉得这个name和value它都是什么属性名称属性值吧,能想明白吧,你看我属性添加掉一个方法。属性移除掉一个方法,那我得知道我加的是什么属性吧,我移移除的是什么属性吧,这个我得知道啊,所以说呢,这个里边我们还可以来进行获取进一步的信息拿过来。
09:03
添加一个属性,这个属性叫点那。OK。保存C卡。这个啊,搞错了。这个。对不起,对不起。
10:02
大家看我这个什么加一个属性,属性名叫name,属性值叫abcd,替换的属性,属性名是name,属性值是ABC,大家注意我替换的时候,或许这个Y6值是以是新值还是旧值啊。是不是就是啊。啊,我获取这个日是旧址,然后移除的话呢,那就是正八角那个内的外流了,好了,那我这个s request是这样,那request requesttribu business是这样,其他的的话呢,跟这个是相类似的,当然我这个笔记的话呢,还需要记一下啊。API我们说了一个什么呢?我们说了这么一个东西。CTRLCCTRLV,这个里边有两个方法,一个叫name,还有一个叫get value都是干什么用的?
11:09
这个是获取属性的名字,这个呢,获取属性的值啊,其他的几个监听器跟它是类似的,大家。根据我这个给大家讲的这个sub request listen呢,然后的话呢,你来测试一下另外的两个例子呢。我没有写全哈,就是说我只写了这三个,其他我是不是价值已经写好了呀,你往里面,你往里面写代码去体验就可以了,还需要来测试一个service context跟ltp session OK,搞一下吧。这里边的话呢,我们跟大家强调一下啊,我们讲的这三个地震呢,分别是。
12:00
哪三个呀?这个吧,三个这三个C过来。较少会使用,所以说以上,所以说以上内容的话呢,做一个了解就可以了,那这里边的话呢,我们要跟大家说的一个就是这个,比方说啊,我这个方法里边这个参数大家应该能够想得到哦,我这个参数呢,是在移除属性的时候传入的,那我就应该从这个里边能够获取到那个属性名是什么,属性值是什么。就是我们以后是吧,我们以后我们这个大家也也用不着以后是吧,包括现在也一样,大家以后的话呢,会去见很多人,见很多事儿,然后的话呢,会去这个会去公司里边闯荡,然后有一个事马上就要发生了,你一点也看不出来,这就麻烦了。
13:11
比方说某一个这个部门经理要找你谈话,然后你都不知道他要找你谈啥,每次都是这样,那就麻烦了他,他一找你,你就知道哦,他大约找我是个什么事,我应该如何去跟他讲,然后每次每次每次一找你说什么事啊,不知道,我完全不知道他要找我干什么,然后的话呢,他有一个脾气秉性,然后的话他有一个有一个他的要求,你每次你得想办法达到他的要求,否则的话,这个活就干不了。我们现在讲这个东西跟现实是一样一样的,你看传入了这么一个参数,这个参数能干什么呢?你就想哦,我是在移除属性的时候传的这个参数,那这个参数就应该能够获取到那个属性的一个属性值,就是这样,没方给我们一个数据库,这个数据库能干什么,这个数据库一定能够啊,存储数据能给数据库能干什么,然后说说这个数据库。
14:09
是能够接鸡蛋,那不是扯淡吗?大家以后去职场里边的话呢,这个道理是一样的,比方说领导跟我谈话,或者是某一个同事要请你吃顿饭,这个时候你在请之前,你就要想他请你吃饭,大约上是有一个神么什么事。天下没有免费的午餐,就是这样,这个是事实,我们不是说,呃,同学们之间,同事之间没有这个纯洁的友谊,我我不是这个意思。我很明显不是这个意思是吧,但是平常交往不是特别深的一个哥们,要要找你吃个饭,或者说要这个跟你谈一个事儿,你大致上你得知道他要找你干什么,是不是以前你哪块确实没做好,人家挑你的理了,还是啊,人家有一个事儿求你,然后的话呢,你要不要做?我我不是说通过这样的这个灌输,让大家变成一特别复杂的人,很明显不是这个意思,但是有一些事要发生的话呢,你得能看出来,看不出来的话,那以后那咋整啊,好吧,我们不再说了啊,哎。
15:17
我们讲我们一共是有八个离子呢,第一组是监听这三个预对象,什么时候被创建,什么时候被销毁的立子呢?第二组是监听这三个对象哦,我里边什么时候加属性,什么时候替换属性,什么时候销毁属性的三个listen呢?找个trip business好了,还有两个,还有两个呢,是跟session相关的,我们来看。叫感知三身绑定的事件震定器,这两个都是跟三身相关的。第一个说啊,保存在三参中的对象有多种状态,说绑定到三参,从三参中解除绑定,随三参对象19化到一个设备中,随三身从一个对象中恢复绑定前两个。
16:11
这对应的一个listener,这个对应的一个listener service规范里边定义两个特殊的监听器接口,用于帮助Java b对象了解自己在section中的这些状态,注意听啊说用于了解张阿病对象在塞身里边的这些状态,就是说刚才这些啊,就是一个一个正方形监听器,我这个监听器接好之后的话呢,我需要注册啊,现在呢,这个监听器是感知张阿病在三参里边变化的,换句话说,这个时候这个监听器啊,是绑在一个人身上的,哎,我不需要注册,我不需要额外哪块一安,它就在人的身上,然后的话呢,这个人这个深入这个敌营是吧,然后通过这个传感器能够传出,哦,敌营目前的状态,它是不什么样,他是这个意思,所以说像这两个监听器的话呢,不需要在web X文件中进行注册两个第一个fptp section绑定,绑定的。
17:12
第二个atpp session ipvation listen的它是什么呀?感知被持九化以及从这个呃对象中从存储设备中恢复的这么一个监听器,看一下第一个叫htt session Bing实现了这个接口的招聘,可以感受到自己被session绑定和从session中解除绑定,看一下这个C,我们这块的话就有一个账宾叫卡,就用它了哈,Control。方法。第一个。叫绑定,从三生中解除。
18:19
进来注意我是这样的一个这样的一个对象啊,然后的话呢,我们再来写一个。好了,我首先创建一个卡。然后把这个卡通放水筷子里边去。
19:02
H4,好了,注意,我是把这个片放水子里边了,我们看目前会有反应吗?有一个什么呀,说request被创建,Request被销毁,像request里边放了一个属性,这是不是我们以前写的啊,跟这个没关系,我这个的话呢,是什么意思呢?我说是这个对象绑到session里边,我这个request跟request没关系,于是的话呢,我改一下,我改成放里了哈,然后几句话。打一个他好解除。
20:11
是不是绑定到赛神呢?又从三神中解除绑定,就这个意思,我可以感知到啊,我实现了这个接口的Java类对应的对象是不是放到session的属性里了,是不是从session中解除绑定了,干了这个事。好,那这里边的话呢,我们又看见什么呀?诶又看见一个参数,大家想一想,这个参数里边我们获取到什么东西啊。能获取到什么,如果要是我们就猜就行是吧,获取到什么值,我应该能够获取到绑定那个属性名吧,属性值就是这嘛,是吧,那绑定的属性名我还应该能够获取到那个三程对象本身吧,是吧?这是我们能够想到的两个方法。
21:10
好,CTRLC过来看一下。你看获取名字,获取session,获取这个值本身这个值是谁啊,这个值是不是就是这啊,写写大家看看来。这么写就不用说了哈,我们写一个object value等于event.get value,我们说呀,这个value应该是跟。This是相等的,Value等于this再来一个。点get name好保存看一下。
22:10
看一下。是不是处啊,这个是不是那属性名啊处能知道它为什么是处吗?你是不是把这个对象绑到那个30里来,那我这个Y6值不就是这次吗。这就可以了,一共是三个方法,OK,这样的话呢,我们关于这个监听器呢,介绍完了第一个笔记。说一监听实现监听。实现了该接口的Java类的对象被。
23:00
绑定到session或重。三生中解除绑定的事项。那一共是有两个方法,这两个方法在这儿呢。Cotton。C、拿过来。当前对象被绑定到该身是调用该方法,这种当前对象重session生中解除绑定调用该看OK好了二。
24:32
特别需要注意的注意该监听器,该监听器不需要带web.XL文件中。进行配置不需要,为什么呢?因为我本身这个账号B,我是不是已经携带了这个方法来,我要检验的是我这个张阿B是不是被绑定到三,是不是从三中集中绑定,我这个张阿B里边已经有它了,所以说不需要再进行配置三。
25:11
这个API这个本身太简单了哈,三个方法get name。Get value。Get就get。是。干哎。那实际上的话呢,像这样的方法的话呢,我们不用一个一个讲,大家第一个可以想到会有这些方法,第二个你如果想不到的话呢,一看API你就能明白哦,还有这个方法都是神马意思就是说哎,你的这个立啊要找我说你过来我要跟你谈话。
26:01
出名的哈,在找你之前你就知道啊,他要找我,他要找我可能会有什么事儿,这是最牛的,就是说那个哥们儿还没找你呢,你就知道他可能是要找我了,找我可能会有什么什么事,这是最牛的,这样的人不可能发展不好,前提是努力哈,这是肯定的第二个。你的例子告诉你,诶,你过来这个时候的话呢,你在去他办公室的过程中,这一分钟你能想到他找我是什么什么事,我应该怎么怎么样,这是第二类人,第三类人。到办公室了,然后完了这个你的领导跟你一说,你明白了这也行,第四人去了办公室一趟,然后领导谈了,谈完之后还还不明白,那那基本上就没戏了,我们现在的话呢,就是这就是这么一个层次是吧?哎,我们看到了这三个方法的话,我们一下就能知道这三个方法是什么意思,连API都不用看。这个层次是一定要有的,所以说的话呢,我们真的不建议大家去了解这一个一个方法是什么意思,没啥必要。四再说啊说该监听器较少被。
27:13
使用的机会的话呢,很少知道,就可以再看一个。这个监听器,这个监听器呢,实现了这个监实实现了这个接口的召化变对象可以感知自己被活化和钝化,什么叫活化呢?从硬盘里边读出来动换把自己写到硬盘上看看这个CTRLC我还用看了啊看。Con。
28:04
五。这个是是吧,CTRLC没改过来,CTRLC的O。一说自己被化或者是化。第三大家看一下这两个网络什么意思啊,第一个。即将过去吧,他呢?已经活过来了吧,是吧,这是从。硬盘中。冲磁盘吧,从磁盘中。读取出来啊,这个是从内存中写到磁盘上,但这个的话呢,有一个需要注意的是不是当前那个对象要写到硬盘上啊,所以说这个应该可以被序列化,你得实现。
29:19
看上一个序列号,完了,Close。好起来好,我们看它就可以。看看这个页面啊,这个页面的话呢,我是怎么了,我是说啊,我给它放到这个section里边,然后的话呢,我这边有一个移除,移除这个展示,我先给它去掉。这个这样我们把整个这都都去掉。看一下这我呢要从三分中来获取这个属性object吗?等于3.s什么呢?好,如果customer等于。
30:24
空的话,我就创建一个新的,把这个新的放到里面去。创建一个新的ma对象并放入到session中,这个代码的话呢,可以复制改这。
31:04
哎,否则这是读出来了。从三分钟中读取到。看对象家看。好了,洗完这么一个情况,好了,我们看一下这个页面来,是不是创建了一个新的卡,然后被放里面了,注意哈,这是二,好了,我下次要再跑呢,我是不是读取的,每次都是读取呗。
32:21
用30分是不是已经有了呀,能能明白这个效果吧。能懂吧,好了,我现在的话呢,注意我把这个服务器关掉好了,关的时候的话呢,我们看见一行代码说从内存中写到磁盘上,看见了吧,好了,我在启动服务器。好,我们看其中的时候的话呢,是不是有个从十板里面读出来啊,注意我来刷这个页面,大家看我刷这个页面的话,你发现了什么问题,是不是说从三分钟还可以读到这个卡通对象啊,我刚才那个服务器都已经关了吧,按理说我服务器一关的话,那个session是不是就被我服务器都关了,那服务器里边那个对象是不是就没有了呀?那服务器里边的session没有了,那服务器里边的这个卡怎么还有吗?可能也没有了呀,但现在的话我们发现,诶我这个时候我启动服务器之后的话呢,我第一次开访的这个页面,我还是能够从赛十里边把这个对象读到,这就是当我关闭服务器的时候,看着它有什么了,它会把我们这个session连同session里边的对象,哪个对象呢?这个对象customer,前提是实现C。
33:46
口把它写到磁盘上,磁盘上具体对应的就是这个文件,这个什么这个文件好了,我启动服务器你看。
34:03
这个时候呢,这个又被读出来了,然后我再访问这个页面的话,我们发现我还是可以搞到这个对象过来看。哎,这个是读取,不过我们发现一个问题,一个什么问题呢?你看现在这个哈希马是几啊,ECC兔马,好了,我再读都是e CC two OK,注意看这好了,我们看到一个什么呀,我们看到它是不是写到磁盘上了呀,我再给他启动服务器吐出来了,好了,刚才ECC兔哈看了一个什么呀?哈西马是不是变了呀?哎,哈西马变了,但是对象却还是那个对象。那我们怎么说对象还是那个对象呢?我们这样,我们给他写一个属性。
35:12
嗨,请时间。Po。这个我先关掉啊,提供一个方法。大家看写完OK,这个时候的话呢,我在创建这个对象的时候,我往里面放一个放一个时间。嗯,再看看什么点。
36:08
好纯哦,我是不是没有进行强转了time加newda。点在看OK。这但是6K得这样的话呢,还能看着表写好了,加好之后的话我们再看。创建了一个新的,因为这个产品已经改了啊,我们注意这个时间,时间是03:5743秒,好了我再来是不都是03:5743秒啊好了注意我关掉服务器,打开服务器,注意现在已经58了吧,是吧,刷新。
37:25
是不是还是五十七四十三秒啊,说明我读取到了那个,确实还是刚才那个对象,那同学说哈希法咋变了呀,是这里边的话呢,我们会后边我们会讲哈Le的时候的话呢,我们也会讲哈,里边有一个二次缓存,我们把这个对象存到硬盘上,是把这个对象给砸碎了,存到硬盘上的就散装存取,就是说我并不是以整个这个对象的方式直接放,而是把这个对象的砸碎了啊,放到上边,然后取的时候怎么取呢?我再给它组装起来,这个时候呃,还是那个对象,但是它的哈希码已经不一样了,就在磁板上存放的是一个散装数据,这个我们讲哈,练的时候的话呢,我们还用再说,大家只需要知道,诶,我这个对象的话呢,可以读出来就可以了,这个就是我们所谓的这个session的钝化和活化。那session可以被。
38:25
保存到磁盘上,还可以从磁盘上读取出来,那如果如果一个扎B实现了C这个letter接口,而且呢,还实现了这个呃,Http session activ这个接口的话,这个时候我们会感知到我这个customer,随着session被持久化的硬盘照跟反序列化从磁盘中读取出来,我们会看到这样的两个,看到这样两个方法被调用,OK,接着说看这个,大家说这个里边的话能有什么方法呀,猜一猜我被写到硬盘上,然后从硬盘中读取了,你这边我能获取啥呀?
39:12
他应该肯定可以获取三吧,还能获取别的别的好像。不太需要了,我们觉得是不太需要了是吧,大家可以看一下啊,仅有一个赛事,我之前没看过这个啊,仅有一个赛仅能仅能获取赛,OK,当然如果这里边要是有其他的,你有其他老师,我们没想到,那很正常,我们想到了,那很好。好了,我们把这个的话我们也说一下,很多拿过来。又是一个离那第一个干什么用的监听实现了该接口的Java类,Java类该接口和什么呢?这个reg接口。
40:16
张瓦类的,张瓦类的对象的对象谁。在钝化和活化的活啊。监听实现了该接口和rela接口的障碍类对象随筛选活化和钝化视战。那我们要说一下什么叫活化跟钝化呢?过来看活化从从磁盘中。
41:11
读取到读取赛生对象。好了,这个对话从磁盘中。向四分钟,向四分钟写入在身对象,好了,还有一个,呃,无论是戏还是读的话,这个在哪说单身对象,单身对象存储在服务器器的work目录下,Work目录下,我靠目录具体是哪个啊看。
42:07
看啊,首先的话呢,它有一个work,然后看你两个括号。然后有个什么这应该就pass吧,啊,项目名称这个下面以什么1.s的方式就什么session。点一样,好这个可以就可以,二这个也一样,不需要进行配置。三方法复制一下我来看。
43:01
什么方法?第一个是什么呀。坏了没没复制全复制,连两个复制这两个啊。它是什么,这个是这个是是什么,在在的话。之前被要用这个呢,D的active呢,在活化之后被调用,OK,还有一个什么呀,还有一个它这边只有一个方法获取session。中一个方法概念,但是没什么讲的哈,好四我们再说一下,该监听剂也是很少被使用。
44:10
对,除非一些特殊的应用的话的话,我们会用到它,此外的时候的话呢,很少会使用,OK,这样的话呢,关于。八个监听器,我们就都讲到了八个三组,第一组监听预对象被创建和销毁的监听器,三个,第二组监听预对象中放属性,移除属性,置换属性的监听器,第三种跟session相关的,第一个是啊,我把这个对象放到session里边,以及中session里面解除绑定一个,还有一个是跟着session活化和钝化的两个,一共是八个。下节课的话呢,我们详细来做一个小结,下课休息。
我来说两句