Java servlet共享对象实例化

时间:2015-07-09 16:48:22

标签: java servlets

我正在创建一个Java servlet,它需要跨所有会话的共享对象(所有连接都有一个实例)。我已经读过这可以使用getServletContext来完成,但是,有没有办法在webserver启动时实例化它?目前我正在使用init(),但是,似乎每个新连接都会调用它。

2 个答案:

答案 0 :(得分:0)

我通常使用静态变量。您可以使用remote-repos初始化程序进行更复杂的操作。

答案 1 :(得分:0)

您可以创建ServerContextListener并将其添加到您的web.xml。

<listener>
    <listener-class>somepackage.MyContextListener</listener-class>
</listener>

public class MyContextListener implements ServletContextListener {

    @Override
    public void contextInitialized(ServletContextEvent sce) {
        // Do init here - Occurs once when the context is created
    }

    @Override
    public void contextDestroyed(ServletContextEvent sce) {
    }

}

分别在创建或销毁上下文时,容器会调用这些方法。