- 浏览: 736749 次
- 性别:
- 来自: 上海
文章分类
最新评论
-
z6978445:
查询呢?比如要查出 tblRead200710 表与 tblR ...
使用hibernate SQLQuery实现动态表 -
xtp1211:
乱发,自己都没试过
windows下的apache限制IP连接数 -
guanqing123:
在apache的httpd.conf文件中加入
ProxyRe ...
apache2.2 tomcat6 集群 -
wangxingchun:
Thanks again
Axure RP组件库下载 -
feiyu86:
这才是专家嘛,通俗易懂。
Lucene倒排索引原理
在web中,定时器的启动一般随web server的启动而启动,一般有两种方法.
方法一:在web.xml里配置一个Servlet,并设置其随web server的启动而启动。然后在该Servlet的init()方法里启动定时器,在destory()方法里销毁定时器。
方法二:在web.xml里配置一个Listener,然后在该Listener的初始化方法里启动定时器,在其销毁的方法朝左销毁定时器。
在servlet中启动定时器
java 代码
- 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);
- }
- }
- }
定时执行操作
java 代码
- /**
- *
- * @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>< 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 >
<servlet></servlet>
评论
9 楼
cosmo1987
2012-12-13
劉罡 写道
请问,如果我需要使用Java定时器操作一个无法继承TimerTask该如何实现?
这个类已经继承了某个类,所以无法再继承 TimerTask。
这个类已经继承了某个类,所以无法再继承 TimerTask。
看你定义的这个类的用途。如果这个类被定义为是一种扩展的定时器,那就必须继承TimerTask,不应该继承其他的类。而如果该类不是一个定时器,而是实现了某种功能的个对象,那它就不是定时器,创建一个新的定时器类,然后把你需要定时调用的那个功能对象combine进去就好了。
举个简单但是可能不是很恰当的例子:
你有一个抽象类叫做抽象笔记本类,抽象笔记本有开机和关机的功能。然后又定义了一个联想笔记本继承自抽象笔记本类。此时你需要让你的联想笔记本定时开机。
从这里我们就可以看出。联想笔记本并不适合去继承TimerTask。而应该继承抽象笔记本。而此时需要创建一个新的Task用于定时启动你的联想笔记本。在这个新的Task中,包含你的联想笔记本,然后定时启动它就可以了。
8 楼
chenxiang_chenxiang
2012-09-14
第二种怎么列出来呢
7 楼
劉罡
2010-04-08
请问,如果我需要使用Java定时器操作一个无法继承TimerTask该如何实现?
这个类已经继承了某个类,所以无法再继承 TimerTask。
这个类已经继承了某个类,所以无法再继承 TimerTask。
6 楼
can_do
2008-12-31
58行的:
Long delay = Long.parseLong(getInitParameter("delay"));
应该为:
Long delay = Long.parseLong(getInitParameter("intervalTime"));
Long delay = Long.parseLong(getInitParameter("delay"));
应该为:
Long delay = Long.parseLong(getInitParameter("intervalTime"));
5 楼
shileijava
2008-07-18
4 楼
Callan
2008-06-07
是的 ,要将delay 应该换成 intervalTime
<listener>
<listener-class>
calss
</listener-class>
</listener>
<listener>
<listener-class>
calss
</listener-class>
</listener>
3 楼
abcs007
2008-06-06
只是给出了servlet启动的方式,但Listener方式没有给出,希望能补上。
好像58行有问题,delay 应该换成 intervalTime
好像58行有问题,delay 应该换成 intervalTime
2 楼
Callan
2008-05-09
就是通过servlet启动
或通过Listener启动两种
或通过Listener启动两种
1 楼
yangyi336
2008-05-08
不怎么明白
楼主 能否给我个比较全面的
yangyi633@163.com
谢谢咯
楼主 能否给我个比较全面的
yangyi633@163.com
谢谢咯
发表评论
-
Eclipse常用插件列表
2010-03-03 21:21 2367Properties Editor Pro ... -
slf4j简介
2010-02-23 12:00 3091SLF4J不是具体的日志解决方案,它只服务于各种各样的日志系 ... -
SSO单点登录解决方案
2009-10-20 11:18 20121 什么是单点登陆 单点登录(Single Sign ... -
减少全局竞争性同步,提高应用的垂直扩展能力
2009-10-20 10:44 1664减少全局竞争性同步, ... -
插入算法
2009-10-10 11:04 2058插入排序(Insertion Sort)的算法描述是一种简单直 ... -
鸡尾酒排序
2009-10-09 14:49 2169也就是定向冒泡排序, 鸡尾酒搅拌排序, 搅拌排序 (也可以视 ... -
冒泡排序法
2009-10-09 14:46 1637冒泡排序(BubbleSort)的基本概念是:依次比较相邻的两 ... -
org.springframework.util.StringUtils 使用
2009-05-08 09:09 3476我们经常会对字符串进行操作,spring已经实现了常用的处 ... -
JSTL <fmt:formatDate/>
2008-12-29 16:27 12021fmt:formatDate 的输出格式 <fmt:fo ... -
iBatis与Spring集成的批处理
2008-11-28 14:30 2569public String insertBatch(fina ... -
xfire 无法启动
2008-09-24 11:22 1640一般情况下,做ssh组合时,spring是通过web.xml加 ... -
C# 加密 java解密 (DES)
2008-08-13 21:26 5798C#中对数据进行加密,java对加密后的数据解密。 c# ... -
BigDecimal对象的用法(加减乘除)
2008-06-05 15:03 15969java.math.BigDecimal。BigDecimal ... -
利用过滤器对hibernate的session管理,实现session在线程范围内的共享
2008-03-12 18:13 4977hibernate中的Session关系到对数据库的增删查改等 ... -
log4j.properties 使用
2008-03-06 13:12 1603一.参数意义说明输出级别的种类ERROR、WARN、INFO、 ... -
spring2 整合 Dwr(把DWR的配置写到Spring的配置文件)
2008-03-03 16:22 3461Spring 2基于XML Schema的配置,Spring ... -
maven 配置篇之pom.xml
2008-02-29 16:01 1693什么是pom? pom作为项目对象模型。通过xml表示m ... -
maven 配置篇之settings.xml
2008-02-29 15:58 2295maven2 比起maven1 来说,需要配置的文件少多了,主 ... -
maven体验(1)
2008-02-29 11:28 15851.下载maven 地址:http://www.apac ... -
Maven中几个重要的概念
2008-02-29 11:23 2378在Maven中有几个重要的概念需要了解: 一、project ...
相关推荐
Java定时器在Web应用中的实现主要涉及到`java.util.Timer`类和`ServletContextListener`接口,它们在Spring、Struts、Hibernate等框架环境下同样适用。本文将详细解释如何使用这两个核心组件来实现在Web环境中定时...
在Java Web应用中,Spring框架提供了更强大的定时任务支持。通过`@EnableScheduling` 注解启用定时任务配置,并在具体的类上使用`@Scheduled` 注解来定义定时任务。 ```java import org.springframework.scheduling...
在Web应用程序中,可以利用Servlet侦听器结合`Timer`来实现更复杂的定时任务。例如,可以在应用启动时初始化`Timer`,并在应用关闭时销毁它,以确保资源的正确管理。 ```java import javax.servlet....
在实际应用中,定时器可以用于各种场景,例如计划任务、缓存更新、日志记录等。例如,在一个 web 应用程序中,可以使用定时器来计划任务,例如每天凌晨执行某个任务。在一个游戏应用程序中,可以使用定时器来更新...
总结一下,Java定时器虽然简单易用,但在复杂应用中可能显得不足。Spring定时器通过提供丰富的配置选项和强大的`TaskScheduler`接口,成为企业级应用中定时任务的首选。使用Spring定时器,开发者能够更高效地管理和...
Java定时器结合Spring框架可以创建灵活且可扩展的定时任务,这种技术在许多企业级应用中非常常见,用于执行周期性的后台任务,如数据清理、报告生成或服务调用等。下面将详细介绍如何在Spring中集成Java定时器,并...
在Web应用的配置文件`web.xml`中,需要添加监听器配置,以便在Web应用启动时加载`WorkServiceImpl`类。这通过`<listener>`标签和`<listener-class>`子标签完成,指定监听器类的全限定名。 总结一下,Java定时器...
总结来说,Java定时器提供了一种灵活的方式来安排和管理定时任务,无论是在桌面应用还是Web应用中,都能发挥重要作用。正确理解和使用`Timer`和`TimerTask`,能够帮助开发者实现各种复杂的定时需求,如数据同步、...
在提供的Java代码片段中,`SPListener`实现了`ServletContextListener`接口,这意味着它会在Web应用启动时初始化,并在Web应用停止时销毁。在这个监听器中,创建了一个`Timer`实例,计划在每天特定时间(15:16:00)...
Web定时器组件是Java Web应用中用于执行周期性任务的关键工具。它允许开发者在特定时间间隔内自动执行某些操作,例如数据同步、日志清理、发送通知等。这些任务可以是后台运行的,不会影响用户的交互体验。在本文中...
本文将详细介绍如何使用`Timer`类结合`ServletContextListener`接口来实现在Web应用中启动并管理一个定时任务。 #### 二、Java定时器的基本概念 1. **`java.util.Timer`类**:`Timer`类是Java中用于执行定时任务的...
在实际应用中,Java定时器还可以与其他技术结合,例如在Servlet环境下。提到的`servlet-timer`可能指的是在Servlet环境中使用定时器的方式。在Servlet容器(如Tomcat)中,可以通过监听器(Listener)或者Servlet的...
通过使用Spring的定时器,我们可以将定时任务集成到Spring应用中,实现更加灵活和强大的任务调度。例如,我们可以利用 `@Scheduled` 注解来定义一个定时任务: ```java import org.springframework.scheduling....
总结起来,Java定时器在Web应用中的使用通常涉及到创建一个实现了`ServletContextListener`的类,通过监听器来控制定时器的生命周期,以及创建自定义的`TimerTask`子类来定义需要执行的任务。这种设计模式使得定时...
在构造函数中,它接收了应用的根路径作为参数,并立即调用了`run()`方法,这在实际应用中并不常见,通常我们期望任务由`Timer`调度执行,而不是立即执行。`run()`方法中包含了发送邮件的逻辑,以及一些未完成的...
Java Web定时器是一种在Web应用程序中定期执行特定任务的机制,它主要依赖于Java的`java.util.Timer`类和`java.util.TimerTask`类。在Java Web开发中,定时任务通常用于后台数据处理、定时备份、日志清理等场景。...
在Web应用中,经常需要执行一些定期的任务,例如数据同步、日志清理等。为了实现这样的需求,可以利用`java.util.Timer`配合Servlet监听器(`ServletContextListener`)来实现定时任务的自动启动与执行。 ##### 3.2...