java三大部件之Listener

javaWeb三大部件我们已经讲了两个,最后一个监听器。

监听器的使用案例:可以在事件发生前、发生后进行一些处理,一般可以用来统计在线人数和在线用户、统计网站访问量、系统启动时初始化信息等。

我觉得大家应该挺熟悉的因为呢,我们在java基础时,多多少少有点接触。没错就是GUI,也就是AWT,我们写过比如 点击一个按钮 执行了onclick事件,也就是点击后执行某个函数,就好比一个灯,你点击按钮,发生了亮,再次点击,关闭。

我们的Listener就是这么个东西,你需要把它注册到一个事件源,它就会一直关注,如果发生了指定的事件,立马它就会调用事件函数方法。

不要急,你会问 什么叫事件源,怎么注册呢?

事件源不需要你来写,JavaWeb就有三大事件源(三大域:HttpRequest,HttpSession,ServletContext)

你就记住一个短语,八大监听,这三个事件源,都有共同的两个监听:

(1) HttpRequest: 生死监听:HttpRequestListener      出生死亡大家很熟悉了,它在请求发起出生,请求结束死亡

                                              public void contextInitialized(ServletConfigEvent sce)---上下文初始化

                      public    void    contextDestroyed(ServletConfigEvent  sce)--上下文的销毁
                      其中ServletConfigEvent可以获取事件源。

                           属性监听:HttpRequestAttributeListener     添加属性执行,移除属性执行,替代属性

                                            public void attributeAdded(ServletContextAttributeEvent scab):增加属性

                    public void attributeRemoved(ServletContextAttributeEvent scab) :移除属性
                    public void attributeReplaced(ServletContextAttributeEvent scab) :替换属性(第二次设置统一属性的值)

(2)(3)其他两大域,把HttpRequest更换为HttpSession和ServletContext即可,其中的方法完全一样。

我们总结一下,这就有个六大监听,八大监听还少了两个监听,因为这六个监听,包括Filter和Servlet都必须在WEB.xml中配置,都必须注册。而剩下的两大监听无需注册,比较例外,所以我们拿到下面来讲:

A.HttpSessionBindingListener:这个监听可以添加到javaBean上,这样它就知道自己是否添加到session中了,也就是它自己心里有点b数了。

B.第二个例子,我们在逛淘宝的时候想一想,是不是有的时候你突然接了个电话或者干了别人事把手机搁置在那里,过了一段时间,我们发现打开淘宝,他还是在原来的页面。

它是一直等着你吗?并不是。 你都走了,人家还傻呵呵等着你,人家贱不贱。 这就涉及到了session的钝化和活化,一段时间你不动,它就会自动把你的信息保存在你的硬盘或者数据库上(钝化),你动了以后,他们就会自动加载上来(活化)。 被钝化或者活化的东西必须实现序列化接口,这就相当于门票,你有门票session就会带你去火星,然后回地球。 这个接口就是HttpSessionActivationListener。


如何配置?

<listener>
    <listener-class>完整类名</listener-class>
</listener>

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值