`

Java Servlet任务触发器

阅读更多

进程停止,由此进程启动的线程也会停止;

一、触发器类

package my.test

import java.util.Timer;

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

/**
* 任务触发器,Tomcat启动时
*
* @author Administrator
*
*/
public class TaskTrigger implements ServletContextListener
{
private Timer timer = null;
private TaskThread task = null;

public void contextInitialized(ServletContextEvent event)
{
  //初始化监听器,在tomcat启动的时候监听器启动
   timer = new Timer(true);
   task = TaskThread.GetTaskThread(event.getServletContext());
   timer.schedule(task, 1000);//延迟1s后执行,当然也可以定时循环执行,请自己查看Timer类的说明
   log.info("启动任务进程************");
}

public void contextDestroyed(ServletContextEvent event)
{
   //关闭监听器
   timer.cancel();
   log.info("关闭任务进程************");
}
}


二、任务类,必须继承java.util.TimerTask类

package my.test

public class TaskThread extends TimerTask
{
public static TaskThread taskThread = null;
@SuppressWarnings("unused")
private ServletContext context = null;

public TaskThread(ServletContext context)
{
   this.context = context;
}

public static TaskThread GetTaskThread(ServletContext context)
{
   if(taskThread ==null)
    taskThread = new TaskThread(context);
   return taskThread ;
}

public void run()
{
// 在此添加要执行的任务

}
}

三、在web.xml中添加

<listener>
<listener-class>my.test.TaskTrigger</listener-class>
</listener>


分享到:
评论

相关推荐

    java job_触发器例子

    在提供的"webJob"文件中,可能包含了使用Java和Web环境实现的Job和触发器的例子,可能涉及到Servlet、Filter或其他Web组件的集成。这可能是一个完整的Web应用,其中包含了定时任务的配置和实现。 总的来说,Java ...

    Elecve Web Application (Java servlet)

    【Elecve Web Application(Java Servlet)】是一个基于Java技术的Web应用程序,主要利用Java Servlet和JSP(Java Server Pages)来实现一个E-Leave(电子请假)系统。该系统通常用于企业管理员工的请假申请流程,...

    java web定时任务 实例

    在Java Web应用中,为了使定时任务在服务器启动时自动运行,通常会将任务注入到一个Servlet容器初始化参数(如`ServletContextListener`)中。当Web应用加载时,监听器会启动任务。此外,Spring Boot提供了`@...

    基于jsp+servlet+mysql校园任务管理系统

    【基于jsp+servlet+mysql校园任务管理系统】是一个典型的Web应用程序,它利用了Java技术栈来构建一个用于校园内的任务管理平台。系统分为管理员和用户两个角色,各自具有不同的权限和功能,下面将详细介绍这两个角色...

    在Java Web应用中如何实现任务有效调度

    在Java Web应用中,任务调度是一项关键功能,它允许开发者安排任务在特定时间或周期性地执行,以优化系统性能并提升用户体验。特别是在处理大数据、复杂计算或需要定期更新的场景下,如生成数据库报表,任务调度尤为...

    Tomcat的定时任务(计时器)

    在Java Web开发中,Tomcat是一个非常流行的开源应用服务器,它用于部署和运行Servlet和JSP应用程序。有时候,我们可能需要在特定的时间执行一些后台任务,例如数据清理、日志归档或者发送邮件等,这时候就需要用到...

    简单OA(servlet jdbc)

    Servlet是Java Web开发中的一个核心组件,它是一个Java类,用于扩展服务器的功能。在Web应用程序中,Servlet主要负责处理HTTP请求,生成响应内容,并将其返回给客户端。在OA系统中,Servlet充当了服务器端的控制层...

    java quartz计划任务中间件使用教程,每天定时备份数据库的插件jspweb java网站工程.rar

    Quartz是Java领域一款强大的开源任务调度框架,用于在应用程序中安排和执行任务。它提供了丰富的API,使得开发者可以方便地创建、管理和监控计划任务。本教程将深入讲解如何使用Quartz来实现每天定时备份数据库的...

    基于java的Quartz的实例

    Quartz是Java领域一个强大的、...通过以上步骤,你可以在MyEclipse中成功地实现一个基于Java的Quartz实例,通过控制作业和触发器,实现灵活的任务调度。这个实例可以帮助你更好地理解和运用Quartz框架,提高工作效率。

    用java实现的WebIFTTT

    【描述】:这个项目是用Java开发的一个Web应用,利用了Servlet、JSP和CSS技术。Servlet是Java中用于服务器端编程的核心组件,处理HTTP请求并生成响应。JSP(JavaServer Pages)则是一种动态网页技术,它将Java代码...

    java web中级部分(非框架知识)知识总结

    7. JSTL(JavaServer Pages Standard Tag Library):JSTL提供了一系列标签,用于执行常见的任务,如迭代、条件判断、XML处理等,旨在减少脚本代码,提高可读性和可维护性。 8. Oracle数据库:Oracle是广泛使用的...

    java实战项目docs部分(15个项目)

    6. **前端技术**:Java Web项目通常与HTML、CSS、JavaScript等前端技术结合,可能会用到JSP、Servlet、Ajax,或者现代化的前端框架如React或Vue。 7. **RESTful API设计**:在前后端分离的项目中,后端通过提供...

    总结J2EE中使用任务调度三种方式

    本文将深入探讨三种在J2EE环境中实现任务调度的方式:Java内置的定时器API(java.util.Timer)、Servlet容器的定时任务以及第三方库Quartz。 ### 1. Java内置定时器API Java标准库提供了`java.util.Timer`类和`...

    Quartz学习资料

    Quartz 是一个强大的开源任务调度库,用于在Java应用程序中安排和执行各种任务。Quartz 可以无缝地集成到你的应用服务器或Servlet容器中,甚至可以独立运行,支持集群和分布式环境,确保高可用性和容错性。其核心...

    Quartz任务调度管理

    3. **调度器(Scheduler)**:负责管理任务与触发器之间的关系,根据触发器的配置来执行任务。 #### 四、Quartz工作原理详解 Quartz的工作流程如下: 1. **任务定义**:首先定义具体的任务,即定义`Job`类。例如...

    定时任务,JSP

    通过Quartz,你可以定义作业(Job)和触发器(Trigger),实现复杂的定时任务调度。例如,创建一个`JobDetail`对象表示具体要执行的任务,再创建一个`CronTrigger`或者`SimpleTrigger`定义触发规则,最后将它们注册...

    quartz servletcontext配置资料

    Quartz 是一个开源的工作调度框架,它允许开发者创建、安排和执行任务,广泛应用于Java Web应用中。在Servlet环境下,特别是在使用Spring MVC等框架时,Quartz与ServletContext的结合配置显得尤为重要,因为这能让...

    Quartz学习资料(完全).pdf

    - **任务**:任务是实现了`Job`接口的Java类,当触发器触发时,`execute()`方法会被调度器调用执行任务逻辑。 - **命名与分组**:任务和触发器可以分配名称和组名,方便管理和组织。 2. **运行环境** - **嵌入式...

    Quartz学习.doc

    - **任务实现**:任何实现了 `Job` 接口的 Java 类都可以作为任务。 - **任务实例化**:任务类可以由 Quartz 调度器实例化,也可以由应用框架实例化。 - **监听器**:通过实现 `JobListener` 和 `TriggerListener` ...

Global site tag (gtag.js) - Google Analytics