servlet或ejb singleton初始化Web应用程序

时间:2014-02-06 11:39:32

标签: servlets web initialization ejb

我需要初始化Web应用程序的状态。 我可以使用load-on-startup = 0的初始化servlet。 或者我可以使用singleton ejb服务。

有什么好用的?为什么?

2 个答案:

答案 0 :(得分:1)

我认为加载启动优于 ejb 。 我在我的网络应用程序中启动时使用了负载。

 <servlet>
   <servlet-class>com.agileinfotech.bsviewer.servlet.InitServlet</servlet-class>
   <load-on-startup>1</load-on-startup>
 </servlet>
 <servlet-mapping>
    <servlet-name>InitServlet</servlet-name>
    <url-pattern>/InitServlet</url-pattern>
 </servlet-mapping>

答案 1 :(得分:0)

Web应用程序初始化有一个特殊的“事物” - ServletContextListener。 它是这样使用的:

package example;

import javax.servlet.ServletContext;
import javax.servlet.ServletContextEvent;
import javax.servlet.ServletContextListener;

public class ServletContextExample implements ServletContextListener{
    ServletContext context;
public void contextInitialized(ServletContextEvent contextEvent) {
       ... some init work
}
public void contextDestroyed(ServletContextEvent contextEvent) {
        ... some destroy work
}

}

在web.xml中

<listener>
  <listener-class>
    example.ServletContextExample
  </listener-class>
</listener>