- 监听器接口是一组来自于Servlet规范下的接口,共有8个接口;
- 监听器接口需要由开发人员实现,Http服务器提供的jar包内没有对应的实现类;
- 监听器接口用于监控[作用域对象生命周期变化时刻]以及[作用域对象共享数据变化时刻];
- 作用域对象:
- 1)在Servlet规范中,认为在服务端内存中可以在某些条件下为多个Servlet之间提供数据共享方案的对象,被称为作用域对象;
- 2)Servlet下的作用域对象:
- ServletContext:全局作用域对象(application);
- HttpSession:会话作用域对象(session);
- HttpServletRequest:请求作用域对象;
- 监听器接口实现类开发规范:
- 1)根据监听的实际情况,选择对应的监听器接口进行实现;
- 2)重写监听器接口中声明的监听事件处理方法;
- 3)在web.xml文件中将监听器接口实现类注册到Http服务器;
ServletContextListener
接口:- 作用:通过这个接口合法的检测全局作用域对象被初始化时刻和被销毁时刻;
- 监听事件处理方法:
_public void contextInitialized()_
:在全局作用域对象被Http服务器初始化时被调用;public void contextDestroyed()
:在全局作用域对象被Http服务器销毁的时候调用;
ServletContextAttributeListener
接口:- 作用:通过这个接口合法的检测全局作用域对象中共享数据的变化时刻;
- 监听事件处理方法:
_public void contextAdd()_
:在全局作用域对象添加共享数据时调用;public void contextReplaced()
:在全局作用域对象更新共享数据时调用;public void contextRemove()
:在全局作用域对象删除共享数据时调用;
- 全局作用域对象共享数据变化时刻:
ServletContext application = request.getServletContext();
//新增共享数据时刻
application.setAttribute("key1",Object o1);
//修改共享数据时刻
application.setAttribute("key1",Object o2);
//删除共享数据时刻
application.removeAttribute("key1");