00:00
来我们继续往后说啊呃,那么下一个话题呢,我们来完成一下,呃,就是这样的一个需求啊,我们来统计一下当前我这个网站的一个在线人数啊啊,那么其实实在这个功能呢,我们主要是想给大家去讲一个监听器这样的一个技术啊,这对于对于我们现在的这个员工管理系统来讲,你完全没必要去统计这个在线人数啊,所以说这个功能呢,就是说算是这个凑出来的哈,啊,主要是给大家去讲这个建立地这个功能的,OK,好吧,那同学来说一下,呃,怎么去实现一个这个在线的这个人数统计呢?我们先把这个需求给大家分析一下,呃,你如果想知道我当前有多少个人在线的话,那么我就得知道我怎么能确定某一个用户上线了呢?是不是我们得解决这个问题啊,如果说我能知道某个用户上线了,哎,那我只需要去做一个统计,就是你上线一个人,我就给你啊,在那个技术上面给你加上个一,你再上线一个,我再给你在这个技术上面加上个一,这样我就可以统计出来你有多少个人上线了,是这样的吧?OK,好,那我们就来找一个突破口,我怎么就能知道某个用户上线了呢?
01:17
大家想一下请求过来吗?想一下啊,如果说呃,我发送了一个请求,比如说某个用户发送了一个请求过来了,那么这个能不能认为他上线了。能不能认为说这个已经有一个用过来了,过可不可以啊,其实这个得分情况,如果说你是,呃,你确定你就是第一次解决过来的,那么其实你就是新来的一个用户,这个没问题吧,但是呢,大家注意,在这个比如说我第一次与你做了一个访问以后,我在接下来的几次,我也是要每次都去发送请求的,但接下来的几次请求,我们就不能认为说有新的用户过来了,是不是还是同一个用户啊,对吧?所以说我们要去呃统计一下这个有多少个人在线啊,或者说有多少个人,有多少个这个用户的话,我们不能通过这个请求来去统计,因为这个太粗略了,能听懂吧,那么我们可以使用一个什么东什么来统计啊,上回刚刚讲过,哎,我们可以啊,通过这个三审来去统计,为什么呢?呃,对于这个session来讲的话,其实你跟我建立了连接以后,那么我会为你这个用户创建一个会话对象,就是那个session对象。
02:36
只要你这个用户一直跟我保持着这个呃交互对吧,比如说你过一会儿发送一个请求,你过一会儿发送一个请求,那么其实在这个整个的过程中,你还是使用的一个算数对象。能明白这个意思吗?所以说呢,我只要去鉴定一下你有多少个三身对象被创建了,那其实我就能大概的去啊,统计出来有多少个人在线了。
03:00
能明白这个意思吧,能听懂吗?OK,所以说呢啊,我们的这个突破口呢,就是我要去统计一下有多少个这个三生对象被创建了,只要你创建一个三星对象,那我就可以认为有一个新的用户上线了。能听明白了吧?OK,好,那么这就是我们的一个突破口,所以说现在我们要完成的事情就是去监听一下这个三的一个创建,那么怎么去监听到这个session的创建呢?我们就需要用到我们现在所讲的一个知识点,叫做监听镜,好,那我们就来看这个监听镜,呃,这个监听镜我们把它叫做listener,它是用来监听我们Java web程序中的事件,那么有哪些事件呢?大家听我说啊,我们大概呢,分成两大类事件,第一大类事件叫做生命周期的事件。啥叫做生命周期的事件啊?就是你对象的创建以及你对象的销毁,这个就是生命周期的事件。比如说对象创建了,它属于生命周期里面的一个事件,你对象被销毁了,也属于生命周期里面的一个事件,说白了描述的就是一个从没有到有,再从有到没有的这样一个过程,这叫做生命周期的时间。另外一大类呢,我们叫做数据绑定一个时间,比如说我可以往三生里面绑定一个数据,当然我们用的最多的就是往里面绑定数据了,那么其实我们也可以把一个数据从session中也好,或者说从request里面也好,都可以把它移除掉。
04:31
理解吧,也就意味着绑定数据,移除数据,其实还有一个叫做替换数据,比如说我原来通过一个key保存了一个数据,那么我在后续呢,我又通过相同的一个K又保存了一个数据,那么其实K一样的话,它就会把之前的数据给你啊,做一个替换,那么这个叫做替换的一个过程,所以说你往三省里面也好,或者说request里面也好,或者说我们即将要讲到一个叫做solid contact也好,往它里面绑定数据,然后呢,替换数据,或者说移除数据,这些都叫做数据绑定相关的事件,那么其实我们整个的这个事件呢,我们可以把它分成这两大种,能明白了吧?OK,那么我们在使用的时候,现在我想去监听三省对象的一个创建,其实主要就是想坚定一下它的生命周期里面的创建这个过程吧,能明白吗?OK,那么我们再去写的时候,我们就要去使用。
05:31
诶,能够监听到三声对象创建的这个监听器,来去完成这个功能了,听懂这个意思了吧?好,那么接下来呢,呃,我们就来具体的看一下,呃,这个地方呢,给大家截了一个图哈,这个一会儿我们还能看得到,大家来看一下,我们去写一个JDG的时候,我们可以自己直接去写一个类,然后呢,自己去实现一些相关的这个监听器的接口,但是呢,我们也可以直接去创建一个listener。
06:01
就跟那个创建solid一样,其实我们那个上次讲的那个filter也能直接创建出来啊,那么我们也可以直接去创建一个listen,那么他就能让我们去选择你要做什么事,大家来看他有对这个request的一个监定,有对session的监定,以及还有一个是solid contact的一个监听啊,这个对象一会我们会给大家去提到啊,那我们现在就先通过这个呃,Request来讲吧,因为它比较简单一点,它里面有一个life ccle,这个叫做生命周期,其实对应的就是一个这样的一个什么监听器啊,就是这样的一个监听器,大家能看到吧,你只要去实现这个接口,那么你就可以去监听request对象的创建操毁,或者说呢,你实现这样的一个接口,那么你就能去监听request对象中数据的绑定、数据的删除、数据的替换这样的一些时间。也就意味着监听器其实就是去实现一些对应的接口就可以了,好,那么现在的话,我们就围绕着我们当前的这个业务,我要去监听在线人数,对吧?我要去实现在线人数的统计,那我就要去监听三审对象的创建,因此我们就要去写出一个监听进来,那么这个监听器我们实现的就是一个life cycle,它所对应的http session listener,它就能帮我们监听到session对象的创建,以及它的销魂都是可以的。
07:28
明白了吧,啊,我们先把这个原理呢给大家说一下,那么说完以后呢,接下来我们就可以来去做一个具体的实现啊。
我来说两句