如何定时执行servlet

请问谁知道有什么方法可以定时执行servlet ,除页面标签方法、web.xml配制方法 除外。还有没有其它的方法。能不能写个简单的例子

你的定时需要什么时候开始执行?
服务器启动?还是点击触发?
如果是服务器启动时就要开始执行,就需要用listener,这样需要在web.xml中增加配置。
如果要点击触发,就在你的触发类中调用timer吧,
前段时间帮朋友写了个, 你看下吧:
触发类---
[code="java"]import java.util.Timer;

import javax.servlet.ServletContextEvent;
import javax.servlet.ServletContextListener;

public class TimerTestAction implements ServletContextListener{

private Timer timer;
public void contextDestroyed(ServletContextEvent servletcontextevent) {
    timer.cancel();
    servletcontextevent.getServletContext().log("定时器销毁~~~");
    System.out.println("定时任务结束~~");
}

public void contextInitialized(ServletContextEvent servletcontextevent) {
    System.out.println("定时任务开始~~");
    timer = new Timer(true);
    timer.schedule(new TimerRunAction(servletcontextevent.getServletContext()), 0, 5*1000);
}

}
[/code]
定时器----
[code="java"]
import java.util.Calendar;
import java.util.TimerTask;

import javax.servlet.ServletContext;

public class TimerRunAction extends TimerTask{
private static final int C_SCHEDULE_HOUR = 0;
private static boolean isRunning = false;
private ServletContext context = null;

public TimerRunAction(ServletContext context){
    this.context = context;
}
@Override
public void run() {
    Calendar c = Calendar.getInstance();
    if(!isRunning){
        if(C_SCHEDULE_HOUR == c.get(Calendar.HOUR_OF_DAY)){
                            context.log("kaishi zhixing zhiding renwu~~");
                        }
        else{
            context.log("shangyici renwu zhixing haiwei jieshu~~~");
        }
    }

}

}
[/code]
这个是用listener做触发, 你可以根据自己的需要写自己的触发类

首先,你定时调用servlet有什么用?请求来的request里的数据有什么?
如果支持一次简单请求,没有任何数据的请求,那还不如不用servlet实现,做个简单的java类,用调度框架,例如quartz去定时处理。同样,你也可以用这个调度任务去请求这个servlet。