- 浏览: 140439 次
- 性别:
- 来自: 北京
文章分类
最新评论
-
puyancheng1988:
哥们儿,我用的jfreechart在linux服务器上生成的图 ...
JFreeChart图表 -
soujava:
...
Linux下Oracle自动备份脚本 -
skylikeblue:
...
基于JAVA实现的手机收发短消息系统
在工程的WEB-INF\web.xml配置文件中加入如下三行,所计划的任务就会在Web容器(或服务器)启动时自动开始执行了:
<listener>
<listener-class>com.xxh.autoTask.ProjectServletContextListner</listener-class>
</listener>
ProjectServletContextListner.java
package com.xxh.autoTask;
import javax.servlet.ServletContextEvent;
import javax.servlet.ServletContextListener;
public class ProjectServletContextListner implements ServletContextListener {
//定时器
private static java.util.Timer timer = null;
//此方法仅在关闭Web容器(或服务器)时被调用一次
public void contextDestroyed(ServletContextEvent event) {
// TODO Auto-generated method stub
timer.cancel();
event.getServletContext().log("定时器已销毁,任务执行结束");
}
//此方法仅在起动Web容器(或服务器)时被调用一次
public void contextInitialized(ServletContextEvent event) {
// TODO Auto-generated method stub
timer = new java.util.Timer(true);
javax.servlet.ServletContext ctx = event.getServletContext();
ctx.log("定时器已启动,任务开始执行");
/*
//如果是用web.xml文件配置参数,则用下面的方式读取参数设置值
long period = Long.valueOf((String)ctx.getInitParameter("period")).longValue();
*/
timer.schedule(new NewTask(), // 所需要执行的任务
0, // 延迟时间(0 --- 表示起动Web容器(或服务器)就立即执行此任务)
30*1000 // 任务的执行间隔时间[单位:毫秒] (此处的间隔时间是30秒)
);
}
}
CustomTask.java
package com.xxh.autoTask;
public interface CustomTask {
/**
* 用于实现自定义的任务
*/
public void execute();
}
CustomTask.java
package com.xxh.autoTask;
public class MyTask implements CustomTask {
public void execute() {
// TODO Auto-generated method stub
System.out.println("在此方法中实现任务的主体");
}
}
NewTask.java
package com.xxh.autoTask;
import java.util.TimerTask;
public class NewTask extends TimerTask {
private static boolean isRunning = false; //运行标志(表示是否正在运行计划的任务)
private static int t = 3;
private CustomTask ct = TaskFactory.getTask();
@Override
public void run() {
// TODO Auto-generated method stub
if(!isRunning){ //当未执行此任务时则开始执行
if(ct != null){
isRunning = true; //将任务执行标志设置为正在执行
ct.execute(); //执行任务
isRunning = false; //将任务执行标志设置为执行完毕
}else{
if(t == 0) return;
t--;
System.out.println();
System.out.println("[Error] [com.xxh.autoTask.NewTask] The task is null.");
System.out.println("[Error] [com.xxh.autoTask.NewTask] The task is null.");
System.out.println("[Error] [com.xxh.autoTask.NewTask] The task is null.");
}
}else{
System.out.println("The task is running.");
}
}
}
TaskFactory.java
package com.xxh.autoTask;
public class TaskFactory {
/**
* 功能:返回实现了CustomTask接口的类的实例对象
*
*
* 例: 如果实现了CustomTask接口的类名是MyTask,
* return new MyTask();
* 如上这样就可以了.
*/
public static CustomTask getTask(){
return new MyTask();
}
}
<listener>
<listener-class>com.xxh.autoTask.ProjectServletContextListner</listener-class>
</listener>
ProjectServletContextListner.java
package com.xxh.autoTask;
import javax.servlet.ServletContextEvent;
import javax.servlet.ServletContextListener;
public class ProjectServletContextListner implements ServletContextListener {
//定时器
private static java.util.Timer timer = null;
//此方法仅在关闭Web容器(或服务器)时被调用一次
public void contextDestroyed(ServletContextEvent event) {
// TODO Auto-generated method stub
timer.cancel();
event.getServletContext().log("定时器已销毁,任务执行结束");
}
//此方法仅在起动Web容器(或服务器)时被调用一次
public void contextInitialized(ServletContextEvent event) {
// TODO Auto-generated method stub
timer = new java.util.Timer(true);
javax.servlet.ServletContext ctx = event.getServletContext();
ctx.log("定时器已启动,任务开始执行");
/*
//如果是用web.xml文件配置参数,则用下面的方式读取参数设置值
long period = Long.valueOf((String)ctx.getInitParameter("period")).longValue();
*/
timer.schedule(new NewTask(), // 所需要执行的任务
0, // 延迟时间(0 --- 表示起动Web容器(或服务器)就立即执行此任务)
30*1000 // 任务的执行间隔时间[单位:毫秒] (此处的间隔时间是30秒)
);
}
}
CustomTask.java
package com.xxh.autoTask;
public interface CustomTask {
/**
* 用于实现自定义的任务
*/
public void execute();
}
CustomTask.java
package com.xxh.autoTask;
public class MyTask implements CustomTask {
public void execute() {
// TODO Auto-generated method stub
System.out.println("在此方法中实现任务的主体");
}
}
NewTask.java
package com.xxh.autoTask;
import java.util.TimerTask;
public class NewTask extends TimerTask {
private static boolean isRunning = false; //运行标志(表示是否正在运行计划的任务)
private static int t = 3;
private CustomTask ct = TaskFactory.getTask();
@Override
public void run() {
// TODO Auto-generated method stub
if(!isRunning){ //当未执行此任务时则开始执行
if(ct != null){
isRunning = true; //将任务执行标志设置为正在执行
ct.execute(); //执行任务
isRunning = false; //将任务执行标志设置为执行完毕
}else{
if(t == 0) return;
t--;
System.out.println();
System.out.println("[Error] [com.xxh.autoTask.NewTask] The task is null.");
System.out.println("[Error] [com.xxh.autoTask.NewTask] The task is null.");
System.out.println("[Error] [com.xxh.autoTask.NewTask] The task is null.");
}
}else{
System.out.println("The task is running.");
}
}
}
TaskFactory.java
package com.xxh.autoTask;
public class TaskFactory {
/**
* 功能:返回实现了CustomTask接口的类的实例对象
*
*
* 例: 如果实现了CustomTask接口的类名是MyTask,
* return new MyTask();
* 如上这样就可以了.
*/
public static CustomTask getTask(){
return new MyTask();
}
}
发表评论
-
Cannot access NLS data files问题的解决办法
2008-10-24 15:14 1424我用的myeclipse 6.5版本,oracle是10g版 ... -
BeanUtil常用方法
2008-10-31 14:25 894Apache Common BeanUtil是一个常用的在对 ... -
安装Visual Editor
2008-11-03 17:05 1246在Eclipse 3.3.2中安装Visual Editor ... -
BeanUtils.copyProperties出现了问题的原因
2008-11-11 15:16 1121使用BeanUtils.copyProperties( des ... -
Servlet/Jsp性能优化
2008-03-05 16:21 710你的J2EE应用是不是运行的很慢?它们能不能承受住不断上升的访 ... -
系统构建高性能J2EE应用的五种核心策略
2008-03-05 16:26 622于J2EE,我们知道当开发 ... -
JFreeChart图表
2008-03-05 16:30 1600在我们编程时如果要把结果显示成图表形式,就离不开JFreeCh ... -
使用JFreeChart 在网站中使用走势图
2008-03-05 16:35 989生活中我们经常用到各种图表,走势图就是其中的一种,例如:股票走 ... -
JFreeChart综合应用
2008-03-05 16:40 739JFreeChart是一个开源的JAVA项目,它主要用来开发各 ... -
要成为Java高手需要注意的25个学习目标
2008-04-05 14:16 5481、你需要精通面向对象 ... -
使用Axis开发Web Service实例
2008-06-03 15:40 842一、Axis安装 1、环境 J2SE SDK 1.3 or 1 ... -
Java实现HTTP的断点续传
2008-06-05 10:39 629(一)断点续传的原理 其实断点续传的原理很简单,就是在Ht ... -
java串口编程
2008-06-05 11:00 1210一年半前在jbuilder2006下写过串口通信程序,最近做一 ... -
Java串行端口技术协议
2008-06-05 11:06 783串行通讯协议有很 ... -
基于JAVA实现的手机收发短消息系统
2008-06-05 11:14 14930 引 言 目前基于GSM网络的短消息应用越来越多。由于采用短 ... -
多国语表单提交乱码问题
2008-06-30 10:43 7881、所有文件都以-utf-8编码格式保存 2、所有文件都设置 ... -
网站跨站点单点登录
2008-07-03 13:20 1088昨天和几位朋友探讨到 ... -
FreeMarker概述
2008-07-03 14:43 729快速入门 (1)模板 + ... -
使用FreeMarker生成Html静态文件(实例)
2008-07-04 10:31 756以下是我在生成新闻的静态文件时用到的代码.仅供参考.请根据实际 ... -
FreeMarker学习手册
2008-07-04 17:11 821(1)模板 + 数据模型 = 输 ...
相关推荐
Java Web定时任务是Web应用程序中实现周期性操作的关键技术,例如数据备份、清理过期记录、发送邮件通知等。在本实例中,我们将探讨如何在Java Web环境中设置和执行定时任务,以及涉及到的相关技术和工具。 首先,...
总结来说,Java实现定时任务有多种方法,其中在Web应用中使用监听器和`TimerTask`是一种常见的方式。这种方式易于理解和实现,但可能不适合复杂的定时需求。对于更复杂的需求,可以考虑使用`...
在Java Web项目中添加定时任务的方法 在 Java Web 程序中加入定时任务是非常重要的,通常我们需要在特定的时间点执行某些任务,以实现自动化操作。这里介绍两种方法来实现定时任务:使用监听器注入和使用 Spring ...
Java 定时任务,每天定时执行任务 Java 定时任务是指在 Java 语言中实现的定时执行任务的机制,通过使用 Timer 和 TimerTask 两个类,可以实现定时执行任务的功能。在这个例子中,我们将实现每天定时执行任务的功能...
在Web项目中,可以通过页面上的按钮触发定时任务的启动,通过表单提交到对应的Servlet或Action。 如果想要实现每日定时执行,只需要调整`timer.schedule`方法的第三个参数,将其改为1000*60*60*24,即一天的毫秒数...
在Spring框架中,定时任务是通过Spring的Task模块来实现的,这使得在非Web项目中也能方便地进行定时任务的调度。以下是对这个主题的详细讲解。 首先,我们需要了解Spring Task的核心组件: 1. **...
在这个"java web使用监听器实现定时周期性执行任务demo"中,我们将探讨如何利用Java的Servlet监听器(Listener)和定时任务API来达到这个目标。 首先,我们要了解Java中的监听器。在Java Web应用程序中,监听器是...
在Servlet容器(如Tomcat)中,可以通过监听器(Listener)或者Servlet的初始化方法来创建和启动定时器,以实现在Web应用启动后自动开始执行定时任务。 此外,Java 5引入了`java.util.concurrent`包,其中的`...
Quartz 是一个开源的作业调度框架,常用于Java应用程序中实现定时任务的管理。它提供了丰富的API和功能,使得开发者可以灵活地定义和控制任务的执行。本篇将重点介绍如何在Web环境中集成并使用Quartz,以及相关的...
在Java Web开发中,添加定时任务是常见的需求,例如用于数据同步、日志清理、统计分析等场景。本文将详细讲解如何在Java Web环境中实现定时任务,并通过一个具体的示例来展示其实现过程。 首先,我们需要创建一个...
本文将详细介绍Java中三种常见的定时任务实现方式:`java.util.Timer`、`ServletContextListener`以及Spring框架中的`ScheduledTimerTask`。 1. **java.util.Timer** `java.util.Timer`类是最基础的定时任务工具,...
"java定时任务" java定时任务是指在java程序中,使用Timer和TimerTask来实现的定时执行任务的机制。java提供了多种方式来实现定时任务,包括使用java.util.Timer和java.util.TimerTask类、使用java.lang.Thread类的...
2. **Spring Scheduler**: 在Java Web应用中,Spring框架提供了`org.springframework.scheduling`模块,简化了定时任务的配置和管理。通过`@Scheduled`注解,可以直接在方法上声明一个定时任务,或者通过`Task...
在Java Web开发中,我们经常需要在服务器启动时自动加载特定的Servlet,并让它们执行一些初始化操作或定时任务。这通常涉及到对Web应用的配置文件`web.xml`以及Servlet类本身的编程。以下将详细讲解如何实现这个功能...
此外,为了便于管理,你可以创建一个Web界面,允许用户通过界面来增删改定时任务的配置,这样就实现了对定时任务的可视化管理。 总结起来,Spring动态配置定时任务的关键在于:1) 使用`@Scheduled`或`TaskScheduler...
Spring框架提供了强大的定时任务支持,使得在Web项目中实现这类功能变得简单易行。本案例将详细介绍如何利用Spring技术来实现定时任务,并提供相关的代码示例。 一、Spring定时任务简介 Spring框架的定时任务功能...
本文将深入探讨如何在Tomcat中实现定时任务,主要涉及的知识点包括Java的定时器(Timer)和Spring框架的TaskScheduler。 首先,让我们了解一下Java中的定时任务。在Java标准库中,有一个名为`java.util.Timer`的类...