web.xml
<listener>
<listener-class>TaskListener</listener-class>
</listener>
TaskListener.java
import java.util.Calendar;
import java.util.GregorianCalendar;
import java.util.Timer;
import javax.servlet.ServletContextEvent;
import javax.servlet.ServletContextListener;
import org.apache.log4j.Logger;
public class TaskListener implements ServletContextListener {
private static final Logger logger = Logger
.getLogger(TaskListener.class);
private static Timer timer;
private static UpdateProbationTask probationTask = new UpdateProbationTask();
/*
* (non-Javadoc)
*
* @see javax.servlet.ServletContextListener#contextDestroyed(javax.servlet.ServletContextEvent)
*/
public void contextDestroyed(ServletContextEvent arg0) {
if (timer != null) {
timer.cancel();
logger.debug("Timer Canceled");
}
logger.debug("web container contextDestroyed");
}
/*
* (non-Javadoc)
*
* @see javax.servlet.ServletContextListener#contextInitialized(javax.servlet.ServletContextEvent)
*/
public void contextInitialized(ServletContextEvent arg0) {
try {
timer = new Timer(true);
GregorianCalendar now = new GregorianCalendar();
//每天2点执行
now.set(Calendar.HOUR_OF_DAY, 2);
now.set(Calendar.MINUTE, 0);
now.set(Calendar.SECOND, 0);
timer.schedule(probationTask, now.getTime());
} catch (Exception e) {
e.printStackTrace();
logger.error("Unable to initialize Schedule.");
}
logger.debug("web container contextInitialized");
}
}
UpdateProbationTask.java
import java.sql.SQLException;
import java.util.TimerTask;
public class UpdateProbationTask extends TimerTask {
@Override
public void run() {
// TODO Auto-generated method stub
try {
System.out.println("#$#^%$%^$%^&#$%#$%");
} catch (Exception e1) {
// TODO 自动生成 catch 块
e1.printStackTrace();
}
}
}
分享到:
相关推荐
Web监听器是Java Web应用程序中的一个重要组件,它们允许开发者在特定事件发生时执行代码,比如在Servlet上下文初始化或销毁时、用户会话创建或结束时等。在Java Web开发中,监听器通过实现特定接口并配置在`web.xml...
4. **Servlet 监听器**:在Web应用中,通常使用Servlet监听器(如`ServletContextListener`)来启动定时任务。 #### 三、具体实现步骤 1. **创建定时任务管理器** (`TimerManager`) 首先,我们需要创建一个`...
在这个"java web使用监听器实现定时周期性执行任务demo"中,我们将探讨如何利用Java的Servlet监听器(Listener)和定时任务API来达到这个目标。 首先,我们要了解Java中的监听器。在Java Web应用程序中,监听器是...
4. **Servlet监听器类型**: - **第一类**:创建和销毁监听器,包括ServletContextListener、HttpSessionListener和ServletRequestListener,分别对应ServletContext、HttpSession和ServletRequest对象的生命周期...
`web.xml`是Web应用的部署描述符,用于定义Servlet、过滤器、监听器等组件的配置信息。以下是一个简单的配置示例: ```xml <servlet> <servlet-name>TimerServlet</servlet-name> <servlet-class>...
本文将详细介绍在JSP环境下实现定时执行任务的三种方法:利用`java.util.Timer`类、通过`ServletContextListener`接口以及采用Spring框架中的`ScheduledTimerTask`。 ### 1. 使用`java.util.Timer` `java.util....
【标题】:“TimerTask定时执行任务”探讨 在Java编程中,定时任务是常见的需求,例如数据备份、日志清理、任务调度等。`TimerTask`是Java内置的一个定时任务框架,它允许开发者创建和安排周期性或者一次性执行的...
在探讨“servlet定时器”的知识点时,我们深入解析如何在Java Web应用中实现定时任务,特别是通过Servlet容器来调度定期执行的任务。这涉及到Java的标准库`java.util.Timer`以及Servlet API中的`...
在本主题“day18 监听器”中,我们将探讨如何利用监听器来统计在线人数、定时销毁超时session、实现session的钝化与活化,以及如何在系统中显示在线用户列表和实现踢人功能,从而防止用户自动登录。同时,还会涉及...
7. **自定义监听器**:除了标准的Servlet监听器外,开发者还可以根据需要定义自己的监听器接口和实现,只要符合Java的事件模型,就可以自由扩展。 8. **应用场景**:Web监听器广泛应用于会话管理、日志记录、缓存...
- 容器级别的定时任务:Tomcat还支持通过`Context`的`Loader`监听器或者`ContextListener`来在启动时执行任务,例如通过`web.xml`配置`org.apache.catalina.startup.ContextConfig`监听器进行初始化操作。...
这可能需要设置定时任务或监听器来检测订单状态,并执行相应的业务逻辑,如自动取消超时订单。 5. **Web文件夹内容**:在项目中,`web`文件夹包含了Web应用程序的公共部分,如HTML、CSS、JavaScript文件、图片资源...
监听器是Servlet规范的一部分,它会在特定的事件(如Web应用启动、关闭)发生时被调用。对于定时任务,我们可以创建一个实现了`ServletContextListener`接口的类,这个类将在Web应用启动时初始化,关闭时清理。 ...
- **监听器机制**:应用可以通过实现一个或多个监听器接口来实现捕捉日程事件,以监视或控制任务/触发器的行为。 - **插件扩展**:Quartz 通过插件机制支持功能扩展,例如记录任务执行历史的日志,或者从文件中...
在Servlet容器(如Tomcat)中,可以通过监听器(Listener)或者Servlet的初始化方法来创建和启动定时器,以实现在Web应用启动后自动开始执行定时任务。 此外,Java 5引入了`java.util.concurrent`包,其中的`...
触发器可设定为定时执行(精确到毫秒)、每日、每周、每月、每年以及按照特定日历排除日期。此外,触发器还支持周期性执行,如在指定次数后结束,或者在指定日期/时间结束,甚至无限期重复。 - **命名与分组**:...
- **注册监听器和Servlet**:将带有WebApplicationInitializer或ServletContainerInitializer接口的类注册为监听器或Servlet。 - **调用ApplicationReadyEvent**:发布此事件,表示应用已经准备就绪,可以开始处理...
标题“Tomcat启动服务运行Servlet”涉及到的是Java Web开发中的核心概念,主要涵盖Tomcat服务器的启动过程以及Servlet的执行机制。Tomcat是一款开源、免费的Web应用服务器,广泛用于部署Java Servlet和JavaServer ...
Quartz提供了强大的调度能力,可以满足不同场景的需求,比如定时执行任务、周期性任务等。 #### 二、Quartz核心概念 1. **Job(作业)**:这是Quartz中的核心概念之一,它代表了要执行的任务。一个`Job`实例必须...