00:00
开始整了啊,我们看这我们的word文档里边也有这个东西,大家去看一下啊,那么我们去看看啊,现在我们知道十七十七,所以说啊,关于这个server light这个规范中的扩展啊,咱们写上啊,关于它的这个相关的扩展知识点,它叫做什么呢?它叫做接听器接口。好了,那么首先第一个自然是要介绍一下呢,这哥们哪来的干嘛用的啊?好了先第一个,那么我们说啊,监听机器接口哪来的呢?它是一组来自于serve light规范搜索接口,大家注意我强调的不是一个,是一组,在四二规范中呢,它总共提供了八个监听器接口。好,咱把这要写上啊,说在这里边呢,它呢是一组来自于serve,来自于server的规范下的这个接口,那么这里边呢,它呢共有什么呢?共有我们说的八个啊,共有八个接口啊,你看这还打错了啊,咱们想共有八个接口好了,那么这八个接口干嘛呢?那么他们在我们的这个tomcad里边,他们存在哪里呢?存在于tomcad所提供的这个价格中,S的API这个价格中啊,在这啊。
01:25
这是第一个,然后第二个呢,那我们看一下,那么这几天来大家可能养成一个习惯呢,什么习惯呢,一看到是接口,那马上想到这个接口的实验力不用咱管,诶这块呢就不对了啊说呢,我们说啊,这个监听器的这个接口呢,它呢需要由我们的这个开发人员来亲自来亲自实现来亲自实现啊,那么我们的这些HTP这个服务器,它所提供的,他们所提供的这个价格中,它并没有什么呢,对应的实现位置,纯纯的接口啊,在假照里边人不给你写,那凭什么呢。
02:12
举个例子,你看啊,这个接口啊,叫监听,什么叫监听呢?那比如说呀,你看到有一个人,诶,他在你邻居的房门外在干嘛呢?在偷听,那就叫监听了,就叫监听,对不对?好了,那么当一个人趴在对方家门口外面去偷听的时候,其目的是不一样的,虽然都是监听,其目的不一样,如果这个人是警察,想看看什么呢?他想看看房间里边的犯罪分子在交谈什么,那么如果人这是老崔呢?那得问他,他想听点啥是不是?哎,在里边好了,那么在这里边我们往下去看看啊,第三个,那这玩意到底是干嘛用的呢?看好了,我们的这个监听器,这个接口的这个实现类监听器接口啊,咱们选监听器接口,那么它呢,用于什么呢?用于去监控。
03:12
它用于监控什么呢?我们说的这个叫做作用域对象,它的这个生命周期的变化时刻啊,变化时刻在这,那么以及什么呢?以及我们说这个作用域对象,它里边的这个共享数据的变化时刻啊,变化的时刻在这。也就是说呢,他要对作一对象何时生何时死来做监控,说要干嘛呢?比如说你听到这个人出生了,你既天听到这件事之后呢,那么你得去干嘛呢?调一个方法,比如说祝贺他啊,恭喜恭喜啊,又来11招,那当比如说你听这个人干嘛呢,被押送到这个刑场要行刑的时候,你也要触发一个方法干嘛呢?就刚才讲了,兄弟走好,20年之后我们再相见,对不对?诶在这所以监测接口呢,主要用于监控作余对象的生命周期变化时刻,以及它里边的共享数据的变化时刻的,那么这时候就有个问题了,各位啥玩意儿叫做纵欲对象啊?
04:24
最为对象,哎,我们说这个事情啊,在这请看第二个问题,什么叫做作用与对象,我们要给他呀下一个定义,那么在S的规范中呢,他认为。存在于服端内存中,并且在某种条件下可以为两个server之间提供数据共享帮助的对象,那么它叫做作用与对象,好了,咱把这话写上啊说呢,呃,在这里边第一个啊说呢,在咱们的这个Z规范中认为在服务端内存中啊,在我们负端内存中,那么可以在某些可以在某些条件下为两个serve light之间去提供这个数据共享方案的这个对象,那么它就被称为什么呢?就被称为我们的叫做作用与对象,那么这么一说,诶,我们对作用对象应该。
05:42
第二了解了好看第二个,我们看看在serve light这个规范下的这个作用与对象,它主要是哪几个呢?首先第一个serve light context谁呀,全局作用对象,哎,在这也就是我们的监听器接口呢,哎,可以对这个作用对象它的生和死来做监控啊,全局作用对象好了。第二个是谁呢?H hap session谁呀,绘画作用对象对吧?绘话啊,绘画作用与对象好了。第三个htp serve request req.request好了,那么它又怎么称呼呢?那么在这里边当它提供数据共享的时候,我们就不把它叫做请求对象了,我们把它叫什么呢?叫做请求作用与对象好了。
06:42
那么在Siri的规范里边呢?他认为能够被称之为叫作为对象的只有这哥三个。那么说到这,可能有同学有点疑惑了,Cookie呢?Cookie啊,它呢,不是也能实现serve之间的数据共享吗?诶,问题是啊,Cookie啊,出身不好,Cookie怎么出身不好呢?Cookie是存放在客户端计算机中,浏览器内存或者是硬盘上的一个对象,他不在腐断人家出身不好,所以在所有对象中,Cookie并没有干嘛呢?并没有去作为作用对象来看。
07:22
哎,在这儿,所以大家记住在serve light这个规范里边啊,在这的规范里边,作用对象只有这三个,而咱们接下来看到的这这个八个经济接口呢,他们要么是对作用于对象的生命周期来做监控的,看他们的何时生何时死,要么呢,是对这些作用与对象里边他们所存放的共享数据何时发生变化来做相关的监控的,诶在这这是作用对象理解好了,那么接下来呢,我们呀,往下去说一说啊罗来。
08:01
在这我们看第三个啊,第三个,那么关于我们说的什么呀,关于我们说呀,这个监听器接口实现类,它的这个开发的规范,说现在我想去写一个接听器接口实现类,完成一次监听,那我该怎么做呢?三步啊,大家注意以后在开发过程中呀,三步是我们所学的所有技术,他们开发步骤的一个极限,一个技术的开发步骤如果是达到了三步以上,这个技术就被列,为什么呢?列为影响开发速度的技术,真的像咱们CDBC,为什么说大家背流程就行呢?因为它开发步骤多远远超过三步了,过时了,过时了啊,后边都买杯子来封装,你把S写好以后用用一行变一调用就拿活了啊,老轻松了啊,这一遍。
09:00
好了,那么哪三步呢?首先第一步啊,第一步,那么在这里面根据啊,根据我们要监听的实际情况干嘛呢?去选择选择一个对应的这个监听器接口来进行实现,也就是说你想干嘛吧,你是想监听全局作用对象的生命周期变化呢?你还是想去监听一下这个session对象里边的共享数据格式发生变化。那么此时根据实际情况,你在八个接口里边找对应的接口来实现,这是第一步好了,然后第二步是什么呢?过来在这。那么在这里边呢,我们需要去重写,重写什么呀,这个监听器接口中所声明的什么呀,这个监听事件处理方法,哎,监听啊,监听事件这个处理方法好了,那么这些方法呢,他们会在指定的事件产生的时候来进行一个自动调用啊,自动调用。
10:13
那么此时你只要去写这个方法在调用时要干嘛,而你并不需要考虑这个方法它是怎么调的。实际上呢,它跟我们的do get都很相似,你只要写具体的业务,而他们调用时机早就被定好了。好了,然后写完这两步之后呢,实际上你就有了一个监听器接口实验力了,相当于一个侦探,相当于一个侦探啊,那么接下来第三步,那么第三步你要干嘛呢?第三步我们需要在web点叉ma文件中啊,在这文件中,那么将我们的这个监听器接口实现类去注册,注册到们的HTP服务器上,说啥意思呢?
11:00
你有这么一个侦探,你你说你是一个侦探对吧,那么你得有什么呀,上岗执照啊,那么在服务端谁是皇帝呢?我们的toca或者说HP服务器,那么你的这个监听器类要想上岗工作,必须要到H服务器里边做一个注册,那HP服务器才能在对应的事件产生时派你的方法去处理,三步啊,就有三步好了,那么接下来我们写两个看看啊,那么首先在这里边八个接口呢,我们不会多讲,讲两个意思,意思首先看第一个接口,它呢叫做serveest listener这个接口哦,在这contact listen接口,那么这个接口有什么作用呢?我们看看啊这个啊,那么起相关的这个作用。说呢,通过这个接口,通过这个通过这个接口啊,那么我们可以合法的去监测我们全局作用于对象,它呢,被创建的时刻啊,准确说呢,是被初始化,被初始化的这个时刻,那么以及什么呢?他被销毁的时刻。
12:23
啊,有了这个接口呢,我们就可以合法的去知道全球动向,什么时候初始化,什么时候被销毁好了,然后在这个接口里边,它存在两个监听事件方法啊监听事件这个处理方法有两个,那么哪两个呢?哎,我们去看看,一个呢,它叫什么呢?咱们写上public word,一个叫做comp in life an unit,我们说的这个什么呢?什么life这个方法,那么这个方法干嘛用呢?它会在会在我们的全局作用欲对象怎么样呢?被。
13:09
被我们的这个P服务器初始化的时候,初始化的时候也就是给它赋值啊,初始化的时候被调用,被调用好了,那么往下看另外一个呢,Public word,它叫做contact,然后写上什么呢?Death to啊,To。那么这个方法呢,它呢会在啊,会在我们的这个全局作用与对象啊,那么它呢,被我们的HTP服务器进行销毁的时候啊,啊被AP服务器来进行销毁的时候来干嘛呢?啊,这个触发调用啊,触发触发调用好了索尔康泰接口,那么在写这个接口的实验率之前,我们先简单回忆一下全局作用对象,全局作用于对象呢,我们说它的生命周期的变化,我们看看啊。
14:12
文字格说错了,作用于对象呢,在server的规范中,作用对象只有三个,它说的是什么呢?说的是另一个规范,JSP规范,在JP规范里作用对象呢,多出了一个,就是他所说的配置contact,哎,这里边这是要在JSP文件里边才能出现的,在所里边没有这个东西啊。好了,那么接下来我们去看看啊,全局动对象的生命周期问题。全局性对象由谁负责创建呢?由我们的HTP服务器负责创建。那么在什么时候被创建呢?当我们的HP服务器在启动的时候,它将为当前网站创建一个唯一的全局作用对象。那么在这个H服务器运行期间的时候,网站中的全局作用对象它一直干嘛呢?处于存活状态,直到有一天在HP服务器准备关闭的时候,那么HP服务器的关闭的时候呢,会顺手把当前网站中的全举证对象进行销毁,我跟大家之前讲过啊,那么在有开发过程中。
15:22
很多很多的对象都不是我们去创建去管理的,我们来只是去用,所以对于这些对象是谁创建的,在什么创建,能活多久,什么时候被谁干掉,这个生命周期知识点是大家要去背一下啊,去背一下的,好了,那么接下来咱们就写一写啊。我们在这里边呢,去新建一个网站出来好了,那后这里边写上web of applicationification,下一步然后里边呢,写上内容,说呢,D16个,那在这16个里边呢,咱们就写上啊,关于这个接口the light contexttest,然后写成little s t Li接口的具体使用好保存,那么保存完了之后呢,那么在这里边呢,咱们呀就开始做一下了,说怎么做呢?写我们可能很多同学人生中第一个接听学科。
16:15
我们在src下面新建一个加Z小细包名com.BG power notde点咱们写上cler啊,不是controller是什么呢?Later让大家注意啊,在今后的实际工作过程中呢,我们网站中的监听器接口片离呢,一般都是写在lay s ls提价下面的,在项目组里边也是放在这个包里的啊,那么给我给我的监听器接口实验内起名叫做one late好了,Is。那么这个时候呢,他还是一个普普通通加压力,还不具备监听全局作用对象的这个能力,所以这时怎么办呢?我让它实现一个接口,谁呀,Serve light,咱们写上contacttest这个接口行了,然后在这个接口里边呢,就两个方法,后在方法和contact方法,那么这里边我们分别对这两个方法来进行相关的这个重写处理好了,然后在这里边呢,那么咱们就重写一下了啊,两个方法用来。
17:27
好了,那么康泰声纳方法呢,表示什么意思啊,它会在全局作用对象被创建,被初始化的时候被触发调用,那么这里边我们就喊一嗓子啊,说什么呢?说这个啊,这个恭喜啊,恭喜恭喜啊啊恭喜恭喜什么的,是吧?来世啊,来世走一招啊,来世呢,我们说走一招啊,来世走一招,好了,人诞生了,那么康泰尔迪特尔这个方法呢?哎,我们去看看是在全局作用对象要干嘛呢?将要被销毁的时候,那我们也喊一嗓子,说什么呢?说这个,说这个兄弟误怕啊,兄弟,我们说误怕,因为人家都要被干掉了嘛,对吧,人要被干掉了,兄弟啊,我们说不要怕啊,不要怕,说什么呢?20年之后啊,你还是一条好汉,这说给谁听呢?说给这个将要被销毁的。
18:27
在集中对象什么的,诶这得干好了,那么这就是一个接进去接口实验内很简单,那么接下来干嘛呢?我们需要到当前网站中的配置文件中,把这事儿告诉他们看好了,那在这儿,那咱们就写上啊得来说呢。加啊,那么将我们的这个监听器这个接口实现内去注册,注册到我们的这个康中好了,然后在这里边呢,怎么写呢,很简单啊,写一个叫做listen的标签,然后在这个class里边写上什么呢?这个监听器接口圈内它的内路件即可行了,就这么一点点就行了,在这儿,那么在我们的这个tomcat启动的时候,我们淘CA呢,将会负责拗出这个监精系力的实力对象,并把这个实力对象呢与全局作用对象来进行一个绑定,那么等到全球作用对象被拗的时候,他就被触发,那么当全球量被销毁的时候,他的方法也要被触发,那么接下来我们可以进行一次简单的测试好了,那么首先依然是发布,那在这里边呢,我们看一下啊,诶已经变成第16了,行了保存一下,那么在这里边我们呀。
19:48
早起,你看啊,第一个to在启动的时候会为当前网站又出一个全局踪对象,而这个行为呢,会让我们的监容器侦测到,那么此时它里边的contest的阴暗方法会被调用,看到没有在启动过程中。
20:07
喊了嗓子,诶,恭喜恭喜啊,来试走一招好了,然后现在我们把服务器关闭,在服务器关闭的时候呢,我们服务器会把当前网站中的权益中要做销毁,那么要在销毁的时候,我们的监测器就会触发了,看到没有,兄弟别怕,20年后你还比较好看,诶,这个就是什么呢?Serve light contest的这个接口,有了这个接口呢,你能知道在何年何月何日全局作用对象被创建,又是在何年何月何日我们的全局作用对象被销毁,诶,做这个事情啊,好,那么接下来我们再看另一个接口啊,八句口里边怎么不再讲两个呀,对不对啊,好,它叫什么呢?它呀叫做several light,叫做conest啊,叫conest attribute attribute接。
21:08
这是八号天气接口中的第二个,那这玩意干嘛用的,这玩意干嘛用的?诶我们看一下,你看这个名字,Serve contest attribute listener,那么说明什么问题啊,这个接地器接口啊,应该也是对全居中对象来进行监控的。那么他是不是对全局作用对象的这个生命周期来监控呢?他不关心啊,不关心,他不关心全局作用作用对象何时生,何时死,那么他关心的是什么呢?你看serve light contest attribute,那咱们知道在全局作用对象中,它利用这个2TRIBUTE的属性来存放共享数据的,所以呢,这个接口实际上是对全局作用对象中的共享数据何时发生变化来进行监控的。好了,我们看一下啊。
22:07
这写上说通过这个接口可以合法的监测全局作用域对象中怎么样呢?这个共享数据,它的一个什么呢?它的这个变化时刻,哎,在这。好了,那么在这个接口里边,它有几个监听事件方法呢?诶我们看一下啊,它有几个今事验方法的,那咱们说说它主要有三个,哪三个呢?咱们先说public word叫什么呢?它叫做这个contest什么呢?叫ad这个方法,那么这个方法呢,它呢,会在什么呢?会在我们的这个全局作用于对象里边,去添加这个共享数据的时候被触发好了,然后public word它叫什么呢?叫conest replace啊replace这个方法,那么这个方法里边,这个方法它在何时被触发呢?在全局作用对象更新啊,去更新,更新这个共享数据的时候被触发,还有一个什么呢?Public,然后写上word,然后写上。
23:24
Contextest,什么remove remove,那么这个方法呢,它会在全局作用对象去删除啊,在全共享里边删除共享数据的时候被触发,诶,这是第二个接口,好了,那么接下来呢,我们先不着急写代码,我们先去看看啊,看看一个小问题,说什么呢?说一说呀,这个全局作用域对象,那么它的这个共享数据,它的这个什么呢?变化时刻啊变化时刻好了,比如在这里边呢,我们像tomcad去索要得到了当前网站中的这个全举中对象,好了,request.get server,我们就comp好了,反过来,那么再来把们写命令,写上application vacation.set a build,然后我们放里边放一个关字,叫做K1。
24:24
然后这里边是100,那么这时候发生什么事情呢?在这里边发生是叫做新增共享数据啊,新增了一个共享数据,好,那我们再写上application表set,然后写上叫做Bill,然后我们写什么呢?写上这个K1,然后写上200,那这时候发生什么事情呢?更新,那么关键词K1的值将从100呢变为200,那我们写上它呢,叫做更新共享数据好了再来,那么这里边我们写上application.re me remove,咱们写上,然后写上K1,这个方法呢,我们之前没讲过啊,它干嘛用呢?把K1所关联的数据从全局作用对象中删除掉,那么此时发生的情况什么呢?就是删除,删除我们的共享数据三种情况好了。
25:24
那么接下来呢,咱们呀,就去模拟一把,我们回到我们当前的网站中,我们去建第17个网站出来,Model好了,企业级应用外部APP,下一步然后写上17,那么咱们这个网站大主要看的是context listener,这个接口实Z好保存。那么保存完了之后呢,我们看看啊,先去写这个先进去接入时间内,在SR的下面我们呢,去均有一个加压力写报名,com.BG power note.listener RS,然后写成什么呢?Y listeners,好了,OK,一下进来,那么进来之后呢,为了能够让它有权利去监听全局,最后对象中共享数据的变码时刻,我们让它实现一个接口,这个接口叫做serve light context attribute letter好了,然后呢,在这里边我们重写,可以看到啊,里边有什么呢?Attribu的a attribute remove attribute的REPLACE3个方法。
26:38
好了,然后再看这个方法,这个方法呢,会在全局中对象里边添加数据储备出发,那我们就写上啊说新增新增了共享数据好了,Remove remove,这里边sot做输出,那这里边写上什么呢?删除共享数据好了,然后这里呢,Replace,那我们写上so和输出,里边是什么呢?里边写上我们说这个更新更新了共享数据好了。
27:11
然后现在跑到我们的外表他票文献宗,把这事跟他们说一声好了,咱们写上,那么此处是什么呢?注册啊,注册我们说的这个监听器接口实现类好了,写上注册就是说一声的意思,通知啊通知comp才想实现link,然后在这呢,那么咱们就开始做了啊,Listener cm.B的点点完起来需要它了,那么需要它就能测吗?不能,为什么呢?你得有一个S,你得有个S,在S里边完成全局作用对象中数据共享的一个操作呀。所以我们此时跑到src下面,在SS下面呢,新建一个server light出来好了,先写起包名,点contoll controller给它起名叫什么呢?Y serve,好配置。
28:11
下,那么这个so,其对外的这个别名啊,就是小班,越简单越好,那么在小班里边我们做一下,那怎么做呢?把刚才这四行代码加过来,CTRLCCTRL位一放,然后在测的时候呢,设个断点啊设个断点行了,那么现在呢,我们发布一下啊,在ran这边,艾里这我们看一下,这边自动变成17了,好了,然后呢,我们OK一下,第bug走起。特子啊,我们看看,看看我们的监听器好不好用,会不会在关键地方被处罚?
29:02
好了,那么现在呢,我们去访问访问这个网站中的发出请求。走好,看这。那么我们的班就被调用了,被调用在这里边,那么我们在这块啊,就开始执行一下啊,这块线模调,那么先获得当前网站中的全局作用对象,然后在这里边向全局作用对象里边新增一个数据,看走看到没有监听器监听到了,好它新增数据了,然后对全局作用对象中的共享数据做更新。走诶又进去了,它更新数据了,好了,在这里边移除数据,走哎,删除数据,那么这里边证明什么呢?我们的这个监定器接口设验定可以使用好了,大家看,那么刚才这里边所介绍的呢,就是关于这个监定器接口实验率的一些基本的点啊,基本点它干嘛用的对作用于对象来进行监听,所以在后面的学习过程中,当老师说啊,我们在spring every框架里边啊,那么有一个内置的监听器,你一听脑子里边砰就产生了,那么这监听器要么是对全局,要么是对对话,要么是对请求进行监听,他只对这三种对象做监听,哦,行了,那么这块呢,是入门介绍好了。
我来说两句