`

定时器在Web中的应用

    博客分类:
  • J2EE
阅读更多
在web中,定时器的启动一般随web server的启动而启动,一般有两种方法.

方法一:在web.xml里配置一个Servlet,并设置其随web server的启动而启动。然后在该Servlet的init()方法里启动定时器,在destory()方法里销毁定时器。
方法二:在web.xml里配置一个Listener,然后在该Listener的初始化方法里启动定时器,在其销毁的方法朝左销毁定时器。

在servlet中启动定时器
import java.io.IOException;    
import java.util.Timer;    
import javax.servlet.RequestDispatcher;    
import javax.servlet.ServletContext;    
import javax.servlet.ServletException;    
import javax.servlet.http.HttpServlet;    
import javax.servlet.http.HttpServletRequest;    
import javax.servlet.http.HttpServletResponse;    
   
import org.apache.commons.lang.StringUtils;    
   
public class ConvergeDataServlet extends HttpServlet {    
   
    private static final long serialVersionUID = 1L;    
   
    private Timer timer1 = null;    
        
    private Task task1;    
        
    /**   
     * Constructor of the object.   
     */   
    public ConvergeDataServlet() {    
        super();    
    }    
   
    /**   
     * Destruction of the servlet. 
  
     */   
    public void destroy() {    
        super.destroy();     
        if(timer1!=null){    
            timer1.cancel();    
        }    
    }    
   
        
    public void doGet(HttpServletRequest request, HttpServletResponse response)    
            throws ServletException, IOException {    
            
    }    
   
        
    public void doPost(HttpServletRequest request, HttpServletResponse response)    
            throws ServletException, IOException {    
        doGet(request, response);           
    }    
   
    // init方法启动定时器    
    public void init() throws ServletException {    
            
        ServletContext context = getServletContext();    
            
        // (true为用定时间刷新缓存)    
        String startTask = getInitParameter("startTask");    
                    
        // 定时刷新时间(分钟)    
        Long delay = Long.parseLong(getInitParameter("delay"));    
            
        // 启动定时器    
        if(startTask.equals("true")){    
            timer1 = new Timer(true);    
            task1 = new Task(context);    
            timer1.schedule(task1, delay * 60 * 1000, delay * 60 * 1000);    
        }    
    }    
}    

定时执行操作
     
/**   
 *    
 * @author callan   
 */   
import java.util.TimerTask;    
   
import javax.servlet.ServletContext;    
   
public class Task extends TimerTask{    
   
    private ServletContext context;    
        
    private static boolean isRunning = true;    
        
    public Task(ServletContext context){    
        this.context = context;    
    }    
        
            
    @Override   
    public void run() {    
        if(isRunning){    
              
        }    
    }    
   
}    

在web.xml配置这个servlet为服务启动时就调用servlet

< servlet >
     < servlet-name >taskservlet< / servlet-name >
    < servlet-class >com.task< /servlet-class >
    < init-param >
     < param-name >startTask< /param-name >
     < param-value >true< /param-value >
    < /init-param >
    < init-param >
     < param-name >intervalTime< /param-name >
     < param-value >1< /param-value >
    < /init-param >
    < load-on-startup >300< /load-on-startup >
  < /servlet >

 

分享到:
评论

相关推荐

    Java定时器在Web中的应用.doc

    Java定时器在Web中的应用.doc

    web定时器组件

    web定时器组件,该组件为java定时器基本应用程序!

    Quartz定时器web应用

    quartz的web整合简单小例子,比较适合做一些方便的工作,定时器可以轻松搞定。

    java 定时器任务timer 随tomcat启动而启动 同步启动

    我们通常写的timer都是用main方法写的定时器,但同样我们...不过有个致命伤就是集群方面跟quartz不能比,此方法代码做参考不错,如果要用,那么这个方法在一台服务器上执行就行了,其他服务器注释掉web中的监听就行了。

    如何使用纯PHP实现定时器任务(Timer)

    定时器任务,在WEB应用比较常见,如何使用PHP实现定时器任务,大致有两种方案:1)使用Crontab命令,写一个shell脚本,在脚本中调用PHP文件,然后定期执行该脚本;2)配合使用ignore_user_abort()和set_time_limit()...

    HTML5高级程序设计

    第10章 构建离线web应用 201 10.1 html5离线web应用概述 201 10.2 使用html5离线web应用api 203 10.2.1 检查浏览器的支持情况 203 10.2.2 搭建简单的离线应用程序 203 10.2.3 支持离线行为 204 10.2.4 ...

    React-Native之定时器Timer的实现代码

    定时器是一个应用中非常重要的部分。React Native实现了和浏览器一致的定时器Timer。 提供的方法如下: setTimeout, clearTimeout setInterval, clearInterval setImmediate, clearImmediate ...

    springQuzie实例基于Web项目

    基于sping定时器开发的实例(Web项目),内容主要介绍了spring定时器和Timer的应用及实例代码,适用于初学者!

    海康监控平台容器,通过web访问的方式整合几个不同时期建设的监控平台以及一大堆nvr。

    因为是web模拟登录,代码中添加了相当多try,catch,if,因为海康的登录页面好像使用了ajax,无法准确判断页面内容完全加载完毕,只好通过一个定时器不停尝试输入账号密码完成单点登录,登录成功后关闭定时器。...

    定时器Jcrontab使用说明V0.1_wangmj_2012-09-12

    5、非常容易的可以和Web应用服务器结合,Tomcat, Resin, Jetty and Jboss这些服务器已经通过测试和应用,这一切只需要在web.xml中添加load-on-startup直接指定Jcrontab下的 loadCrontabServlet,就可以了。...

    iPhone应用程序开发指南.中文.pdf

    在应用程序更新过程中被保存的文件 116 Keychain数据 116 获取应用程序目录的路径 117 文件数据的读写 118 文件访问的指导原则 123 保存状态信息 123 大小写敏感性 124 网络 124 有效进行网络通讯的贴士 124 使用Wi-...

    C#时钟timer应用webservice接口调用实例

    本C#实例主要为和我一样的初学者理解时钟控件timer和webservice接口调用的学习编写的实例,希望对小白们有所帮助。学习之路是痛苦的,痛苦之后是成就感。

    关于spring中定时器的使用教程

    大家应该都有所体会,在很多实际的web应用中,都有需要定时实现的服务,下面这篇文章主要给大家介绍了关于spring中定时器的使用教程,对大家具有一定的参考学习价值,需要的朋友们下面来一起看看吧。

    C#.NET案例开发集锦代码7-11章

    第七章 案例1通过委托实现异步调用 案例2使用定时器执行方法 案例3控制线程状态 案例4多线程同步的实现 案例5结束进程 案例6多线程资源共享与访问 案例7仅运行一个应用程序实例 案例7如何...

    Android开发与应用——张荣,原书配套课件

    7.3.3 Timer定时器 7.4 Android多线程通信机制 7.5 小结 练习 第8章 网络通信 8.1 通过HTTP访问网络 8.1.1 测试用Web服务器 8.1.2 WebView组件 8.1.3 HttpURLConnection 8.2 Socket编程 8.3 数据...

    myClock:类似于 iOS 世界时钟的世界时钟 Web 应用程序

    myClock(课程项目) 类似于 iOS 世界时钟的单页世界时钟 Web 应用程序#Installation -git clone 这个仓库-npm 安装-凉亭安装- 在 epmty ember-cli ( ) 中拉取此存储库“应用程序” #Running -Running 'npm start' -...

    HTML5程序设计(第2版).[荷]Peter Lubbers(带详细书签).pdf

    第12章 构建离线Web应用 254 12.1 HTML5离线Web应用概述 254 12.2 使用HTML5离线Web应用API 256 12.2.1 检查浏览器的支持情况 256 12.2.2 搭建简单的离线应用程序 256 12.2.3 支持离线行为 257 12.2.4 ...

    完整版《HTML5高级程序设计》2

    第10章 构建离线Web应用 201 10.1 HTML5离线Web应用概述 201 10.2 使用HTML5离线Web应用API 203 10.2.1 检查浏览器的支持情况 203 10.2.2 搭建简单的离线应用程序 203 10.2.3 支持离线行为 204 10.2.4 manifest文件 ...

    完整版《HTML5高级程序设计》4

    第10章 构建离线Web应用 201 10.1 HTML5离线Web应用概述 201 10.2 使用HTML5离线Web应用API 203 10.2.1 检查浏览器的支持情况 203 10.2.2 搭建简单的离线应用程序 203 10.2.3 支持离线行为 204 10.2.4 manifest文件 ...

Global site tag (gtag.js) - Google Analytics