Link: http://www.javabeat.net/tips/178-servletcontextlistener-example.html
This tips explains the how to use ServletContextListener
. There will be only one ServletContext for each web application. ServletContext will be created while deploying the application. Once the ServletContext is created, it will be used by all the servlets and jsp files in the same application. ServletContext
is also called as the application scope variables in the web application scenario.
ServletContextListener
has the following two methods:
-
- public void contextInitialized(ServletContextEvent event)
-
- public void contextDestroyed(ServletContextEvent event)
Look into the following example for how to implement the ServletContextListener methods:
ServletContextExample.java
package example;
import javax.servlet.ServletContext;
import javax.servlet.ServletContextEvent;
import javax.servlet.ServletContextListener;
public class ServletContextExample implements ServletContextListener{
ServletContext context;
public void contextInitialized(ServletContextEvent contextEvent) {
System.out.println("Context Created");
context = contextEvent.getServletContext();
// set variable to servlet context
context.setAttribute("TEST", "TEST_VALUE");
}
public void contextDestroyed(ServletContextEvent contextEvent) {
context = contextEvent.getServletContext();
System.out.println("Context Destroyed");
}
}
web.xml
<?xml version="1.0" encoding="UTF-8"?>
<web-app version="2.5"
xmlns="http://java.sun.com/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee
http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd">
<listener>
<listener-class>
example.ServletContextExample
</listener-class>
</listener>
</web-app>
In the above example ServletContextExample
implements ServletContextListener
. It has two methods contextInitialized
which is called when the ServletContext is created. Another one is contextDestroyed
which is called while context is destroyed, this happens normally when web server is shut down or crash.
分享到:
相关推荐
在Java Web开发中,`ServletContextListener`是一个非常重要的接口,它是Servlet API的一部分,定义了两个方法:`contextInitialized`和`contextDestroyed`。这个接口的主要作用是监听Servlet上下文(`...
在这个“Servlet监听器例子”中,我们将深入探讨如何使用`ServletContextListener`, `HttpSessionListener`, 和 `HttpSessionAttributeListener`来实现不同的功能。 首先,`ServletContextListener`接口用于监听...
<listener-class>com.example.MyServletContextListener</listener-class> ``` 四、`Listener`实例代码 以下是一个简单的`ServletContextListener`实例,用于在Web应用启动时打印一条消息: ```java import ...
Servlet监听器是实现了Java Servlet API中特定接口的类,例如`ServletContextListener`、`ServletRequestListener`和`HttpSessionListener`等。当Web应用启动、关闭,或者用户会话创建、销毁等事件发生时,监听器会...
本教程将深入讲解如何利用Java的监听器机制来统计在线人数,具体涉及到ServletContextListener、HttpSessionListener以及HttpSessionAttributeListener。 首先,`ServletContextListener`是Java Servlet API中的一...
<listener-class>com.example.ReloadResourceListener</listener-class> ... ``` 通过这种方式,我们可以在Web应用启动时触发`LoadResourceTimerTask`,实现定时加载或更新资源的功能。如果希望任务定期执行,...
1. **ServletContextListener**:用于监听整个Web应用程序的启动和关闭事件。 2. **HttpSessionListener**:用于监听HTTP会话的创建和销毁事件。 3. **ServletRequestListener**:用于监听HTTP请求的初始化和销毁...
<listener-class>com.example.MyServletContextListener</listener-class> ``` 或者使用Java的注解方式(Java EE 6及以上版本): ```java @WebListener public class MyServletContextListener implements ...
<listener-class>com.example.TimerListener</listener-class> ... ``` 4. **自定义功能**:在提供的描述中提到,这个demo只实现了定时监听和周期性执行任务的基础功能,实际的应用场景可能需要添加邮件发送、...
<listener-class>com.example.CustomContainerCreator</listener-class> <!-- ... --> ``` 这样,每次Web应用启动时,`CustomContainerCreator`的`contextInitialized`方法都会被调用,你可以在这里初始化你的...
监听器通过实现不同的接口,如`ServletContextListener`, `HttpSessionListener`, `ServletRequestListener`等来响应这些事件。 **常见监听器类型**: 1. `ServletContextListener`: 监听应用的启动和关闭,常用于...
对于定时任务,我们可以创建一个实现了`ServletContextListener`接口的类,这个类将在Web应用启动时初始化,关闭时清理。 例如,创建一个名为`TimerTaskListener`的类: ```java import javax.servlet....
<listener-class>com.example.ServiceLoader</listener-class> ... ``` 通过以上步骤,Web应用在启动时会自动运行`ServiceLoader.contextInitialized`,从而启动后台任务,而在应用关闭时,`ServiceLoader....
<listener-class>com.example.MyServletContextListener</listener-class> ``` 在对应的Java类`MyServletContextListener`中,实现`contextInitialized`和`contextDestroyed`方法,分别处理Web应用程序的启动和...
监听器通过实现各种接口(如HttpSessionListener、ServletContextListener等)来创建。 **常见的监听器类型**: 1. **ServletContextListener**:监听应用程序的初始化和销毁。 2. **HttpSessionListener**:监听...
<listener-class>com.example.TimerStartupListener</listener-class> ... ``` 5. 最后,在Eclipse JEE环境中,部署并启动这个Web应用,`Timer`就会按照预设的时间间隔执行`TimerTask`中的逻辑。 通过这种方式...
<listener-class>com.example.MySessionListener</listener-class> ... ``` 如果项目使用了Spring Boot或其他现代框架,配置可能会有所不同,但基本原理相同,即通过框架提供的方式注册监听器。 此外,还可以...
常见的Listener有HttpSessionListener、ServletContextListener等。例如: ```xml <listener-class>com.example.SessionListener</listener-class> ``` `com.example.SessionListener`是Listener的实现类。 ...
<listener-class>com.example监听器类全名 ... ``` 3. **实现事件处理方法**:在监听器类中,你需要实现接口中定义的抽象方法,如contextInitialized和contextDestroyed,分别处理应用程序启动和关闭的事件。 ...
public class YourServletContextListener implements ServletContextListener { @Override public void contextInitialized(ServletContextEvent sce) { // 创建和调度定时任务 Timer timer = new Timer(); ...