可不可以写一个类似客户端请求的程序,每天固定请求你的action,如果这样的话,不知道使用URLConnection可不可以

解决方案 »

  1.   

    我有个简单的实现:
    1 确定执行时间 t
    2 定义个上次处理的日期 d
    3 在某一个客户经常访问的网页放上判断/执行代码(伪代码):
       if ((现在时间 > t) && (今天的日期 〉d )) //超过执行时间并且没有执行过
           forword 到youActionMappedURL 带参数?originalURL=xxxxx);//此(客户经常访问的)网页
    4 action里处理完再 1 d=今天的日期 2 forword 到 originalURL
      

  2.   

    这个提法优点奇怪,若是每天执行某业务功能的话,应该是把相关的业务逻辑封装在类中,而不是直接写在action中
    我是做了一个context的侦听,在contextInitialized其中利用Timer类的schedule方法实现的
      

  3.   

    不一定要放在Action中做,把思路放宽一些。在启动应用服务器(当然,web服务器也适用)时,启动一个servlet,在此servlet中做你想做的工作。让一个servlet在服务器初始化的时候运行有多种方法,最简单的就是在web.xml注册一个listener.
      

  4.   

    同意bdsc的做法设定一个周期然后 反复的测试做判断 得出结论
      

  5.   

    bdsc的
    在某一个客户经常访问的网页放上判断/执行代码(伪代码)
    这种做法合适吗?比较好的解决方法是开个TimerTask,每天定时去执行你的业务方法....
    当然你要调用Action也行,因为Action也只不过是一个普通的类
    不过你要扩展ActionServlet,这样做就比较复杂了...
      

  6.   

    好的方案还很多,不过我通常只根据客户的requirement给出solution。
      

  7.   

    应该是在struts中不是有个web.xml吗?如果你想要每天自动执行的话,你可以写一个存储过程,然后调用这个存储过程,你把你写的action放到web.xml中,
    还有一种方法,如果你用的数据库是oracle的话,可以写一个存储过程,然后用oralce的job就可以了,我以前用的是第一种方法,后来该为第二种方法,建议用第二种方法:)