哎!这个问题问了好几天都没人理-----------关于web.xml配置的问题?都时龙的传人,帮帮忙! 那只是加载,不是执行吧?class文件放到WEB-INF\classes下面 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 就是冲着龙的传人来的!!!自动加载某个定时执行的程序 这个是什么意思?定时执行,写个Timer用另外一个线程控制就可以了阿,干吗写到servlet里面再<servlet> 里面的class必须是servlet才可以的哦搂住,我觉得你可以在这个servlet中启动另外一个线程,由他定时执行你的那个程序。 <servlet> <servlet-name>test</servlet-name> <servlet-class>test</servlet-class> <load-on-startup>1</load-on-startup> </servlet> 这样做,只是执行它的init()方法,不执行对啊,写个线程吧 呵呵,正好很久以前作过这样的,也是网上找得资料,仅供参考。不是用servlet,而是listenerweb.xml配置:<listener><listener-class>test.ContextListener</listener-class></listener>test.ContextListener是这么写的package test;import javax.servlet.*;import java.util.*;public class ContextListener implements ServletContextListener { public ContextListener(){ } Timer timer = null; public void contextInitialized(ServletContextEvent event){ timer = new java.util.Timer(true); System.out.println("定时器已启动"); timer.schedule(new MyTask(),0,60*60*1000); System.out.println("已经添加任务调度表"); } public void contextDestroyed(ServletContextEvent event){ timer.cancel(); System.out.println("定时器销毁"); }}MyTask就是你要定时执行的类了,继承TimerTask,再run方法中写上你要自动执行的任务package test;import java.util.*;import javax.servlet.*;public class MyTask extends TimerTask{ private static final int C_SCHEDULE_HOUR = 0; private static boolean isRunning = false; private ServletContext context = null; public MyTask() { } public void run() { Calendar cal = Calendar.getInstance(); Date d =new Date(); if (!isRunning) { if (C_SCHEDULE_HOUR != cal.get(Calendar.HOUR_OF_DAY)) { isRunning = true; System.out.print(d.toString()+"开始执行指定任务"); System.out.print("................"); isRunning = false; System.out.println("指定任务执行结束"); System.out.println(""); } } else { context.log("上一次任务执行还未结束"); } }} benjamin_von(雨过天晴):我已经写了timer和体mytimerTask,我想让这个程序随jboss的启动而自动启动,执行。所以我把它编译成servlet。 to tjchen(westboy):你说的正是我想要的。祝你好运! 404 贴个某公司的面试题.欢迎大家踊跃回答.哈哈 JNDI的问题,急急急,在线等答案,重分相谢 一个关于json的问题 数据库? 一到某个页面就自动刷新一次刷新该怎么写阿 jsp文件后缀".jsp"和“.JSP”有区别吗? 新手简单问题! jsp 文字出现乱码(急,有分奖赏) Druid jar包 JFreeChart的应用 网页中网格形式展现的数据奇数行为蓝,偶数行为黄,这种形式的代码应该怎么写
自动加载某个定时执行的程序 这个是什么意思?
定时执行,写个Timer用另外一个线程控制就可以了阿,干吗写到servlet里面
再<servlet> 里面的class必须是servlet才可以的哦
搂住,我觉得你可以在这个servlet中启动另外一个线程,由他定时执行你的那个程序。
<servlet-name>test</servlet-name>
<servlet-class>test</servlet-class>
<load-on-startup>1</load-on-startup>
</servlet> 这样做,只是执行它的init()方法,不执行
对啊,写个线程吧
不是用servlet,而是listener
web.xml配置:
<listener>
<listener-class>test.ContextListener</listener-class>
</listener>test.ContextListener是这么写的package test;import javax.servlet.*;
import java.util.*;public class ContextListener implements ServletContextListener {
public ContextListener(){
}
Timer timer = null; public void contextInitialized(ServletContextEvent event){
timer = new java.util.Timer(true);
System.out.println("定时器已启动");
timer.schedule(new MyTask(),0,60*60*1000);
System.out.println("已经添加任务调度表");
}
public void contextDestroyed(ServletContextEvent event){
timer.cancel();
System.out.println("定时器销毁");
}
}
MyTask就是你要定时执行的类了,继承TimerTask,再run方法中写上你要自动执行的任务
package test;import java.util.*;
import javax.servlet.*;
public class MyTask extends TimerTask{
private static final int C_SCHEDULE_HOUR = 0;
private static boolean isRunning = false;
private ServletContext context = null;
public MyTask() { }
public void run() {
Calendar cal = Calendar.getInstance();
Date d =new Date();
if (!isRunning) {
if (C_SCHEDULE_HOUR != cal.get(Calendar.HOUR_OF_DAY)) {
isRunning = true;
System.out.print(d.toString()+"开始执行指定任务");
System.out.print("................");
isRunning = false;
System.out.println("指定任务执行结束");
System.out.println("");
}
} else {
context.log("上一次任务执行还未结束");
}
}
}