`
newleague
  • 浏览: 1504355 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类

web中的listener简介

阅读更多
                                      


在使用web.xml配置文件的时候,会问listener起什么作用的?

Listener是一种监听的方式,我们可以把自定义的监听程序配置在web.xml文件中。Listener支持Servlet2.3或者2.4的版本,dtd定义的版本也必须是2.3或者2.4。

例如我们在web.xml文件中可以如此配置:

<?xml version="1.0" encoding="ISO-8859-1" ?>
<!DOCTYPE web-app PUBLIC
    "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN"
    "http://java.sun.com/dtd/web-app_2_3.dtd">
   
<web-app>
  <display-name>Struts Examples</display-name>
 
  <listener>
      <listener-class>demo.listener.ContextLoader
      </listener-class>
  </listener>
  ... rest of web.xml

在每一个java的web应用中都只能又一个单独的servlet context。而这个context被放置在整个应用级别上,当应用一旦启动之后,servlet容器就会创建这样一个servlet context来服务于web应用。因此我们也可以创建一个类并实现了一个ServletContextListerner接口,用于通知这个context是否被创建了或者被销毁了。这样当Context被创建时,就会收到一个相关的通知,并且在Context被销毁前也会得到一个通知。

在SerlvetContextListener的接口中定义了2个主要的方法分别时,contextInitialized()和contextDestroyed(). 而容器呢就将ServletContextEvent传送给这2个方法。如此我们还能存取访问ServletContext的属性,方法如 ServletContext.setAttribute(name,vlaue); 这样就能完成必要的初始工作。

这种方法特别适合启动时候的数据装载,但是在使用Struts的时候,我们可以采用plug-in的方式来解决这个问题。因为pulg-in可以做context Listern所能做的任何事情。并且能够传入各种配置在struts-config.xml文件中的参数。

现在附上一段监听的代码作为学习之用。

package demo.listener.ContextLoader;

import java.util.Date;

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

public class ContextLoader implements ServletContextListener {
    public void contextInitialized(ServletContextEvent event) {
        ServletContext ctx = event.getServletContext( );
        ctx.setAttribute("dateStarted", new Date( ));
    }
    public void contextDestroyed(ServletContextEvent event) {
        // clean up here
    }
}

总之,使用了struts之后,我还是建议采用plug-in的方式来解决上述的问题,效果会更好。
分享到:
评论

相关推荐

    web LIstener

    在"webListener"的压缩包中,很可能包含了示例代码或者教程,展示了如何定义和使用这些监听器。这些资源对于理解Web监听器的工作原理以及如何在实际项目中应用它们非常有帮助。通过深入学习和实践,开发者可以更好地...

    web.xml 中的listener、 filter、servlet 加载顺序及其详解.doc

    Web.xml 中的 listener、filter、servlet 加载顺序及其详解 在 Web 应用程序中,web.xml 文件扮演着非常重要的角色,它定义了 Web 应用的结构和配置。其中,listener、filter、servlet 是三个非常重要的概念,它们...

    Servlet中的八大Listener

    Servlet中的八大Listener是Java Web开发中的重要组成部分,它们允许开发者监听和响应Web应用程序中的特定事件。这些Listener提供了在Servlet容器(如Tomcat)管理的生命周期事件上的扩展点,使得我们能够在恰当的...

    listener我的listener listener我的listener

    在IT行业中,Listener是一个非常关键的概念,特别是在Java和Web开发领域。Listener是一种接口或类,它们用于监听特定事件的发生,并在这些事件发生时执行相应的处理逻辑。标题中的"listener我的listener listener我...

    Tomcat中--Error listenerStart错误的解决方案

    在Java Web应用开发过程中,经常遇到的一个问题是Tomcat启动时出现“Error listenerStart”这样的异常信息。本文将详细介绍这一问题的原因、可能涉及的因素以及具体的解决方法。 #### 一、问题背景 在部署Spring ...

    SpringBoot整合Listener的两种方式.docx

    2. **启用注解扫描**:在Spring Boot的主启动类上添加`@ServletComponentScan`注解,这样Spring Boot会自动扫描并注册带有`@WebListener`注解的Listener。 ```java @SpringBootApplication @...

    JavaWeb开发技术-Listener监听器.pptx

    监听器在JavaWeb开发中扮演着关键角色,它们允许开发者对Web应用程序的生命周期、用户交互以及域对象的状态变化进行监控和响应。 1. **监听器的基本概念** - **事件(Event)**:事件是应用程序中发生的一种状态...

    listener监听器demo

    @WebListener public class SessionCounter implements HttpSessionListener { private static int sessionCount = 0; @Override public void sessionCreated(HttpSessionEvent se) { sessionCount++; System...

    java jsp listener小用法

    在JSP中,监听器(Listener)是Servlet API的一部分,属于事件驱动模型,可以监听特定的事件并进行响应。本篇文章将深入探讨如何使用Java JSP的监听器来实现用户登录次数的记录。 一、理解监听器(Listener) 在...

    关于web.xml配置文件servlet,filter,listener加载顺序

    关于filter、servlet在web.xml配置及加载顺序

    Web_5_Listener和Filter1

    监听器是指Servlet API中的一个Listener接口,它允许开发人员监听Servlet的生命周期事件,例如ServletContextListener、ServletRequestListener、HttpSessionListener等。监听器可以实现一些特殊的功能,例如实现...

    web服务器三大组件servlet、Filter、Listener——浅浅笔记

    Web服务器中的三大组件,即Servlet、Filter和Listener,是构建动态Web应用程序的关键元素。这些组件都是基于Java的,主要用于增强和扩展Web服务器的功能。 Servlet是Java中用于处理HTTP请求的核心组件,它是动态...

    servlet+filter+listener 详解

    Servlet、Filter 和 Listener 是 JavaEE 中三种重要的组件,它们在 Web 开发中扮演着重要的角色。Servlet 负责处理客户端的请求,Filter 负责过滤和拦截 Web 资源,而 Listener 负责监听Servlet 容器中的事件。

    详解JavaWeb中的 Listener

    当特定的事件(如Web应用启动、停止、会话创建、销毁等)发生时,Servlet容器会通过回调Listener中的方法来通知监听器。 **一、基本概念** 观察者模式的核心是订阅和通知。在JavaWeb中,Servlet规范定义了一系列...

    Java Web监听器Listener接口原理及用法实例

    Java Web监听器Listener接口是一种特殊的Java接口,用于监听和响应Web应用程序中的事件。该接口定义在javax.servlet包中,提供了一种机制,使开发者能够监听和响应Web应用程序中的事件,从而实现对Web应用程序的监控...

    servlet--listener 各种接口的简单例子

    在Java的Web开发中,Servlet和Listener是两个非常重要的组件,它们构成了动态Web应用程序的核心部分。Servlet主要负责处理客户端的请求并返回响应,而Listener则用于监听和响应各种Web应用程序中的事件。本教程将...

    杂记(一):Listener、Filter和工具

    在IT领域,Listener、Filter和工具是Web开发中不可或缺的部分,它们在构建高效、可扩展的应用程序中扮演着重要角色。下面将详细讲解这三个概念及其相关知识点。 首先,Listener(监听器)是Java Servlet规范中的一...

    Listener单点登录与显示在线用户

    Listener在IT领域中通常指的是监听器,特别是在Java和Web开发中,它是一个接口或类,用于监听特定事件的发生。在本场景中,“Listener单点登录与显示在线用户”涉及到的技术点主要是网络应用中的身份验证、会话管理...

Global site tag (gtag.js) - Google Analytics