Web中的监听器【Listener】

Servlet监听器:Servlet规范中定义的一种特殊类,它用于监听Web应用程序中的ServletContext、HttpSession和ServletRequest等域对象的创建与销毁事件,以及监听这些域对象中的属性发生修改的事件。

ServeltContextListener接口: 其用于监听ServletContext对象的创建和销毁事件。

当ServletContext对象被创建时,激发contextInitialized(ServletContextEvent sce)方法

当ServletContext对象被销毁时,激发contextDestroyed(ServletContextEvent sce)方法

package com.wangzhu.listener;

import javax.servlet.ServletContextEvent;
import javax.servlet.ServletContextListener;

/**
 * Servlet监听器:Servlet规范中定义的一种特殊类,它用于监听Web应用程序中的ServletContext、<br/>
 * HttpSession和ServletRequest等域对象的创建与销毁事件,以及监听这些域对象中的属性发生修改的事件。<br/>
 *
 * ServeltContextListener接口<br/>
 * 其用于监听ServletContext对象的创建和销毁事件。<br/>
 * 当ServletContext对象被创建时,激发contextInitialized(ServletContextEvent sce)方法<br/>
 * 当ServletContext对象被销毁时,激发contextDestroyed(ServletContextEvent sce)方法<br/>
 *
 * Servlet的监听器Listener<br/>
 * 随Web应用的启动而启动,只初始化一次,并随Web应用的停止而销毁<br/>
 *
 * @author wangzhu
 * @date 2015-2-1上午12:20:42
 *
 */
public class MyServletContextListener implements ServletContextListener {

    /**
     * 应用监听器的初始化方法
     */
    @Override
    public void contextInitialized(ServletContextEvent sce) {
        System.out.println("MyServletContextListener contextInitialized");
    }

    /**
     * 应用监听器的销毁方法
     */
    @Override
    public void contextDestroyed(ServletContextEvent sce) {
        System.out.println("MyServletContextListener contextDestroyed");
    }

}

HttpSessionListener接口:其用于监听HttpSession对象的创建和销毁
当创建一个Session时,激发sessionCreated(HttpSessionEvent se)方法
当销毁一个Session时,激发sessionDestroyed(HttpSessionEvent se)方法

package com.wangzhu.listener;

import javax.servlet.http.HttpSessionEvent;
import javax.servlet.http.HttpSessionListener;

/**
 * HttpSessionListener接口<br/>
 * 其用于监听HttpSession对象的创建和销毁<br/>
 * 当创建一个Session时,激发sessionCreated(HttpSessionEvent se)方法<br/>
 * 当销毁一个Session时,激发sessionDestroyed(HttpSessionEvent se)方法<br/>
 *
 * @author wangzhu
 * @date 2015-2-1下午3:48:10
 *
 */
public class MyHttpSessionListener implements HttpSessionListener {

    @Override
    public void sessionCreated(HttpSessionEvent se) {
        System.out.println("MyHttpSessionListener sessionCreated");
    }

    @Override
    public void sessionDestroyed(HttpSessionEvent se) {
        System.out.println("MyHttpSessionListener sessionDestroyed");
    }

}

ServletRequestListener接口: 其用于监听ServletRequest对象的创建和销毁
当创建一个ServletRequest时,激发requestInitialized(ServletRequestEvent sre)方法
当销毁一个ServletRequest时,激发requestDestroyed(ServletRequestEvent sre)方法

package com.wangzhu.listener;

import javax.servlet.ServletRequestEvent;
import javax.servlet.ServletRequestListener;

/**
 * ServletRequestListener接口<br/>
 *
 * 其用于监听ServletRequest对象的创建和销毁<br/>
 * 当创建一个ServletRequest时,激发requestInitialized(ServletRequestEvent sre)方法<br/>
 * 当销毁一个ServletRequest时,激发requestDestroyed(ServletRequestEvent sre)方法<br/>
 *
 * @author wangzhu
 * @date 2015-2-1下午3:51:31
 *
 */
public class MyServletRequestListener implements ServletRequestListener {

    @Override
    public void requestDestroyed(ServletRequestEvent sre) {
        System.out.println("MyServletRequestListener requestDestroyed");
    }

    @Override
    public void requestInitialized(ServletRequestEvent sre) {
        System.out.println("MyServletRequestListener requestInitialized");
    }

}

Web.xml中配置如下:

    <!--ServletContext监听器-->
    <listener>
        <listener-class>com.wangzhu.listener.MyServletContextListener</listener-class>
    </listener>

    <!--HttpSession监听器-->
    <listener>
        <listener-class>com.wangzhu.listener.MyHttpSessionListener</listener-class>
    </listener>

    <!--ServletRequest监听器-->
    <listener>
        <listener-class>com.wangzhu.listener.MyServletRequestListener</listener-class>
    </listener>
时间: 2024-08-04 14:24:40

Web中的监听器【Listener】的相关文章

【JAVA 核心技术】java web 中的监听器

为什么要有监听器? 监听器是用来处理一系列事件的java类,可被配置在java web项目中. 既然如此,为什么不用代码直接调用监听器? 这可能是因为J2EE规范规定的项目工程标准,用web.xml指定监听器, 然后服务器中间件如weblogic可以以遵照标准,读取web.xml, 运行监听器处理指定的事件. 这样,listener,servlet是类似的规范. 为什么要有web.xml? web.xml可以方便(也许不)地修改工程中用到的监听器. 这种东西像不像触发器或者轮询进程?如果像,它跟

java中的监听器(listener)

监听器在java应用中比较广泛,记得web启动的时候的监听器吗,记得spring配置中的监听器吗?,记得消息传输中的监听器吗? 没错,这就是listener的应用,无处不在,身为一个java程序员,你如果不懂的监听器的原理是不是很可悲啊,没错我感觉挺可悲的(因为我刚刚才了解到监听器的工作原理), 为了纪念自己取得的一点小小的success,写篇博文记录一下自己的一些不成熟的意见和理解 监听器,就我理解就和我们日常生活中的原始概念一样,就是监听事物的一些行为.举个例子,抗战时期,发现一个国民党特务

Web中的监听器【Listener】与过滤器【Filter】

监听器实例: package com.gwssi.listener; import javax.servlet.http.HttpSession; import javax.servlet.http.HttpSessionEvent; import javax.servlet.http.HttpSessionListener; public class SessionListener implements HttpSessionListener { @Override public void s

好记性不如烂笔头34-java应用中的监听器Listener(1)

监听器是一个专门用于对其他对象身上发生的事件或状态改变进行监听和相应处理的对象,当被监视的对象发生情况时,立即采取相应的行动.监听器其实就是一个实现特定接口的普通java程序,这个程序专门用于监听另一个java对象的方法调用或属性改变,当被监听对象发生上述事件后,监听器某个方法立即被执行. 在很多的地方,很多的行为,都需要去监听.比如我们有一辆汽车,汽车点火之后,我们要检查汽车的各项状态:汽车开动之后,要做一些处理,这些都可以通过监听去实现. 我们如果想设计一个汽车,让这个汽车的各种状态可以被别

[09] 监听器 Listener

1.事件 1.1 事件的概念 在Servlet中有一个概念叫做监听,顾名思义,就是监听某种事件是否发生.就如你是一家娱乐媒体公司的老板,你派出狗仔队去跟着某些明星,比如你想了解他们的绯闻,或者活动进展情况.这里的绯闻和活动进展情况,就是所谓的事件. 在Web编程中,某些操作总会触发一种事件的发生,如启动或关闭容器.创建和销毁对话等.我们说过,Java是面向对象的语言,所以当发生了某种事件,容器将会创建对应的事件类对象. 也就是说,API中已经定义好了事件的类型,容器进行了实现,当某些特定操作发生

web.xml中Filter,Listener,Servlet的区别

一.Servlet Servlet是基本的服务端程序,他来自接口Servlet,接口中有方法service.而Servlet的一个重要实现类,则是tomcat服务器的核心,那就是HttpServlet HttpServlet有方法: public abstract class HttpServlet extends GenericServlet { private static final String METHOD_DELETE = "DELETE"; private static

Java Web总结二十一Listener监听器

一.事件三要素 1.事件源:操作事件的对象,例如:窗体Frame 2.事件监听器:事件监听器监听事件源,例如WindowListner,它是一个接口 3.事件,例如:单击事件,通过事件,可以取得事件源 二.适配器模式 1.当一个接口有较多的方法时,而实现类只需对其中少数几个实现,此时可以使用适配器模式 2.适配器模式常用于GUI编程 三.八种Web监听器 1.Web中有三个事件源,分别是ServletContext->HttpSession->ServletRequest 2.ServletC

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

在Java Web程序中使用监听器可以通过以下两种方法

之前学习了很多涉及servlet的内容,本小结我们说一下监听器,说起监听器,编过桌面程序和手机App的都不陌生,常见的套路都是拖一个控件,然后给它绑定一个监听器,即可以对该对象的事件进行监听以便发生响应,从本质上来说这些都是观察者模式的具体实现,在web程序中的监听器也不例外.在Java Web程序中使用监听器可以通过以下两种方法:通过注解@WebListener来标识一个自定义的监听器:[java] view plain copy@WebListener public class Custom