JAVA监听器Listener

JAVA监听器Listener
一、 简介
监听器用于对web中内置对象的状态或者属性变化进行监听并做出相应响应的一种Servlet;在内置对象的生命周期中,产生、销毁等状态发生变化时,监听器就会进行监听并做出响应,当内置对象的属性发生增加,删除,修改等变化时,监听器也会做出相应响应。
二、 分类
ServletContext对象监听器
HttpSession对象监听器
ServletRequest对象监听器
三、 如何配置监听器
在web.xml中添加:


<listener>
        <listener-class>com.zsl33.mvc.listener.RequestListener</listener-class>
        <listener-class>com.zsl33.mvc.listener.SessionListener</listener-class>
        <listener-class>com.zsl33.mvc.listener.ApplicationListener</listener-class>
    </listener>

使用注解进行配置:
在监听器类上加上
@WebListener

四、 接口
Session监听器类对Session状态进行监听需要实现javax.servlet.http.HttpSessionListener 接口,对Session属性进行监听则需要实现``` javax.servlet.http.HttpSessionAttributeListener 接口
实例:

@WebListener
public class SessionListener implements HttpSessionListener,HttpSessionAttributeListener{

    @Override
    public void attributeAdded(HttpSessionBindingEvent arg0) {
        // TODO Auto-generated method stub
        System.out.println("session增加:"+arg0.getSession().getId());
    }

    @Override
    public void attributeRemoved(HttpSessionBindingEvent arg0) {
        // TODO Auto-generated method stub
        System.out.println("session删除:"+arg0.getSession().getId());
    }

    @Override
    public void attributeReplaced(HttpSessionBindingEvent arg0) {
        // TODO Auto-generated method stub
        System.out.println("session替换:"+arg0.getSession().getId());
    }

    @Override
    public void sessionCreated(HttpSessionEvent arg0) {
        // TODO Auto-generated method stub
        System.out.println("session创建:"+arg0.getSession().getId());
    }

    @Override
    public void sessionDestroyed(HttpSessionEvent arg0) {
        // TODO Auto-generated method stub
        System.out.println("session销毁:"+arg0.getSession().getId());
    }

}

Request监听器类对Request状态进行监听需要实现javax.servlet.ServletRequestListener 接口,对Request属性进行监听需要实现
javax.servlet.ServletRequestAttributeListener 接口
实例:

@WebListener
public class RequestListener implements ServletRequestListener,ServletRequestAttributeListener{

    @Override
    public void requestDestroyed(ServletRequestEvent arg0) {
        // TODO Auto-generated method stub
        System.out.println("监听:Request内置对象销毁");
    }

    @Override
    public void requestInitialized(ServletRequestEvent arg0) {
        // TODO Auto-generated method stub
        System.out.println("监听:Request内置对象初始化");
    }

    @Override
    public void attributeAdded(ServletRequestAttributeEvent arg0) {
        // TODO Auto-generated method stub
        System.out.println("监听:新增:"+arg0.getName()+":"+arg0.getValue());
    }

    @Override
    public void attributeRemoved(ServletRequestAttributeEvent arg0) {
        // TODO Auto-generated method stub
        System.out.println("监听:删除:"+arg0.getName()+":"+arg0.getValue());
    }

    @Override
    public void attributeReplaced(ServletRequestAttributeEvent arg0) {
        // TODO Auto-generated method stub
        System.out.println("监听:替换:"+arg0.getName()+":"+arg0.getValue());
    }

}

Application监听器类对Application对象状态进行监听,需要实现javax.servlet.ServletContextListener 接口,对Application对象属性进行监听需要实现
javax.servlet.ServletContextAttributeListener 接口;
实例:

@WebListener
public class ApplicationListener implements ServletContextListener,ServletContextAttributeListener{

    @Override
    public void contextDestroyed(ServletContextEvent arg0) {
        System.out.println("监听:Application内置对象销毁");
    }

    @Override
    public void contextInitialized(ServletContextEvent arg0) {
        System.out.println("监听:Application内置对象初始化");

    }

    @Override
    public void attributeAdded(ServletContextAttributeEvent arg0) {
        System.out.println("监听:新增:"+arg0.getName()+":"+arg0.getValue());

    }

    @Override
    public void attributeRemoved(ServletContextAttributeEvent arg0) {
        System.out.println("监听:删除:"+arg0.getName()+":"+arg0.getValue());

    }

    @Override
    public void attributeReplaced(ServletContextAttributeEvent arg0) {
        System.out.println("监听:替换:"+arg0.getName()+":"+arg0.getValue());

    }

}

原文地址:https://www.cnblogs.com/zhangsonglin/p/10773448.html

时间: 2024-10-28 20:12:25

JAVA监听器Listener的相关文章

Java监听器Listener使用详解

监听器用于监听web应用中某些对象.信息的创建.销毁.增加,修改,删除等动作的发生,然后作出相应的响应处理.当范围对象的状态发生变化的时候,服务器自动调用监听器对象中的方法.常用于统计在线人数和在线用户,系统加载时进行信息初始化,统计网站的访问量等等. 分类:     按监听的对象划分,可以分为 ServletContext对象监听器 HttpSession对象监听器 ServletRequest对象监听器     按监听的事件划分 对象自身的创建和销毁的监听器 对象中属性的创建和消除的监听器

java监听器listener学习

监听器主要用于监听web应用中某些对象.信息的创建.销毁.增加.修改.删除等操作的发生,然后做出相应的响应处理.当监听器监听的范围对象的状态发生变化时,服务器自动调用监听器对象中的对应方法,常用于统计在线人数,系统加载时进行信息初始化等等. 监听器的分类: 按监听的对象划分,可以分为 ServletContext对象监听器 HttpSession对象监听器 ServletRequest对象监听器  按监听的事件划分 对象自身的创建和销毁的监听器 对象中属性的创建和消除的监听器 session中的

【java web】监听器listener

一.简介 Java的监听器,也是系统级别的监听.监听器随web应用的启动而启动.Java的监听器在c/s模式里面经常用到,它会对特定的事件产生产生一个处理.监听在很多模式下用到,比如说观察者模式,就是一个使用监听器来实现的,在比如统计网站的在线人数. 1.1 监听器分类 1) 按监听的对象划分,可以分为: ServletContext对象监听器 HttpSession对象监听器 ServletRequest对象监听器 2)按监听的事件划分 对象自身的创建和销毁的监听器 对象中属性的创建和消除的监

javaweb学习总结(四十七)——监听器(Listener)在开发中的应用

监听器在JavaWeb开发中用得比较多,下面说一下监听器(Listener)在开发中的常见应用 一.统计当前在线人数 在JavaWeb应用开发中,有时候我们需要统计当前在线的用户数,此时就可以使用监听器技术来实现这个功能了. 1 package me.gacl.web.listener; 2 3 import javax.servlet.ServletContext; 4 import javax.servlet.http.HttpSessionEvent; 5 import javax.ser

servlet监听器Listener(理论+例子)

Listener采用了观察者模式(24种模式之一),Listener是servlet的监听器,他可以监听客户端的请求.服务器端的操作等, 通过监听器,可以自动激发一些操作.比如:监听在线用户数量 当增加一个HttpSession时,就会激发sessinCreated(HttpSessionEvent sce)方法,这样就可以给在线人数+1了. 常见的监听器接口: ServletContextAttributeListener 监听对servletContext属性的操作,比如删除.增加.修改属性

java监听器

一.先看看jdk提供的event包:public interface EventListener:所有事件侦听器接口必须扩展的标记接口. package java.util; /** * A tagging interface that all event listener interfaces must extend. * @since JDK1.1 */ public interface EventListener { } public class EventObject extends O

Javaweb基础---&gt;监听器listener(转发)

JavaWeb中的监听器 1.基本概念 JavaWeb中的监听器是Servlet规范中定义的一种特殊类,它用于监听web应用程序中的ServletContext, HttpSession和 ServletRequest等域对象的创建与销毁事件,以及监听这些域对象中的属性发生修改的事件. 2.Servlet监听器的分类 在Servlet规范中定义了多种类型的监听器,它们用于监听的事件源分别为ServletContext,HttpSession和ServletRequest这三个域对象 Servle

Servlet3.0学习总结(四)——使用注解标注监听器(Listener)

Servlet3.0学习总结(四)——使用注解标注监听器(Listener) Servlet3.0提供@WebListener注解将一个实现了特定监听器接口的类定义为监听器,这样我们在web应用中使用监听器时,也不再需要在web.xml文件中配置监听器的相关描述信息了. 下面我们来创建一个监听器,体验一下使用@WebListener注解标注监听器,如下所示: 监听器的代码如下: 1 package me.gacl.web.listener; 2 3 import javax.servlet.Se

Servlet监听器Listener

Listener实在servlet2.3中加入的,主要用于对Session,request,context等进行监控. 使用Listener需要实现响应的接口.触发Listener事件的时候,tomcat会自动调用Listener的方法. 在web.xml中配置标签,一般要配置在<servlet>标签前面,可配置多个,同一种类型也可配置多个 <listener> <listener-class>com.xxx.xxx.ImplementListener</list