使用ServletContextAttributeListener

 

 

 

使用ServletContextAttributeListener

 

当调用如下操作时,就会自动执行监听。

application.setAttribute("username","tom");

application.removeAttribute("username");

 

 

ServletContextAttributeListener用于监听ServletContext(application)范围内属性的变化,实现该接口的监听器需要实现如下三个方法。

attributeAdded(ServletContextAttributeEvent event):当程序把一个属性存入application范围时触发该方法。

attributeRemoved(ServletContextAttributeEvent event):当程序把一个属性从application范围删除时触发该方法。

attributeReplaced(ServletContextAttributeEvent event):当程序替换application范围内的属性时将触发该方法。

下面是一个监听ServletContext范围内属性改变的Listener。

    @WebListener  
    public class MyServletContextAttributeListener  
        implements ServletContextAttributeListener  
    {  
        //当程序向application范围添加属性时触发该方法  
        public void attributeAdded(ServletContextAttributeEvent event)  
        {  
            ServletContext application = event.
    getServletContext();  
            //获取添加的属性名和属性值  
            String name = event.getName();  
            Object value = event.getValue();  
            System.out.println(application + "范围内添加了名为"  
                + name + ",值为" + value + "的属性!");  
        }  
        //当程序从application范围删除属性时触发该方法  
        public void attributeRemoved
    (ServletContextAttributeEvent event)  
        {  
            ServletContext application = event.getServletContext();  
            //获取被删除的属性名和属性值  
            String name = event.getName();  
            Object value = event.getValue();  
            System.out.println(application + "范围内名为"  
                + name + ",值为" + value + "的属性被删除了!");  
        }  
        //当application范围的属性被替换时触发该方法  
        public void attributeReplaced
    (ServletContextAttributeEvent event)  
        {  
            ServletContext application = event.getServletContext();  
            //获取被替换的属性名和属性值  
            String name = event.getName();  
            Object value = event.getValue();  
            System.out.println(application + "范围内名为"  
                + name + ",值为" + value + "的属性被替换了!");  
        }  
    } 

 

上面的ServletContextAttributeListener使用了@WebListener Annotation修饰,这就是向Web应用中注册了该Listener,该Listener实现了attributeAdded、 attributeRemoved、attributeReplaced方法,因此当application范围内的属性被添加、删除、替换时,这些对应 的监听器方法将会被触发。

 

 

 

  • 3
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值