javaweb中的监听器

监听器:javaweb中监听器比较常用, 将它与事件源头绑定在一起就可以通过事件对象在事件源和监听器之间传递信息了。监听器其实就是一个实现特定接口的普通java程序,这个程序专门用于监听另一个java对象的方法调用或属性改变,当被监听对象发生上述事件后,监听器某个方法立即被执行。javaweb中的有三种不同的监听类,分别对应三个不同的域:下面三个接口是各个域创建销毁的时候将调用其对于的方法Servl
摘要由CSDN通过智能技术生成

监听器:javaweb中监听器比较常用, 将它与事件源头绑定在一起就可以通过事件对象在事件源和监听器之间传递信息了。监听器其实就是一个实现特定接口的普通java程序,这个程序专门用于监听另一个java对象的方法调用或属性改变,当被监听对象发生上述事件后,监听器某个方法立即被执行。

javaweb中的有三种不同的监听类,分别对应三个不同的域:

下面三个接口是各个域创建销毁的时候将调用其对应的方法

ServletContext域:ServletContextListener接口

ServletRequet域:ServletRequestListener接口

session域: httpSessionListener接口

当三个域中的属性发生变化时,可以实现下面三个接口监听:

ServletContextAttributeListener接口

ServletRerquestAttributeListener接口

HttpSessionAttributeListener接口

只需要根据需求实现上述不同接口,让后在web.xml文件中配置监听器就可以是实现不同的监听器了

另外,对于session域有点不同,它还有 HttpSessionActivationListener 和 HttpSessionBindingListener 接口
这两个接口也叫session感知型接口,

HttpSessionBindingListener 接口:任何类实现了此接口,不仅可以感知自己本身是否被加入了session域中,还可以感知自己在session中的状态(是否被置换,是否被移除).

httpSessionActivaction 接口: 此接口是当被活化和钝化的时候被执行(活化:从硬盘加载到内存中,钝化:从内存移到硬盘中)。

看实例:

import javax.servlet.ServletContextAttributeEvent;
import javax.servlet.ServletContextAttributeListener;
import javax.servlet.ServletContextEvent;
import javax.servlet.ServletContextListener;

/*
 * 编写ServletContext域的监听器需要实现ServletContextListener接口
 * 
 */
public class MyServletContextListener implements ServletContextListener,ServletContextAttributeListener{
   

    //当servletcontext对象被清除的时候,此方法会被执行
    @Override
    public void contextDestroyed(ServletContextEvent arg0) {
        System.out.println("监听初始化事件:"+arg0);
        System.out.println("ServletContext对象被销毁了");

    }

    //当servletContext对象被服务器创建的时候,此方法会被执行
    @Override
    public void contextInitialized(ServletContextEvent arg0) {
        System.out.println("监听初始化事件:"+arg0);
        System.out.println("ServletContext对象被创建了");

    }

/*
 * 
 * 实现ServletContextAttributeListener接口,可以监听当ServletContext对象中的属性改变时引起相应方法的调用
 * 
 */

    @Override
    public void attributeAdded(ServletContextAttributeEvent arg0) {

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值