Servlet监听器与Timer定时器配合实现JAVA WEB应用简单自动作业
在web应用中,有时候客户需要一些定时程序,不需要客户自己去操作,而是由应用程序自行触发执行某些操作。这个时候监听与定时器的配合使用就基本可以实现这个需求了。
1.创建一个监听的SERVELET,这个类继承javax.servlet.http.HttpServlet并且实现javax.servlet.ServletContextListener。
- package com.bndz.outMail;
- import java.util.Timer;
- import javax.servlet.ServletContextEvent;
- import javax.servlet.ServletContextListener;
- import javax.servlet.http.HttpServlet;
- /**
- *
- * 文件发送的监听 需要再WEB-XML中配置
- */
- public class MailSendListener extends HttpServlet implements
- ServletContextListener {
- /**
- * 监听开始销毁
- */
- public void contextDestroyed(ServletContextEvent sce) {
- }
- /**
- * 监听开始执行
- */
- public void contextInitialized(ServletContextEvent sce) {
- // 当监听开始执行时,设置一个TIME
- Timer timer = new Timer();
- System.out.println("-------MailSend Timer开始进行执行--------------");
- MailSendTask msendTask = new MailSendTask();
- timer.schedule(msendTask, 60 * 1000, 10 * 1000);
- System.out.println("-------MailSend Timer已经在执行--------------");
- }
- }
2.配置WEB.XML文件,用于进行配置。
- <listener>
- <listener-class>com.bndz.outMail.MailSendListener</listener-class>
- </listener>
3.创建一个MailSendTask,继承java.util.TimerTask,在RUN方法里面进行程序的执行。
- package com.bndz.outMail;
- import java.util.Date;
- import java.util.TimerTask;
- /**
- * JAVA 一个定时任务
- *
- * @author Guox2011-05-10
- *
- */
- public class MailSendTask extends TimerTask {
- public MailSendTask() {
- }
- /**
- * RUN方法放入一个SCHEDULE的时候 进行执行 一个定时程序执行的进口
- */
- public void run() {
- System.out.println(new Date()+ "---MailSendTask begin to RUN ------------");
- MailSendManager mainSendManager = new MailSendManager();
- mainSendManager.waitingMailRemind();
- }
- }
4.在监听SERVELET的的contextInitialized方法中,来写一个TIMER;让其SCHEDULE方法执行上面所描写的MailSendTask任务。
- // 当监听开始执行时,设置一个TIME
- Timer timer = new Timer();
- System.out.println("-------MailSend Timer开始进行执行--------------");
- MailSendTask msendTask = new MailSendTask();
- timer.schedule(msendTask, 60 * 1000, 10 * 1000);
- System.out.println("-------MailSend Timer已经在执行--------------");
Servlet监听器与Timer定时器配合实现JAVA WEB应用简单自动作业的更多相关文章
- java Web 启动时自动执行代码的几种方式
Web容器启动后执行代码的几种方式,其执行顺序为:4===>5===>1===>2===>3,即指定init-method的Bean开始执行,接着实现spring的Bean后置 ...
- Java Web程序设计作业目录(作业笔记)
Java Web程序设计笔记 • [目录] 第1章 Web应用程序 >>> 1.1.3 使用 Eclipse 创建一个静态的登录页面 1.2.5 使用 IE 或Chrome等浏览器, ...
- 系统讲解一下,Dao,Entity,Servlet,Action各自有什么东西-Java/Web开发
dao 主要是一些接口,里面定义了一些用于增删改查的方法名 daoImpl 就是对dao的具体实现 Service 同上,也是一些接口,主要是用来调用dao层的一些方法,所以这里定义的方法一般都定义好 ...
- Java web会话简单应用
Java会话主要分为两块:Cookie和HttpSessionCookie技术:会话数据保存在浏览器客户端.Session技术:会话数据保存在服务器端.一.下面介绍一下Cookie的应用1. Cook ...
- 转:实现Java Web程序的自动登录
有很多Web程序中第一次登录后,在一定时间内(如2个小时)再次访问同一个Web程序时就无需再次登录,而是直接进入程序的主界面(仅限于本机).实现这个功能关键就是服务端要识别客户的身份.而用Cookie ...
- Java Web的简单项目部署
目录 项目介绍 安装并配置jdk和tomcat 安装并配置mysql 使用Eclipse导出war包 部署war包到服务器 导出项目的数据库 将项目的数据库导入服务器的数据库中 修改配置 重启Tomc ...
- Java Web 项目简单配置 Spring MVC进行访问
所需要的 jar 包下载地址: https://download.csdn.net/download/qq_35318576/10275163 配置一: 新建 springmvc.xml 并编辑如下内 ...
- eclipse java web项目经常自动调试进入debug模式
今天在运行Javaweb项目时,程序运行运行着就自动调试进入ThreadpoolExecutor,看着非常影响心情.最后在网上搜解决方法最后找到原因,解决方法如下. Window——>Prefe ...
- JAVA Timer定时器使用方法(二)
JAVA Timer 定时器测试 MyTask.java:package com.timer; import java.text.SimpleDateFormat;import java.util. ...
随机推荐
- Oracle 性能调优案例(代码级别)
业务案例一: 业务:千万记录表中查询出50条符合条件的记录. 现象:oracle部署时跨机器,业务取得数据耗时10ms.造成业务性能不达标. 为了突出主题,对于异常分支,均已省略. 对于通常写法, o ...
- MAC里“微软雅黑”字体标准体和粗体无法同时使用问题的解决方法
微软雅黑字体,有标准体和粗体两种字体,我用的系统是OSX10.9,adobe或者是office软件中,均无法同时使用.要么只能用标准体,粗体报错:要么就是能用粗体,标准体无法使用.很偶然找到了以下MA ...
- ajax实现json循环输出结果
$.post("bankInfo.php",{key:jee_server,uid:jee_uid},function(data) { var strs=JSON.stringif ...
- 微信公众号弹出框在IOS最新系统中点击键盘上的“完成”导致事件无法触发问题
微信公众号弹出框在IOS最新系统中点击键盘上的"完成"导致事件无法触发问题 问题描述 微信公众号中有项功能是弹框模态框,输入信息后保存操作.但是在IOS系统中发现,当输入内容后,点 ...
- Laravel 5 教程 - 文件上传
一.简介 Laravel 有很棒的文件系统抽象层,是基于 Frank de Jonge 的 Flysystem 扩展包. Laravel 集成的 Flysystem 提供了简单的接口,可以操作本地端空 ...
- Centos下运行定时任务Crontab命令介绍
1.Cron的启动与关闭 因为Cron是Linux的内置服务.能够用下面的方法启动.关闭这个服务: /sbin/service crond start //启动服务 /sbin/s ...
- netty4.1.32 pipeline的添加顺序和执行顺序
本文只想讨论一下pipeline的执行顺序问题,因为这个搞不明白就不知道先添加编码还是解码,是不是可以混淆添加等等一系列事情 pipeline.addLast(new outboundsHandler ...
- 170. Rotate List【medium】
Given a list, rotate the list to the right by k places, where k is non-negative. Example Given 1-& ...
- [转载]ecmall语言包程序
[转载]ecmall语言包程序 (-- ::) 转载▼ 标签: 转载 收藏了 原文地址:ecmall语言包程序作者:我思故我在 执行顺序 登陆后台后 最先执行的文件是 default.app.php ...
- 前端点击删除按钮删除table表格的数据
table.on('tool(hostTable)', function (obj) { var data = obj.data;//须写 if (obj.event === 'del') { var ...