CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
【经验总结】不能实施并行处理的情况 浅谈并行编程中的任务分解模式
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  Java >  Web 开发

怎样写一个定时自动运行的servlet?

楼主TsungLee(Lee)2005-05-01 17:09:36 在 Java / Web 开发 提问

我需要定时地往数据库里面插入记录。请问这个servlet应该怎样写呢? 问题点数:100、回复次数:17Top

1 楼sunshine5246(阳光)回复于 2005-05-01 20:30:11 得分 0

sofa  
  顶Top

2 楼edward0716(雲威龍)回复于 2005-05-01 20:31:48 得分 0

TimerTop

3 楼sun8087(.Net@ChangZhou)回复于 2005-05-01 21:06:52 得分 0

servlet   能实现??  
   
  在数据库中吧?  
   
  关注Top

4 楼TsungLee(Lee)回复于 2005-05-02 14:17:42 得分 0

upTop

5 楼liuquanyi(大狗)回复于 2005-05-02 15:09:15 得分 40

<servlet>  
  <servlet-name>hehe</servlet-name>  
  <servlet-class>heheServlet</servlet-class>  
  <init-param>  
  <param-name>propertyFile</param-name>  
  <param-value>WEB-INF/hehe.properties</param-value>  
  </init-param>  
  <load-on-startup>1</load-on-startup>  
    </servlet>  
   
  如果你的servlet名字叫heheServlet,那么:  
  servletConfig.getInitParameterNames()取得所有参数  
  取得WEB-INF/hehe.properties  
  注意用isAbsolute()来判断是否是绝对路径,否则用:  
  String   appDir   =   servletConfig.getServletContext().getRealPath("/");  
  appDir   +   File.separator+servletConfig.getInitParameter("propertyFile");  
   
  至于楼主的问题就是:  
  <load-on-startup>1</load-on-startup>  
  load-on-startup表示加载的优先级,必须为整数,1为最早,依次累推!Top

6 楼liuquanyi(大狗)回复于 2005-05-02 15:10:59 得分 0

哦。  
  我理解错误了,抱歉!  
  可以用Timer类来定时执行一个插入类!Top

7 楼rui0263(锐)回复于 2005-05-02 16:15:55 得分 0

作一个线程,来监视。应该可以把。Top

8 楼TsungLee(Lee)回复于 2005-05-03 10:42:02 得分 0

能具体说一下Timer在Servlet里面的用法吗?谢谢Top

9 楼TsungLee(Lee)回复于 2005-05-04 09:05:08 得分 0

upTop

10 楼TsungLee(Lee)回复于 2005-06-21 17:28:56 得分 0

有谁能具体说一下Timer的用法吗?Top

11 楼108041217(josso)回复于 2005-06-21 17:54:41 得分 0

<load-on-startup>1</load-on-startup>  
  load-on-startup表示加载的优先级,必须为整数,1为最早,依次累推!  
  ????  
  我看有問題吧  
  我看資料說<load-on-startup/>是立即加載,難道1为最早??Top

12 楼108041217(josso)回复于 2005-06-21 17:55:30 得分 0

to   回复人:   liuquanyi(大狗)   (   )   信誉:100    
   
  <load-on-startup>1</load-on-startup>  
  load-on-startup表示加载的优先级,必须为整数,1为最早,依次累推!  
  ????  
  我看有問題吧?  
  我看資料說<load-on-startup/>是立即加載,難道1为最早??  
  Top

13 楼blackdreamzg(基本靠手)回复于 2005-06-21 18:06:40 得分 0

帮你upTop

14 楼Jolestar(叶明)回复于 2005-06-21 18:41:17 得分 40

<load-on-startup>1</load-on-startup>  
  应该是让这个servlet在服务器启动时自动运行.  
   
  你干吗要servlet定时运行呢?  
  用Timer类,让一个操作数据库的javabean定时运行也可以实现这个功能啊.  
  Timer类的具体用法  
  http://www.hackhome.com/2005/1-21/09492254499.shtmlTop

15 楼jianan(楠)回复于 2005-06-21 18:46:17 得分 0

我以前写过一个线程他监视文件有没有变化,有的话就把他里面的内容存到数据库中.Top

16 楼shuiruhan1981905(水若寒)回复于 2005-06-21 19:03:40 得分 20

首先有一个控制类(servlet):  
  package   com.sysnet.app;  
  import   javax.servlet.*;  
   
  public   class   Settle_HourServlet  
          extends   javax.servlet.http.HttpServlet   {  
      /**  
        *   Tomcat   启动时,自动执行,并启用相关线程监听是否为用户选定时间  
        *  
        *   @param   request   Object   that   encapsulates   the   request   to   the   servlet  
        *   @param   response   Object   that   encapsulates   the   response   from   the   servlet  
        */  
      public   void   doGet(javax.servlet.http.HttpServletRequest   request,  
                                          javax.servlet.http.HttpServletResponse   response)   throws  
              javax.servlet.ServletException,   java.io.IOException   {  
   
      }  
   
      /**  
        *   Process   incoming   HTTP   POST   requests  
        *  
        *   @param   request   Object   that   encapsulates   the   request   to   the   servlet  
        *   @param   response   Object   that   encapsulates   the   response   from   the   servlet  
        */  
      public   void   doPost(javax.servlet.http.HttpServletRequest   request,  
                                            javax.servlet.http.HttpServletResponse   response)   throws  
              javax.servlet.ServletException,   java.io.IOException   {  
   
      }  
   
      public   String   getServletInfo()   {  
   
          return   super.getServletInfo();  
   
      }  
   
      /**  
        *   Initializes   the   servlet.  
        */  
      public   void   init()   {  
        ServletContext   application   =   getServletContext();  
   
   
           
        //GrAlarmTask   pt1   =   new   GrAlarmTask(20,00,   0);  
        GrAlarmTask   pt1   =   new   GrAlarmTask(14,55,   0);  
        pt1.setTrcode("100010");//B2B接收成员行  
        pt1.start();  
        application.setAttribute("Settlept1",pt1);      
         
      }  
   
      /**  
        *   此处插入方法描述。  
        *   创建日期:(2002-11-14   15:18:47)  
        */  
  }  
   
  然后调用逻辑处理类:  
  Top

17 楼shuiruhan1981905(水若寒)回复于 2005-06-21 19:05:57 得分 0

package   com.sysnet.app;  
   
  import   java.sql.SQLException;  
   
  import   org.tiling.scheduling.Scheduler;  
  import   org.tiling.scheduling.SchedulerTask;  
  import   org.tiling.scheduling.examples.iterators.DailyIterator;  
   
  import   system.pub.Gr_Exception.Gr_Exception;  
   
  public   class   GrAlarmTask   {  
   
          private   final   Scheduler   scheduler   =   new   Scheduler();  
          private   final   int   hourOfDay,   minute,   second;  
          private   String   tr_code   =   "";  
          public     GrAlarmTask(int   hourOfDay,   int   minute,   int   second)   {  
          //System.out.println("init........................................");  
                  this.hourOfDay   =   hourOfDay;  
                  this.minute   =   minute;  
                  this.second   =   second;  
          }  
   
          public   void   start()   {  
                  scheduler.schedule(new   SchedulerTask()   {  
                          public   void   run()   {  
                                  runAssignment();  
                          }  
                          private   void   runAssignment()   {  
                          //System.out.println("trcode=="+tr_code);  
                          TimerTrade   timerTrade   =   new   TimerTrade();//这个是你操作数据库的类  
                          if(tr_code.equals("100012")){//B2B从总行接收  
                          //System.out.println("1000012.........");  
                                    try   {  
                  timerTrade.recT();  
                  }   catch   (Gr_Exception   e)   {  
                  //   TODO   Auto-generated   catch   block  
                  e.printStackTrace();  
                  }   catch   (SQLException   e)   {  
                  //   TODO   Auto-generated   catch   block  
                  e.printStackTrace();  
                  }   catch   (Exception   e)   {  
                  //   TODO   Auto-generated   catch   block  
                  e.printStackTrace();  
                  }  
                                    }//下面的你自已写                                    
                          }  
                  },   new   DailyIterator(hourOfDay,   minute,   second));  
          }  
                  public   void   end(){  
                  System.out.println(".end...");  
                                  try{scheduler.cancel();}catch(Exception   e){  
                                  System.out.println("end1....");  
                                  }  
                  }  
                  public   void   setTrcode(String   tr_code){  
                  //System.out.println("setTrcode..."+tr_code);  
                      this.tr_code   =   tr_code;  
                  }  
  }  
   
  只要到了servlet里面设定的时间就会自动执行数据库操作,把servlet加到web.xml:  
   
  <servlet>      
                <servlet-name>Settle_HourServlet</servlet-name>      
                <servlet-class>com.sysnet.app.Settle_HourServlet</servlet-class>      
                <load-on-startup>1</load-on-startup>      
        </servlet>  
   
   
  他的生命周期和tomcat一样,ok!  
   
  Top

相关问题

  • 如何在程序运行以后 让定时器自动停止运行呢?
  • 请教定时代理不自动运行的问题。谢谢指教!
  • 求教:如何实现虚拟主机上的定时自动运行程序
  • 请问如何使perl程序定时自动运行?在windows和unix平台上
  • ★怎样写一个定时自动运行的applet,同时让它耗一大部分内存!??
  • ★ 怎样写一个定时自动运行的程序,让它在后台执行(最好是一个服务)
  • ★ 怎样写一个定时自动运行的程序,让它在后台执行(最好是一个服务)
  • ★ 怎样写一个定时自动运行的程序,让它在后台执行(最好是一个服务)
  • 加了定时器后程序运行占用的内存随着自动增加,郁闷啊!
  • 请问怎么在aix环境中自动定时运行DB2的存储过程!

关键词

  • b2b
  • servlet
  • 数据库
  • hourofday
  • hourservlet
  • sysnet
  • timertrade
  • schedule
  • 整数
  • settle

得分解答快速导航

  • 帖主:TsungLee
  • liuquanyi
  • Jolestar
  • shuiruhan1981905

相关链接

  • CSDN Java频道
  • Java类图书
  • Java类源码下载

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
惹火投票。。火热进行中...
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
北京创新乐知广告有限公司 版权所有, 京 ICP 证 070598 号
世纪乐知(北京)网络技术有限公司 提供技术支持
CSDN网站24小时值班电话:13552009689
Copyright © 2000-2009, CSDN.NET, All Rights Reserved
GongshangLogo