Listener

一、监听器介绍

1.1、监听器的概念

 监听器是一个专门用于对其他对象身上发生的事件或状态改变进行监听和相应处理的对象,当被监视的对象发生情况时,立即采取相应的行动。监听器其实就是一个实现特定接口(C)的普通java程序(B),这个程序专门用于监听另一个java对象(A)的方法调用或属性改变,当被监听对象发生上述事件后,监听器某个方法立即被执行。

监听器的内部机制——接口回调。

举例:A是人也就是事件源,B是监听器,C是A提供出来的接口——吃饭,B实现了C,B就可以用来监听A吃饭这个动作,进而执行B的某个方法。

二、JavaWeb中的监听器

2.1、基本概念

  JavaWeb中的监听器是Servlet规范中定义的一种特殊类,它用于监听web应用程序中的ServletContext, HttpSession和 ServletRequest等域对象的创建与销毁事件,以及监听这些域对象中的属性发生修改的事件。

2.2、Servlet监听器的分类

  在Servlet规范中定义了多种类型的监听器,它们用于监听的事件源分别为ServletContextHttpSessionServletRequest这三个域对象
  Servlet规范针对这三个对象上的操作,又把多种类型的监听器划分为三种类型:

  1. 监听域对象自身的创建和销毁的事件监听器。
  2. 监听域对象中的属性的增加和删除的事件监听器。
  3. 监听绑定到HttpSession域中的某个对象的状态的事件监听器。

1. ServletContextListener

    servletcontext创建:

        1. 启动服务器的时候

    servletContext销毁:

        2. 关闭服务器. 从服务器移除项目

2. ServletRequestListener

    request创建:

        访问服务器上的任意资源都会有请求出现。

        访问 html: 会
        访问 jsp:    会
        访问 servlet : 会 

    request销毁:

        服务器已经对这次请求作出了响应。

3. HttpSessionListener

    session的创建
        只要调用getSession

        html:        不会
        jsp:        会      getSession();
        servlet:     会

    session的销毁
        超时  30分钟
        
        非正常关闭 销毁

        正常关闭服务器(序列化)

        public class MySessionListener implements HttpSessionListener {

            @Override
            public void sessionCreated(HttpSessionEvent se) {
                System.out.println("创建session了");
            }
        
            @Override
            public void sessionDestroyed(HttpSessionEvent se) {
                System.out.println("销毁session了");
            }
        }

作用:

ServletContextListener

    利用它来,在servletcontext创建的时候, 
        1. 完成自己想要的初始化工作

        2. 执行自定义任务调度。 执行某一个任务。 Timer  

HttpSessionListener

    统计在线人数.

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值