jsp/servlet定时监控的两种实现方式(1)
来源:互联网 发布:unity3d可以不用vs2015 编辑:程序博客网 时间:2024/06/06 09:08
第一种方式:
第一步,创建一个类继承TimerTask,用来执行具体任务
package com.zytk;import java.util.Date;import java.util.TimerTask;class TaskBean extends TimerTask{ public void run() { System.out.println(new Date()); //执行具体任务 } }
第二步,创建一个类继承HttpServlet,以便于在servlet中调用
package com.zytk;import java.util.Timer;import javax.servlet.http.HttpServlet;public class TimerCallTask extends HttpServlet { private static final long serialVersionUID = 1L; Timer timer; public TimerCallTask() {timer = new Timer("TimerCallTask ", true);timer.schedule(new TaskBean(), 1000, 60000);//第一个参数,是 TimerTask 类,在包:import java.util.TimerTask .使用者要继承该类,并实现 public void run() 方法,因为 TimerTask 类 实现了 Runnable 接口。//第二个参数的意思是,当你调用该方法后,该方法必然会调用 TimerTask 类 TimerTask 类 中的 run() 方法,这个参数就是这两者之间的差值,转换成汉语的意思就是说,用户调用 schedule() 方法后,要等待这么长的时间才可以第一次执行 run() 方法。//第三个参数的意思就是,第一次调用之后,从第二次开始每隔多长的时间调用一次 run() 方法。 } }
第三步,在servlet的初始化事件中调用
package com.zytk;import java.io.IOException;import java.io.PrintWriter;import javax.servlet.ServletException;import javax.servlet.http.HttpServlet;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletResponse;import javax.servlet.ServletContext;public class servletTimeListener extends HttpServlet{ TimerCallTask impDt=null; private static final long serialVersionUID = 1L; public void destroy() {super.destroy(); // Just puts "destroy" string in log// Put your code here//System.out.println("Stopping...");impDt.destroy();//System.out.println("Stopped."); } public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {doPost( request, response); } public void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {/*response.setContentType("text/html");PrintWriter out = response.getWriter();out.println("<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.01 Transitional//EN\">");out.println("<HTML>");out.println(" <HEAD><TITLE>A Servlet</TITLE></HEAD>");out.println(" <BODY>");out.print(" This is ");out.print(this.getClass());out.println(", using the POST method");out.println(" </BODY>");out.println("</HTML>");out.flush();out.close();*/ } public void init() throws ServletException {//System.out.println("Starting...");impDt=new TimerCallTask();//这里创建一个新的任务对象,间接执行调用具体任务执行类//System.out.println("Started Successfully."); }}
第四步,配置web.xml,服务器启动时候,自动加servlet:servletTimeListener
<?xml version="1.0" encoding="UTF-8"?><web-app version="2.5" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"> <servlet> <description>定时打印时间测试</description> <display-name>启动时加载</display-name> <servlet-name>servletTimeListener</servlet-name> <servlet-class>com.zytk.servletTimeListener</servlet-class> <load-on-startup>0</load-on-startup> </servlet> <welcome-file-list> <welcome-file>index.jsp</welcome-file> </welcome-file-list> <login-config> <auth-method>BASIC</auth-method> </login-config></web-app>
- jsp/servlet定时监控的两种实现方式(1)
- jsp/servlet定时监控的两种实现方式 (2)
- java定时任务的两种实现方式
- spring容器框架定时任务实现的两种方式
- Android定时广播和定时服务两种实现方式
- Android定时广播和定时服务两种实现方式
- JSP中分页技术的实现(jstl,servlet,javabean三种不同实现方式)
- jsp页面调用servlet的两中方式
- 定时任务的两种方式
- JSP(1):servlet 三种基本实现方式
- Servlet实现页面跳转的两种方式(转发和重定向)
- spring实现定时任务的两种方式之spring @scheduled注解方式
- Servlet跳转Jsp的两种方法
- JSP弹出对话框两种实现方式
- JSP/Servlet处理系统异常的两种方式、路径(地址)问题、线程安全问题
- spring实现定时任务的两种方式之Spring 3整合Quartz 2实现定时任务
- Servlet 的两种跳转方式
- servlet启动服务的两种方式
- 用Boost.python构建游戏脚本系统的尝试
- ov511驱动移植。2.6.32.2(一)
- C++静态变量问题
- 文件下载
- 覆盖抽象类及接口
- jsp/servlet定时监控的两种实现方式(1)
- vim/gvim中的拷贝与粘帖
- Replace INTO与INSERT INTO的不同之处
- App Widget
- STL中的空间配置器
- AsyncTask(异步任务处理)
- scull 编译
- 英特尔:MeeGo不会被Tizen淘汰将各自发展
- C++Practise2:分牛的传说代码实现