JavaWeb知识——Listener监听器的使用

知识点汇总

一、ServletContextListener:监听ServletContext对象被创建或销毁的Servlet监听器
①创建实现Servlet Context Listener的类并且实现其中的两个方法。
②在web.xml文件中配置Listener
作用:在当前web应用被加载时对当前的web应用相关资源进行初始化操作。
二、域对象中属性变更的事件监听器这三个监听器的接口分别是:
ServletContextAttributeListener、HttpSessionAttributeListener、ServletRequestAttributeListener
三、感知Session绑定的时间监听器
HttpSessionBindingListener接口和HttpSessionActivationListener接口不需要配置web.xml
代码示例:

实现ServletContextListener,ServletRequestListener,HttpSessionListener接口
public class HelloServletContextListener implements ServletContextListener,
ServletRequestListener,HttpSessionListener {
    @Override
    public void contextInitialized(ServletContextEvent sce) {
        System.out.println("ServletContext对象创建"+sce.getServletContext());
    }

    @Override
    public void contextDestroyed(ServletContextEvent sce) {
        System.out.println("ServletContext对象被销毁"+sce.getServletContext());
    }

    @Override
    public void requestDestroyed(ServletRequestEvent sre) {
        System.out.println("ServletRequestListener被销毁");
    }

    @Override
    public void requestInitialized(ServletRequestEvent sre) {
        System.out.println("ServletRequestListener被创建");
    }

    @Override
    public void sessionCreated(HttpSessionEvent se) {
        System.out.println("httpSession被创建");
    }

    @Override
    public void sessionDestroyed(HttpSessionEvent se) {
        System.out.println("HttpSession被创建");
    }
}

ServletContextAttributeListener,ServletRequestAttributeListener,HttpSessionAttributeListener接口实现
public class AttributeListener implements ServletContextAttributeListener,
        ServletRequestAttributeListener,HttpSessionAttributeListener {
    @Override
    public void attributeAdded(ServletContextAttributeEvent scae) {
        System.out.println("");
    }
    @Override
    public void attributeRemoved(ServletContextAttributeEvent scae) {

    }
    @Override
    public void attributeReplaced(ServletContextAttributeEvent scae) {

    }
    @Override
    public void attributeAdded(ServletRequestAttributeEvent srae) {
        System.out.println("向request中添加了一个属性"+srae.getName()+srae.getValue());
    }
    @Override
    public void attributeRemoved(ServletRequestAttributeEvent srae) {
        System.out.println("request中移除了一个属性"+srae.getName()+srae.getValue());
    }
    @Override
    public void attributeReplaced(ServletRequestAttributeEvent srae) {
        System.out.println("request中替换了一个属性"+srae.getName()+srae.getValue());
    }
    @Override
    public void attributeAdded(HttpSessionBindingEvent se) {

    }
    @Override
    public void attributeRemoved(HttpSessionBindingEvent se) {

    }
    @Override
    public void attributeReplaced(HttpSessionBindingEvent se) {

    }
}

在web.xml中配置如下

 <!--配置Listener-->
    <listener>
        <listener-class>cn.javaweb7.com.HelloServletContextListener</listener-class>
    </listener>
    <listener>
        <listener-class>cn.javaweb7.com.AttributeListener</listener-class>
    </listener>
实现HttpSessionBindingListener, HttpSessionActivationListener接口
public class Customer implements HttpSessionBindingListener,
        HttpSessionActivationListener{
    @Override
    public void valueBound(HttpSessionBindingEvent event) {
        System.out.println("绑定到Session");
    }
    @Override
    public void valueUnbound(HttpSessionBindingEvent event) {
        System.out.println("从Session中解除绑定");
    }
    @Override
    public void sessionWillPassivate(HttpSessionEvent se) {
        System.out.println("从内存中写到磁盘上。。。");
    }
    @Override
    public void sessionDidActivate(HttpSessionEvent se) {
        System.out.println("从磁盘中读取出来。。。");
    }
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值