ServletContextListener 是 ServletContext 的监听者,如果 ServletContext 发生变化,如服务器启动时 ServletContext 被创建,服务器关闭时 我们使用缓存的思路大概是: 服务器启动时,ServletContextListener 的 contextInitialized()方法被调用,所以在里面创建好缓存。 当Servlet 容器启动或终止Web 应用时,会触发ServletContextEvent 事件,该事件由ServletContextListener 来处理。 在 ServletContextListener 接口中定义了处理ServletContextEvent 事件的两个方法。 下面通过两个具体的例子来介绍 ServletContextListener 的用法。
说到tomcat也就是servlet容器的问题,至于今天所说的ServletContextListener其实有很多的联系。 我们看一下这个接口的方法: public interface ServletContextListener extends EventListener { public default void Spring又是如何与这ServletContextListener 结合的,tomcat如何找到这ServletContextListener 。 (instance instanceof ServletContextListener)) { continue; } ServletContextListener ServletContextListener的用处还是比较广泛的,因为很多时候我们需要在项目启动之前做一些事情,或者在项目停止之后做一些事情,而且这些事情是专门针对servlet容器的这种应用。
1)ServletContextListener: ServletContextListener能监听到你的应用程序的启动和销毁。 import javax.servlet.ServletContext; import javax.servlet.ServletContextEvent; import javax.servlet.ServletContextListener ; public class MyServletContextListener implements ServletContextListener { public void contextDestroyed
在Servlet API中有一个ServletContextListener接口,它能够监听ServletContext对象的生命周期,实际上就是监听Web应用的生命周期。 当Servlet容器启动或终止Web应用时,会触发ServletContextEvent事件,该事件由 ServletContextListener 来处理。 在 ServletContextListener 接口中定义了处理ServletContextEvent事件的两个方法。 下面通过一个例子来介绍ServletContextListener的用法。本章4.4.1节的例程4-9的CounterServlet类只能统计当Web应用启动后,网页被客户端访问的次数。 由此可见,在Web应用的生命周期中,ServletContext对象最早被创建,最晚被销毁 ServletContextListener接口有两方需要实现的方法:contextInitialized()
1)ServletContextListener: ServletContextListener能监听到你的应用程序的启动和销毁。 import javax.servlet.ServletContext; import javax.servlet.ServletContextEvent; import javax.servlet.ServletContextListener ; public class MyServletContextListener implements ServletContextListener { public void contextDestroyed
在Servlet API中有这样一个ServletContextListener接口,他能过监听servletContext的生命周期,也就是web应用的生命周期。 servletContextListener接口中定义了两个方法,分别用于监听web应用的创建和销毁,利用这两个方法可以完成对网站访问人数进行统计。 ; public class InitListener implements ServletContextListener { public void contextInitialized ServletContextListener的运用有很多,比如说缓存的创建等等。 扩展阅读: 运用ServletContextListener在服务器启动和关闭时创建和关闭缓存 <http://www.qqgb.com/Program/Java/JavaBlog/Program_145756
今天,我们将深入探讨 Java Web 开发中另一个重要的组成部分——Listener(监听器),具体来说,是 ServletContextListener。 1. 在理解 ServletContextListener 之前,让我们先来了解一下 ServletContext 对象。 使用 ServletContextListener 首先,我们需要创建一个实现了 ServletContextListener 接口的类。 小结 通过本文的学习,我们深入了解了 Java ServletContextListener 的使用方法以及生命周期。 ServletContextListener 提供了一种在 Web 应用程序启动和关闭时执行特定代码的机制,使我们能够更好地管理全局资源。
ServletContextListener监听器 在web工程启动的时候,会创建ServletContext对象,在web工程停止的时候ServletContext对象会被销毁,而ServletContextListener 通俗来讲就是: 当ServletContextListener监听器监听到ServletContext对象被创建后,就会马上执行一个方法(可以用来做初始化),当ServletContextListener ServletContextListener监听器的使用方式 编写类实现 ServletContextListener 实现其中的两个回调方法 在web.xml中配置监听器 示例代码如下: public (ServletContextEvent sce) { System.out.println("ServletContextListener监听器监听到 ServletContext 对象被创建了" 监听器监听到 ServletContext 对象被创建了 当停止web工程的时候,会看到控制台输出:ServletContextListener监听器监听到 ServletContext 对象被销毁了
● ServletContextListener:监听ServletContext。 由以上介绍可知,该类需要实现ServletContextAttributeListener和ServletContextListener接口类,其详细代码如下: package servlet; ; public class MyServletContextListener implements ServletContextListener public void contextDestroyed(ServletContextEvent s) { //TODO 该方法实现了ServletContextListener } } } 程序说明:该监听器类实现了ServletContextAttributeListener和ServletContextListener
接下来我们要讲的ServletContextListener主要监听的是Servlet的创建和销毁,貌似也只能监听他的创建和销毁。 Listener实践 1、编写一个类实现ServletContextListener接口 package com.hstc.edu.servlet; import javax.servlet.ServletContextEvent ; import javax.servlet.ServletContextListener; public class MyListener implements ServletContextListener
现在来说说Servlet的监听器Listener,它是实现了javax.servlet.ServletContextListener 接口的服务器端程序,它也是随web应用的启动 而启动,只初始化一次, 对象监听器 · ServletRequest对象监听器 按监听的事件划分 · 对象自身的创建和销毁的监听器 · 对象中属性的创建和消除的监听器 · session中的某个对象的状态变化的监听器 首先来看一下ServletContextListener import javax.servlet.ServletContext; import javax.servlet.ServletContextEvent; import javax.servlet.ServletContextListener * * 示例代码:使用监听器对数据库连接池DataSource进行初始化 */ public class ListenerTest implements ServletContextListener 示例代码二: import java.io.File; import javax.servlet.ServletContextEvent; import javax.servlet.ServletContextListener
#contextInitialized} method * of a {@link ServletContextListener} that was neither declared in #contextInitialized} method * of a {@link ServletContextListener} that was neither declared in #contextInitialized} method * of a {@link ServletContextListener} that was neither declared in #contextInitialized} method * of a {@link ServletContextListener} that was neither declared in #contextInitialized} method * of a {@link ServletContextListener} that was neither declared in
2、ServletContextListener 监听器 javax.servlet.ServletContextListener ServletContext 监听器 监听器的使用步骤。 ServletContextListener 监听器,一定要在 web.xml 文件中配置之后才会生效 <listener> <listener-class>全类名</listener-class> < ServletContextEvent sce) 是 ServletContext 对象的销毁回调 import javax.servlet.ServletContextEvent; import javax.servlet.ServletContextListener ; public class ServletContextListenerImpl implements ServletContextListener { @Override public void
web三大组件之一; 2、事件监听机制 1、事件; 2、事件源:事件发生的地方; 3、监听器:一个对象; 4、注册监听:将事件、事件源、监听器绑定在一起; 当事件在事件源上发生时指定监听器代码; 3、ServletContextListener 创建时调用此方法; void contextDestroyed(ServletContextEvent sce): ServletContext销毁前时调用此方法; 实现监听器步骤: 第一步:定义一个类,实现ServletContextListener import javax.servlet.ServletContext; import javax.servlet.ServletContextEvent; import javax.servlet.ServletContextListener web.xml配置: <listener> <listener-class>这里写接听器实现类的全类名</listener-class> </listener> 注解配置方法: //在自定义的ServletContextListener 接口实现类加上@WebListener即可 @WebListener public class MyServletContextListener implements ServletContextListener
IndexListener.Java类: package com.example.Listener; import javax.servlet.ServletContextEvent; import javax.servlet.ServletContextListener ; public class IndexListener implements ServletContextListener{ @Override public void contextDestroyed .Java类 package com.example.Listener; import javax.servlet.ServletContextEvent; import javax.servlet.ServletContextListener ; import javax.servlet.annotation.WebListener; @WebListener public class IndexListener2 implements ServletContextListener
1.2 Listener 类型 Java 提供了几种类型的 Listener,其中最常见的有以下三种: ServletContextListener(上下文监听器):用于监听 Web 应用程序的启动和关闭事件 2.1 ServletContextListener 示例 ServletContextListener 用于监听 Web 应用程序的启动和关闭事件。 ; @WebListener public class MyAppContextListener implements ServletContextListener { @Override -- 配置 ServletContextListener --> <listener> <listener-class>com.example.MyAppContextListener 4.1 ServletContextListener 生命周期 ServletContextListener 接口定义了两个方法: contextInitialized(ServletContextEvent
Application域监听器一、认识Application域监听器Application域共有两个监听器接口,分别是ServletContextListener ServletContextAttributeListener javax.servlet.ServletContextAttributeListener;import javax.servlet.ServletContextEvent;import javax.servlet.ServletContextListener Author: Lansonli * @Description: MircoMessage:Mark_7001 */public class MyApplicationListener implements ServletContextListener
代码如下package com.example.demo.listener;import javax.servlet.ServletContextEvent;import javax.servlet.ServletContextListener ;import javax.servlet.annotation.WebListener;@WebListener()public class FirstListener implements ServletContextListener (sce); }}此时如果我们直接运行项目就会打印上面那句话,接下来我们直接运行项目,看看是否打印,说明该方法是可行的,2.2 ServletContextListener接口和配置类来进行注册同样我们去掉注解使用配置类注册 代码如下:package com.example.demo.listener;import javax.servlet.ServletContextEvent;import javax.servlet.ServletContextListener ;public class SecondListener implements ServletContextListener { @Override public void contextInitialized
1、创建与销毁监听器: ServletContextListener:Tomcat启动和关闭时调用下面两个方法 public void contextInitialized(ServletContextEvent ServletRequest getServletRequest() ServletContext getServletContext() 3、案例 编写MyServletContextListener类,实现ServletContextListener 接口; 在web.xml文件中部署监听器; 为了看到session销毁的效果,在web.xml文件中设置session失效时间为1分钟; /* * ServletContextListener getServletContext(),用来获取ServletContext对象,即获取事件源对象 */ public class MyServletContextListener implements ServletContextListener
ContextLoaderListener 源码分析 public class ContextLoaderListener extends ContextLoader implements ServletContextListener ContextCleanupListener.cleanupAttributes(event.getServletContext()); } } ContextLoaderListener 实现了ServletContextListener ServletContextListener 接口我们知道是web容器创建的时候开始执行contextInitialized() 方法,web容器销毁时执行contextDestroyed() 方法。 首先判断servletContext中是否存在WebApplicationContext实例,如果存在说明ServletContextListener在web.xml中多次声明,并抛出异常。 ContextLoaderListener实现了ServletContextListener接口,在Web容器启动的时会默认执行它的contextInitialized() 方法,然后获取WebApplicationContext