ServletContextListener:监听ServletContext对象
package com.listener; import javax.servlet.ServletRequestEvent; public class ServletRequestListener implements javax.servlet.ServletRequestListener { /** * 该请求即将超出Web应用程序的范围。 * request将要销毁 */ @Override public void requestDestroyed(ServletRequestEvent event) { System.out.println("request将要销毁"); } /** * 该请求即将进入Web应用程序的范围。 * request初始化 */ @Override public void requestInitialized(ServletRequestEvent event) { System.out.println("request初始化"); } }
<!-- ServletContext对象监听器 --> <listener> <listener-class>com.listener.ServletRequestListener</listener-class> </listener>
ServletContextAttributeListener:监听对ServletContext属性的操作,比如增加、删除、修改
package com.listener; import javax.servlet.ServletRequestAttributeEvent; public class ServletRequestAttributeListener implements javax.servlet.ServletRequestAttributeListener { /** * 通知一个新的属性被添加到servlet请求。 在添加属性后调用。 */ @Override public void attributeAdded(ServletRequestAttributeEvent event) { System.out.println("request添加属性后调用"); } /** * 通知现有的属性已经从servlet请求中删除。 在属性被删除后调用。 */ @Override public void attributeRemoved(ServletRequestAttributeEvent event) { System.out.println("request删除属性后调用"); } /** * 通知servlet请求中已经替换了一个属性。 在属性被替换后调用。 */ @Override public void attributeReplaced(ServletRequestAttributeEvent event) { System.out.println("request替换属性后调用"); String name = event.getName(); Object value = event.getValue(); System.out.println("request被替换的key:" + name + " ,替换前的value:" + value); } }
<!-- ServletContext属性的操作监听器 --> <listener> <listener-class>com.listener.ServletRequestAttributeListener</listener-class> </listener>