2.10.3 使用ServletContextAttributeListener
ServletContextAttributeListener
ServletContextAttributeListener
用于监听ServletContext
(application
)`范围内属性的变化,实现该接口的监听器需要实现如下三个方法。
attributeAdded(ServletContextAttributeEvent event)
:当程序把一个属性存入application
范围时触发该方法。
attributeRemoved(ServletContextAttributeEvent event)
:当程序把一个属性从application
范围删除时触发该方法。
attributeReplaced(ServletContextAttributeEvent event)
:当程序替换application
范围内的属性时将触发该方法。
MyServletContextAttributeListener.java
下面是一个监听ServletContext
范围内属性改变的Listener
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34
| package lee;
import javax.servlet.*; import javax.servlet.annotation.*;
@WebListener public class MyServletContextAttributeListener implements ServletContextAttributeListener { public void attributeAdded(ServletContextAttributeEvent event) { ServletContext application = event.getServletContext(); String name = event.getName(); Object value = event.getValue(); System.out.println(application + "范围内添加了名为" + name + ",值为" + value + "的属性!"); }
public void attributeRemoved(ServletContextAttributeEvent event) { ServletContext application = event.getServletContext(); String name = event.getName(); Object value = event.getValue(); System.out.println(application + "范围内名为" + name + ",值为" + value + "的属性被删除了!"); }
public void attributeReplaced(ServletContextAttributeEvent event) { ServletContext application = event.getServletContext(); String name = event.getName(); Object value = event.getValue(); System.out.println(application + "范围内名为" + name + ",值为" + value + "的属性被替换了!"); } }
|
@WebListener注解 注册Listener
上面的ServletcontextListener
使用了@WebListener
注解修饰,这就是向Web
应用中注册了该Listener
,该Listener
实现了attributeAdded
、attributeRemoved
、attributeReplaced
方法,因此当application
范围内的属性被添加、删除、替换时,这些对应的监听器方法将会被触发。