`

ServletContextListener(Listener机制)

阅读更多

Listener可以监听服务器端的相关状态变化,当服务器状态发生改变,将调用相应的Listener

这种机制可以成为回调机制,ServletContextListener配置如下

web.xml

<listener>
  <listener-class>com.hugui.drp.util.listener.InitListener</listener-class>
 </listener>

InitListener.java(在tomcat启动时就会被初始化)

package com.hugui.drp.util.listener;

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

import com.hugui.drp.util.BeanFactory;
import com.hugui.drp.util.Constants;

/**
 * 采用ServletContextListener完成初始化
 * @author Administrator
 *
 */
public class InitListener implements ServletContextListener {

 public void contextDestroyed(ServletContextEvent arg0) {
  

 }

 public void contextInitialized(ServletContextEvent sce) {
  System.out.println("创建系统的BeanFactory...");
  //将抽象工厂放到ServletContext中
  BeanFactory beanFactory = BeanFactory.getInstance();
  sce.getServletContext().setAttribute("beanFactory", beanFactory);
  
  //加入常量
  sce.getServletContext().setAttribute("add", Constants.ADD);
  sce.getServletContext().setAttribute("del", Constants.DEL);
  sce.getServletContext().setAttribute("modify", Constants.MODIFY);
  sce.getServletContext().setAttribute("showAdd", Constants.SHOW_ADD);
  sce.getServletContext().setAttribute("query", Constants.QUERY);
  sce.getServletContext().setAttribute("audit", Constants.AUDIT);

 }

}
===================================================================================

===================================================================================

另外还有HttpSessionListener

Method Summary
 void sessionCreated(HttpSessionEvent se) //当session被创建时调用,如jsp页面(session=true)打开时
          Notification that a session was created.
 void sessionDestroyed(HttpSessionEvent se)
          Notification that a session is about to be invalidated.

 HttpSessionAttributeListener(session的东西发生改变时:如往session里面添加东西)

Method Summary
 void attributeAdded(HttpSessionBindingEvent se) //session.serAttribute("user");
          Notification that an attribute has been added to a session.
 void attributeRemoved(HttpSessionBindingEvent se)  //如session.removeAttribute("user");
          Notification that an attribute has been removed from a session.
 void attributeReplaced(HttpSessionBindingEvent se)
          Notification that an attribute has been replaced in a session.

HttpSessionBindingEvent

Method Summary
 String getName() //能得到session的名字
          Returns the name with which the attribute is bound to or unbound from the session.
 HttpSession getSession()
          Return the session that changed.
 Object getValue() //得到session的值
          Returns the value of the attribute that has been added, removed or replaced.
分享到:
评论

相关推荐

    listener我的listener listener我的listener

    Listener机制是Java和Web开发中的一个重要组成部分,它提高了代码的可扩展性和可维护性。通过编写Listener,开发者可以实现定制化的行为,对系统状态的变化做出响应,而无需侵入核心业务逻辑。理解并熟练运用...

    listener监听器demo

    在Java编程语言中,`Listener`接口是一种常见的事件处理机制,它主要用于实现对象之间的通信。在Java Swing和Java AWT库中,`Listener`接口被广泛应用于用户界面(UI)组件,以响应用户的操作,例如按钮点击、窗口...

    严重: Error listenerStart

    标题 "严重: Error listenerStart" 是一个典型的Java应用在启动时遇到的问题,通常与日志监听器或事件处理机制有关。这个问题可能出现在使用了Apache Log4j库的应用中,Log4j是一个广泛使用的日志记录框架,用于收集...

    Filter和Listener

    实现Listener需要创建一个实现了相应的监听器接口(如`ServletContextListener`、`HttpSessionListener`等)的类,并在`web.xml`中进行配置。当监听的事件发生时,Listener中对应的方法将被自动调用。 #### Filter...

    listener.zip

    1. **事件监听机制**:Java的事件模型基于发布-订阅模式,其中事件源(如按钮)在发生事件时会发布事件,而事件监听器则订阅这些事件并进行处理。当事件发生时,事件源调用监听器实现中的特定方法,比如`...

    Servlet中的八大Listener

    不过,在JSP/Servlet环境中,这种事件处理机制主要通过在`web.xml`配置文件中注册Listener来实现,而不是像桌面应用程序那样通过代码直接绑定。 #### 二、八大Listener详解 接下来,我们将详细介绍Servlet中的八大...

    SpringBoot之Filter和Listener简单运用.rar

    Listener是实现了特定接口的Java类,如HttpSessionListener、ServletContextListener等,它们可以监听特定的事件,并在这些事件发生时执行相应的操作。在Spring Boot中,我们可以通过`@WebListener`注解创建Listener...

    详解JavaWeb中的 Listener

    JavaWeb中的Listener是基于观察者设计模式的一种机制,它允许应用程序对特定的事件进行监听和响应。在JavaWeb开发中,Listener扮演着观察者的角色,而Servlet容器则充当被观察者,即主题。当特定的事件(如Web应用...

    过滤器filter和监听器listener的应用总结

    过滤器是在Servlet规范中定义的一种机制,允许开发者在请求到达目标Servlet或者JSP之前对请求进行拦截处理,也可以在响应发送回客户端之前对响应进行修改。Filter的主要作用包括数据校验、字符编码转换、安全控制、...

    Java实训教程 Java软件开发实战 web开发技术 第6章 listener 共21页.pptx

    public class Listener1 implements javax.servlet.ServletContextListener { @Override public void contextDestroyed(ServletContextEvent event) { System.out.println("ServletContext destroyed...."); } ...

    我收集的servlet中事件监听器机制we吧xml配置详解

    5. **ServletContextListener**:在Web应用启动和关闭时执行特定操作。 这些监听器可以通过在`web.xml`配置文件中声明,或者使用Java注解(自Servlet 3.0起)进行注册。下面是如何在`web.xml`中配置一个`...

    JSP实现一个网站流量统计器

    可能需要使用线程安全的数据结构或同步机制。 - 考虑到性能,不要频繁地写入数据库。可以设置定时任务,每隔一段时间才将计数结果保存。 - 如果需要区分不同页面的访问量,可以使用`Filter`拦截请求,根据请求URL...

    java监听器学习 统计在线人数

    本教程将深入讲解如何利用Java的监听器机制来统计在线人数,具体涉及到ServletContextListener、HttpSessionListener以及HttpSessionAttributeListener。 首先,`ServletContextListener`是Java Servlet API中的一...

    JAVA定时执行

    在Java编程中,定时执行任务是一项常见的需求,例如在服务器...提供的文件`ReloadResourceListener.java`和`LoadResourceTimerTask.java`正是利用了这种机制,结合`web.xml`进行配置,以在Web应用启动时执行定时任务。

    spring监听器共20页.pdf.zip

    9. **事件传播机制** - 事件发布后,所有注册的`ApplicationListener`都会收到通知,但处理顺序无法保证。 10. **线程安全** - 监听器方法默认是线程安全的,因为每个事件的处理都在新的线程中进行。 以上就是...

    servlet中的过滤器与监听器

    **过滤器** 是Servlet API提供的一种机制,允许开发者在请求到达目标Servlet之前或之后进行处理。通过实现`javax.servlet.Filter`接口,我们可以创建自定义过滤器,这些过滤器可以执行如认证、编码转换、日志记录、...

    Tomcat启动时,自动访问本地servlet

    在Java EE(Java Platform, Enterprise Edition)开发中,Tomcat是一个广泛应用的开源Servlet容器,它遵循Java Servlet和JavaServer ...这个机制在一些需要在服务器启动时进行预处理或者初始化任务的场景中非常有用。

    jsp定时执行的三种方法

    这种机制可以用来初始化和销毁定时任务。当Web应用启动时,监听器会自动触发`contextInitialized`方法,在这里可以创建并启动定时任务;而当应用关闭时,`contextDestroyed`方法会被调用,用于停止定时任务。在`web....

Global site tag (gtag.js) - Google Analytics