Servlet监听器

 

01什么是监听器

能监听某个对象状态变化的组件,Servlet的监听器就是监听域对象的变化

监听器相关概念
事件源 被监听的对象
监听器 监听事件源的对象
注册监听器 监听器与事件源相绑定
响应行为 事件源行为触 发的监听器的行为


对于Servlet监听器事件源就是三个域对象request、session、servletContext

servlet ServletRequestListener
ServletRequestAttributeListener
session HttpSessionListener
HttpSessionAttributeListener
servletContext Servlet ContextListener
ServletContextAttributeListener

02使用

域监听器,监听域的创建和销毁

以servletContextListener为例

public class Listener implements ServletContextListener {        public void contextInitialized(ServletContextEvent sce) {      System.out.println("服务器启动");    }
    public void contextDestroyed(ServletContextEvent sce) {      System.out.println("服务器关闭");    }

属性监听器,监听属性的添加,移除,修改

public class Listener1 implements ServletContextAttributeListener {     public void attributeAdded(ServletContextAttributeEvent scae) {            }     public void attributeRemoved(ServletContextAttributeEvent scae) {    }
    public void attributeReplaced(ServletContextAttributeEvent scae) {    }}

Servlet监听器_对象状态

传入的参数scae就是当前的属性信息,当域对象添加移除或修改属性时就会传入这个当前属性作为参数,可以获得名还有值,也可以获得当前域对象。通过getSource获得域对象时需要强制转化类型

 

在写好了监听器要到web.xml中注册,在一个事件触发后会到web.xml中去找有没有对应的触发

Servlet监听器_监听器_02

或者使用注解

@WebListener()



 

 

 

 

 

Servlet监听器_xml_03

它,

不仅仅是一个码