在加载应用程序上下文之前启动Servlet

时间:2010-11-08 11:45:55

标签: java spring tomcat servlets

我有一个servlet,它捆绑在我的应用程序中。我希望能够在应用程序上下文最终初始化之前配置Tomcat或Spring以在boostrap上加载此servlet。

我这样做是因为 - 我正在使用servlet在实际上下文被触发之前进行一些初始环境检查和文件加载。

有人知道这样做很好吗?

我已经添加了这样的servlet定义;

    <servlet> 
            <servlet-name>init-class</servlet-name>
            <servlet-class>package.initClass</servlet-class>
            <load-on-startup>0</load-on-startup> 
    </servlet>

仅在应用程序上下文完成加载后才会触发。

2 个答案:

答案 0 :(得分:6)

您需要将此初始化逻辑放入ServletContextListener而不是servlet,并在web.xml中将其声明为

<listener><listener-class>YourListenerClass</listener-class></listener>

此外,如果你的Spring上下文是由ContextLoaderListener加载的,那么你的监听器应该在web.xml之前声明,因为监听器是按声明顺序触发的。

答案 1 :(得分:0)

也许Listner正是您要找的