我正在创建一个Java servlet,它需要跨所有会话的共享对象(所有连接都有一个实例)。我已经读过这可以使用getServletContext来完成,但是,有没有办法在webserver启动时实例化它?目前我正在使用init(),但是,似乎每个新连接都会调用它。
答案 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) {
}
}
分别在创建或销毁上下文时,容器会调用这些方法。