是这样; 现在想实现这样一种功能: 服务器启动时自动执行某个类的某个方法, 并且只是在启动时执行. 在Web.xml文件中确实也看到了一些标着0, 1, 2这样的表示启动顺序的配置, 但自己实现起来却不明白. 不知道能不能详细说一下这个的实现方法, 谢谢!!

解决方案 »

  1.   

    你说的服务器启动,不是主机启动吧?应该是tomcat之类的应用服务器启动吧?如果是后者,通过Listener可以实现这个功能
    1、写一个类,实现ServletContextListener2、实现contextInitialized(ServletContextEvent sce)
    这个方法,在你的web应用初始化的时候,会被调用一次。3、在web.xml中配置一个listener,
    <listener>
        <listener-class>
         你实现的listener类名
        </listener-class>
      </listener>
    大功告成
      

  2.   

    <load-on-startup>标记容器是否在启动的时候就加载这个servlet。当值为0或者大于0时,表示容器在应用启动时就加载这个servlet;当是一个负数时或者没有指定时,则指示容器在该servlet被选择时才加载。正数的值越小,启动该servlet的优先级越高。第一步 web.xml添加
    <servlet>
    <servlet-name>SysInit</servlet-name>
    <servlet-class>com.spread.common.system.SysInit</servlet-class>
    <load-on-startup>100</load-on-startup>
    </servlet>第二步
    实现一个servletimport javax.servlet.http.HttpServlet;import org.apache.commons.logging.Log;
    import org.apache.commons.logging.LogFactory;
    import org.springframework.web.context.WebApplicationContext;
    import org.springframework.web.context.support.WebApplicationContextUtils;import com.spread.common.system.SysConfig;public class SysInit extends HttpServlet{
    private static final Log logger = LogFactory.getLog(SysInit.class);
    private static final long serialVersionUID = -4372098656236478486L; public void init(){
                System.out.println("加载ing......");
    }
    }