在web应用中,有时候客户需要一些定时程序,不需要客户自己去操作,而是由应用程序自行触发执行某些操作。这个时候监听与定时器的配合使用就基本可以实现这个需求了。

1.创建一个监听的SERVELET,这个类继承javax.servlet.http.HttpServlet并且实现javax.servlet.ServletContextListener。

  1. package com.bndz.outMail;
  2. import java.util.Timer;
  3. import javax.servlet.ServletContextEvent;
  4. import javax.servlet.ServletContextListener;
  5. import javax.servlet.http.HttpServlet;
  6. /**
  7. *
  8. * 文件发送的监听 需要再WEB-XML中配置
  9. */
  10. public class MailSendListener extends HttpServlet implements
  11. ServletContextListener {
  12. /**
  13. * 监听开始销毁
  14. */
  15. public void contextDestroyed(ServletContextEvent sce) {
  16. }
  17. /**
  18. * 监听开始执行
  19. */
  20. public void contextInitialized(ServletContextEvent sce) {
  21. // 当监听开始执行时,设置一个TIME
  22. Timer timer = new Timer();
  23. System.out.println("-------MailSend   Timer开始进行执行--------------");
  24. MailSendTask msendTask = new MailSendTask();
  25. timer.schedule(msendTask, 60 * 1000, 10 * 1000);
  26. System.out.println("-------MailSend   Timer已经在执行--------------");
  27. }
  28. }

2.配置WEB.XML文件,用于进行配置。

  1. <listener>
  2. <listener-class>com.bndz.outMail.MailSendListener</listener-class>
  3. </listener>

3.创建一个MailSendTask,继承java.util.TimerTask,在RUN方法里面进行程序的执行。

  1. package com.bndz.outMail;
  2. import java.util.Date;
  3. import java.util.TimerTask;
  4. /**
  5. * JAVA 一个定时任务
  6. *
  7. * @author Guox2011-05-10
  8. *
  9. */
  10. public class MailSendTask extends TimerTask {
  11. public MailSendTask() {
  12. }
  13. /**
  14. * RUN方法放入一个SCHEDULE的时候 进行执行 一个定时程序执行的进口
  15. */
  16. public void run() {
  17. System.out.println(new Date()+ "---MailSendTask begin to RUN ------------");
  18. MailSendManager mainSendManager = new MailSendManager();
  19. mainSendManager.waitingMailRemind();
  20. }
  21. }

4.在监听SERVELET的的contextInitialized方法中,来写一个TIMER;让其SCHEDULE方法执行上面所描写的MailSendTask任务。

    1. // 当监听开始执行时,设置一个TIME
    2. Timer timer = new Timer();
    3. System.out.println("-------MailSend   Timer开始进行执行--------------");
    4. MailSendTask msendTask = new MailSendTask();
    5. timer.schedule(msendTask, 60 * 1000, 10 * 1000);
    6. System.out.println("-------MailSend   Timer已经在执行--------------");

Servlet监听器与Timer定时器配合实现JAVA WEB应用简单自动作业的更多相关文章

  1. java Web 启动时自动执行代码的几种方式

    Web容器启动后执行代码的几种方式,其执行顺序为:4===>5===>1===>2===>3,即指定init-method的Bean开始执行,接着实现spring的Bean后置 ...

  2. Java Web程序设计作业目录(作业笔记)

    Java Web程序设计笔记 • [目录] 第1章 Web应用程序 >>> 1.1.3 使用 Eclipse 创建一个静态的登录页面 1.2.5 使用 IE 或Chrome等浏览器, ...

  3. 系统讲解一下,Dao,Entity,Servlet,Action各自有什么东西-Java/Web开发

    dao 主要是一些接口,里面定义了一些用于增删改查的方法名 daoImpl 就是对dao的具体实现 Service 同上,也是一些接口,主要是用来调用dao层的一些方法,所以这里定义的方法一般都定义好 ...

  4. Java web会话简单应用

    Java会话主要分为两块:Cookie和HttpSessionCookie技术:会话数据保存在浏览器客户端.Session技术:会话数据保存在服务器端.一.下面介绍一下Cookie的应用1. Cook ...

  5. 转:实现Java Web程序的自动登录

    有很多Web程序中第一次登录后,在一定时间内(如2个小时)再次访问同一个Web程序时就无需再次登录,而是直接进入程序的主界面(仅限于本机).实现这个功能关键就是服务端要识别客户的身份.而用Cookie ...

  6. Java Web的简单项目部署

    目录 项目介绍 安装并配置jdk和tomcat 安装并配置mysql 使用Eclipse导出war包 部署war包到服务器 导出项目的数据库 将项目的数据库导入服务器的数据库中 修改配置 重启Tomc ...

  7. Java Web 项目简单配置 Spring MVC进行访问

    所需要的 jar 包下载地址: https://download.csdn.net/download/qq_35318576/10275163 配置一: 新建 springmvc.xml 并编辑如下内 ...

  8. eclipse java web项目经常自动调试进入debug模式

    今天在运行Javaweb项目时,程序运行运行着就自动调试进入ThreadpoolExecutor,看着非常影响心情.最后在网上搜解决方法最后找到原因,解决方法如下. Window——>Prefe ...

  9. JAVA Timer定时器使用方法(二)

    JAVA  Timer 定时器测试 MyTask.java:package com.timer; import java.text.SimpleDateFormat;import java.util. ...

随机推荐

  1. C# -- 使用递归列出文件夹目录及目录下的文件 神技do{}while(false)

    C# -- 使用递归列出文件夹目录及目录下的文件 使用递归列出文件夹目录及目录的下文件 1.使用递归列出文件夹目录及目录下文件,并将文件目录结构在TreeView控件中显示出来. 新建一个WinFor ...

  2. FtpHelper类匿名获取FTP文件

    using System; using System.Collections.Generic; using System.IO; using System.Linq; using System.Net ...

  3. Android_JarZip压缩和解压文件

        本文资料来自<android开发权威指南> AndroidSDK中提供了java.util.jar和java.util.zip包中的若干类和接口来完成. 压缩文件基本步骤: 1.创 ...

  4. SharePoint专家新闻轮转器WebPart----亲測力推之Web部件

    SharePoint专家新闻轮转器WebPart----亲測力推之Web部件 项目截图: 注意: 专家新闻轮转器还在測试阶段.期待大家讨论和跟踪问题. 项目描写叙述: 专家新闻轮转器是一个ShareP ...

  5. LNMP架构三

    Nginx代理(正向代理) 正向代理:让局域网内的用户 访问外网,外网不能访问局域网, 场景:如果要从国内访问美国的服务器会很慢,这时候就可以找个香港服务器做代理,香港访问美国是很快的. 代理服务器作 ...

  6. cmd隐藏指定文件

    隐藏文件: 或者带路径执行: 显示文件:

  7. FPGA学习(第8节)-Verilog设计电路的时序要点及时序仿真

    一个电路能跑到多少M的时钟呢? 这和电路的设计有密切联系(组合逻辑的延时),我们知道电路器件都是由一定延迟的,所以信号的仿真很重要.如果延迟时间大于时钟,就会导致时序违例,出现逻辑错误. 项目要求30 ...

  8. Python学习之read()方法

    read([size [,chars [,firstline]]]) 含义: 从文本流(io.TextIOWrapper)中解码数据并返回字符串对象.

  9. CCNA2.0笔记_二层交换

    VLAN上并不需要配置IP地址,除非是出于管理的需要. 基于Vlan的设计原理,即隔离网络的广播域,再者运行STP来提供二层的防环机制:在同一个设备集中不同Vlan之间是无法通信的(在没有三层设备的情 ...

  10. 使用struts的时候form用struts的,不用html本身的

    同样的struts-config.xml, web.xml的配置,使用2个版本的form,只有struts的form才能成功运行 使用html版本的form导致post的路径不对,报404 HTML版 ...