日期:2014-05-18  浏览次数:20835 次

如何让Servlet自启动一次?
我在web.xml配置了:
<servlet> 
<servlet-name>AutoServlet</servlet-name> 
  <description>自动执行</description> 
  <servlet-class>com.csdf.servlet.AutoServlet</servlet-class> 
  <load-on-startup>999</load-on-startup> 
  </servlet> 

目的是让Servlet在tomcat启动时就自动加载并定时执行某些运算。但在我配置了多站点之后发现每加载一个站点,该Servlet都会自动运行一次,造成重复运算。
请问该如何设置该Servlet为唯一实例,避免重复运算的情况存在?谢谢!

------解决方案--------------------
<load-on-startup>999</load-on-startup>
设置为: <load-on-startup>0</load-on-startup>
表示你的服务启动就会第一时间加载你的servlet 而且只会加载一次
------解决方案--------------------
XML code


    <servlet>
        <servlet-name>ConfigServlet</servlet-name>
        <servlet-class>
            com.huawei.hdm.servlet.ConfigServlet
        </servlet-class>
        <init-param>
            <param-name>basePath</param-name>
            <param-value>WEB-INF/classes/</param-value>
        </init-param>

        <load-on-startup>1</load-on-startup>
    </servlet>

------解决方案--------------------
探讨
XML code


<servlet>
<servlet-name>ConfigServlet</servlet-name>
<servlet-class>
com.huawei.hdm.servlet.ConfigServlet
</servlet-class>
<init-para……

------解决方案--------------------
探讨

XML code


<servlet>
<servlet-name>ConfigServlet</servlet-name>
<servlet-class>
com.huawei.hdm.servlet.ConfigServlet
</servlet-class>
<init-param>
……

------解决方案--------------------
<load-on-startup>0</load-on-startup>
------解决方案--------------------
<load-on-startup>1</load-on-startup>