当前位置: 代码迷 >> 综合 >> 监听器Listener
  详细解决方案

监听器Listener

热度:21   发布时间:2024-02-19 18:16:57.0

Listener概述

监听器Listener 是监听某个组件变化的对象.

  • 事件源是固定的,主要是request, session, servletcontext域对象
  • 监听的是域对象变化
    • 对象的创建和销毁, 域对象中存储的数据变化
  • 第?个维度划分:
    • 监听的域对象request, session, servletcontext
域对象 监听器
request ServletRequestListener
session HttpSessionListener
servletcontext ServletContextListener
  • 第?个维度划分:
    • 监听的域对象的状态

ServletContext监听器入门

?于监听 servletcontext域对象, 对象的创建和销毁, 域对象中存储的数据变化

实现步骤

  • 创建类实现监听器接? ServletContextListener
  • 重写抽象?法 注解?式
  • 配置 Listener
@WebListener
public class MyServletContextListener implements ServletContextListener {@Override/*** ServletContext对象,被创建,调?*/public void contextInitialized(ServletContextEvent servletContextEvent) {System.out.println("ServletContext域对象创建");}@Override/*** ServletContext对象,被销毁前调?*/public void contextDestroyed(ServletContextEvent servletContextEvent) {System.out.println("ServletContext域对象销毁");}
}

web.xml配置?式 Listener

<listener><listener-class>com.wensong.listener.MyServletContextListener</listenerclass>
</listener>

监听器事件对象 ServletContextEvent

ServletContextEvent: 是ServletContext域对象的事件对象, 此对象由tomcat引擎创建ServletContext

?法:

  • Object getSource() 获取到被监听的事件源
  • ServletContext getServletContext() 获取到被监听的事件源

?结:

  • 两个?法 除了返回值外,功能实现是?致的, 设计?的为了通?性
  • 其他的监听器事件对象(HttpSessionEvent, ServletRequestEvent), 都有共同的?法 getSource()
@WebListener
public class MyServletContextListener implements ServletContextListener {@Override/*** ServletContext对象,被创建,调?*/public void contextInitialized(ServletContextEvent servletContextEvent) {System.out.println("ServletContext域对象创建");ServletContext context = (ServletContext)servletContextEvent.getSource();System.out.println(context);ServletContext servletContext = servletContextEvent.getServletContext();System.out.println(servletContext);}@Override/*** ServletContext对象,被销毁前调?*/public void contextDestroyed(ServletContextEvent servletContextEvent) {System.out.println("ServletContext域对象销毁");}
}

 

  相关解决方案