基本思路如下:
1、定义一个实现了ServletContextListener的类
2、在contextInitialized()和contextDestroyed()调用自定义的定时程序
3、在web.xml里面配置这个 ServletContextListener
代码示例:
(程序来源 http://blog.csdn.net/zhuche110/archive/2008/05/06/2400122.aspx)
public class WorkServiceImpl implements WorkService , ServletContextListener{
public void contextDestroyed(ServletContextEvent arg0){
timer.cancel();
System.out.println("定时器已销毁");
}
public void contextInitialized(ServletContextEvent event){
timer = new java.util.Timer(true);
sampleTask = new SampleTask(event.getServletContext());
System.out.println("定时器已启动");
timer.schedule(sampleTask, 0, 60 * 60 * 1000);
System.out.println("已经添加任务调度表");
}
}
class SampleTask extends TimerTask{
private ServletContext context;
private static boolean isRunning = false;
private static boolean flag = true;
private static final int C_SCHEDULE_HOUR = 23;
private WorkServiceImpl workService;
public SampleTask(ServletContext context){
this.context = context;
}
public void run() {
workService = new WorkServiceImpl();
Calendar cal = Calendar.getInstance();
if (!isRunning){
if (C_SCHEDULE_HOUR == cal.get(Calendar.HOUR_OF_DAY) && flag){
isRunning = true;
workService.autoWorkOff();
isRunning = false;
flag = false;
context.log("指定任务执行结束");
}
} else{
context.log("上一次任务执行还未结束");
}
if(C_SCHEDULE_HOUR != cal.get(Calendar.HOUR_OF_DAY)){
flag = true;
}
}
}
要使用此监听器需要在web.xml中配置,如下:
<listener>
<listener-class>com.css.wam.service.impl.WorkServiceImpl </listener-class>
</listener>
分享到:
相关推荐
在Struts2中,动态方法调用(Dynamic Method Invocation,DMI)是一种特性,允许我们通过URL直接调用Action类的方法,而无需在配置文件中显式指定。这在某些情况下提供了更大的灵活性。 在Struts2的动态方法调用中...
struts核心架构分析图struts核心架构分析图struts核心架构分析图struts核心架构分析图
在本教程中,我们将深入探讨如何单独使用Struts框架,不依赖其他大型框架如Spring或Hibernate。 **1. 安装与配置Struts** 首先,你需要下载Struts2的核心库,这些库包括struts2-core、struts2-convention-plugin等...
2. **动态代理**:Struts2使用动态代理技术实现了AOP(面向切面编程),使得开发者可以通过配置而非编码的方式实现拦截器的调用。 3. **类型转换**:Struts2内置了一套类型转换机制,能够自动将请求参数转换为Action类...
Struts2_动态方法调用,使用struts2架构的动态方法进行资源调用
在 `welcome.jsp` 页面中,可以使用 Struts 的标签库来调用相应的 Action: ```jsp ``` ##### **1.4 错误与异常处理 (Error Handling)** Struts 1.2 支持在 `web.xml` 中配置 HTTP 错误码的处理页面,以及...
Struts架构学习手册是针对初学者的一份详细指南,它旨在帮助读者理解并掌握Struts框架的基本概念和应用。Struts作为一款经典的Java Web开发框架,由Apache软件基金会开发,主要用于构建基于MVC(Model-View-...
Struts架构是一个经典的Java Web开发框架,由Apache软件基金会维护,主要用于构建基于MVC(Model-View-Controller)设计模式的Web应用。本指南将帮助你深入理解和掌握Struts的核心概念,逐步引领你通过实际小应用...
Struts架构是Java Web开发中的一个...为了精通Struts,不仅要理解其核心概念,还要实践编写Action、配置struts-config.xml、使用标签库,以及进行异常处理和国际化。不断地练习和探索,将使你在IT行业中更上一层楼。
Struts架构是一个经典的Java Web开发框架,用于构建MVC(模型-视图-控制器)模式的应用程序。这个框架简化了Web应用的开发流程,通过提供一套标准的组件和约定,帮助开发者实现业务逻辑与表现层的分离。在提供的教程...
Struts2 的重要性在于其成熟的架构设计和实现原理,使得开发人员能够通过组件化的方式开发复杂的企业级应用。 Struts2 的架构设计采用了拦截器(Interceptor)机制,拦截器是一种设计模式,它允许开发者在不修改源...
在本项目中,我们采用的是基于JavaWeb的Struts架构来构建这样一个系统。Struts是一个开源的MVC(Model-View-Controller)框架,为Java应用程序提供了强大的结构支持,尤其适用于Web应用开发。 首先,让我们深入理解...
Struts2作为一款流行的Java Web框架,其动态方法调用(Dynamic Method Invocation,DMI)功能为开发者提供了极大的灵活性。在传统的MVC模式中,控制器(Controller)通常通过硬编码的方式处理请求,而动态方法调用则...
这个“Struts架构指导”很显然是为了帮助开发者快速理解和掌握Struts框架的使用方法,通过一系列逐步教程来实现小应用程序,从而熟悉其核心概念和实践操作。 在Struts框架中,核心组件包括Action、ActionForm、...
在深入Struts架构方面,我们需要了解以下几个关键知识点: 1. **MVC模式**:MVC模式是Struts的基础,它将业务逻辑、数据处理和用户界面分离,使得各部分可以独立开发和测试。模型负责业务逻辑,视图负责展示,控制...
Struts架构是一种基于MVC(Model-View-Controller)设计模式的Java Web应用程序框架,它由Apache软件基金会开发和维护。在本项目中,你提到的是一个简单的Struts实现的用户登录功能,这通常涉及到一系列关键组件和...
这个案例“struts014”很可能展示了如何在Struts2中实现异步调用来处理耗时操作,如数据库查询或复杂计算。 异步调用的基本概念是,客户端(通常是Web浏览器)发起一个请求,服务器不立即返回结果,而是启动一个...
资源名称:Struts2技术内幕:深入解析Struts架构设计与实现原理内容简介:本书由国内极为资深的Struts2技术专家(网名:downpour)亲自执笔,iteye兼CSDN产品总监范凯(网名:robbin)以及51CTO等技术社区鼎力推荐。...
《Struts2技术内幕-深入解析Struts2架构设计与实现原理》这本书深入探讨了Struts2的核心概念、架构和实现机制。 1. **Struts2架构设计**:Struts2的架构基于拦截器(Interceptor)模式,它将业务逻辑和表现层解耦,...
本案例中的"13+struts架构代码案例.rar"包含了一系列的示例,旨在帮助开发者深入理解Struts框架的使用。 1. **基础概念** - **MVC模式**:模型-视图-控制器模式,用于将业务逻辑、数据处理和用户界面分离开来,...