0

我已经在 Simple java 类中实现了一个 ServletContextListener。现在我在其中调用了一个方法,以便在 ServletContextListener 的 contextInitialized 运行后立即执行。调用方法的性质是它很复杂并且需要很长时间才能执行。只有一个名为 index.jsp 的网页是欢迎页面,该页面需要在 Web 应用程序运行后立即显示在浏览器上,但由于第一次调用的方法执行而不会显示,并且执行需要很长时间。

我需要显示欢迎页面并在 ServletContextListener 中调用函数以在后台执行..

这是我的 ServletContextListener 类..

public class Startup implements ServletContextListener
{
@Override
public void contextDestroyed(ServletContextEvent sce) {}

@Override
public void contextInitialized(ServletContextEvent sce)
{
    // Do your startup work here
     executeprocess();
}

}

这是我的 web.xml 文件..

 <welcome-file-list>
    <welcome-file>index.jsp</welcome-file>
</welcome-file-list>
 <listener>
    <listener-class>org.myapp.Startup</listener-class>
</listener>

请帮我。提前致谢..

4

2 回答 2

6

尝试添加线程如下:

@Override public void contextInitialized(ServletContextEvent sce) {
new Thread(new Runnable() {
    @Override
    public void run() {
        executeprocess();
    }
}).start();}
于 2013-11-15T09:02:21.833 回答
2

contextInitialized方法将暂停部署,直到该方法完成。

于 2013-11-15T09:00:05.343 回答