监听器Listener
1.什么是监听器
监听器就是监听某个对象的的状态变化的组件 监听器的相关概念: 事件源:被监听的对象 ----- 主要三个域对象request session servletContext 监听器:监听事件源对象 事件源对象的状态的变化都会触发监听器 ---- 6+2 响应行为:监听器监听到事件源的状态变化时 所涉及的功能代码 ---- 程序员编写代码
2.监听器有哪些
第一维度:按照被监听的对象划分:ServletRequest域 HttpSession域 ServletContext域 第二维度:安装监听的内容分:监听域对象的创建与销毁的监听域对象的属性变化的
3.ServletContextListener
ServletContextListener:用于监听ServletContext域的创建与销毁的监听器
应用场景:服务器启动时,加载配置信息
ServletContext域的生命周期
何时创建:服务器启动创建
何时销毁:服务器关闭销毁
作用范围:整个web应用
监听器的编写步骤:
- 编写一个监听器类去实现监听器接口
- 覆盖监听器的方法
- 需要在web.xml(注解)中进行配置
代码实现:
public class MyServletContextListener implements ServletContextListener{
@Override
public void contextInitialized(ServletContextEvent sce) {
System.out.println("ServletContext对象创建");
ServletContext context = sce.getServletContext();
System.out.println(context);
Object source = sce.getSource();
System.out.println(source);
}
@Override
public void contextDestroyed(ServletContextEvent sce) {
System.out.println("ServletContext对象销毁");
}
}
web.xml配置
<listener>
<listener‐class>com.itheima.contextfilter.MyServletContextListener
</listener‐class>
</listener
注解方式:
@WebListener
public class MyServletContextListener implements ServletContextListener{
@Override
public void contextInitialized(ServletContextEvent servletContextEvent) {
System.out.println("ServletContext对象创建的了.........");
}
@Override
public void contextDestroyed(ServletContextEvent servletContextEvent) {
System.out.println("ServletContext对象销毁的了.........");
}
}