JavaWeb学习笔记 | 监听器(Listener)

一.监听器的简介

1.监听器

专门用于对其他对象身上发生的事件或状态改变进行监听或相应处理的对象,
当被监视的对象发生情况时立即采取相应的行动。

2.Servlet监听器

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


二.监听器的分类

按监听的事件类型可以将Servlet监听器分为如下三种类型:
1.监听域对象自身的创建和销毁的事件监听器。
2.监听域对象中的属性的增加和删除的事件监听器。
3.监听绑定到HttpSession域中的某个对象的状态的事件监听器。


三.监听域对象的创建和销毁

1.概括

域对象创建和销毁的事件监听器就是用来监听ServletContext,HttpSession,HttpServletRequest这三个对象的创建和销毁的监听器。

(1).域对象的创建和销毁时机

创建时机 销毁时机
ServletContext WEB服务器启动时为每个WEB应用程序创建相应的ServletContent对象 WEB服务器关闭时为每个WEB应用程序销毁相应的ServletContent对象
HttpSession 浏览器开始与服务器会话时创建 调用HttpSession.invalidate()或超过了session的最大有效时间间隔或服务器进程被停止
ServletRequest 每次请求开始时被创建 每个访问结束后销毁

2.ServletContentListener

(1).作用

监听ServletContext对象被创建或销毁的Servlet监听器

(2).使用方法

(1).创建一个实现了ServletContextListener的类,并且实现其中的两个方法。
(2).在web.xml中进行配置即可

ServletContextListener是最常用的Listener,可以在当前WEB应用被加载时对当前WEB应用的相关资源进行初始化操作。

例如:创建数据库连接池,创建Spring的IOC容器,读取当前WEB应用的初始化参数等等…

(3).示例

(1).创建实现类:

    public class HelloServletContextListener implements ServletContextListener{
   
        public HelloServletContextListener() {
    }
        public void contextInitialized(ServletContextEvent sce) {
   
          System.out.println("Initialized ..." + sce.getServletContext());
        }
        public void contextDestroyed(ServletContextEvent sce) {
   
          System.out.println("Destroyed ...");
        }
    }

(2).web.xml中配置:

    <listener>
        <listener-class>HelloServletContextListener</listener-class>
    </listener>

(4).相关的API

public void contextInitialized(ServletContextEvent sce){}
ServletContent对象被创建的时候(即当前WEB应用被加载时)
Servlet容器调用该方法

public void contextDestroyed(ServletContextEvent sce){}
ServletContent对象被销毁的时候(即当前WEB应用被卸载时)
Servlet容器调用该方法

API中的参数:ServletContextEvent
ServletContextEvent中只有一个方法如下:
getServletContext():获取ServletContext。

3.ServletRequestListener和HttpSessionListener

(1).作用

和ServletContextListener类似。

(2).三个域对象的整合示例:


public class HelloServletContextListener implements ServletContextListener,HttpSessionListener, ServletRequestListener {
   

    public HelloServletContextListener() {
    }
    public 
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值