2015-07-09 5 views
0

Я создаю сервлет Java, которому потребуется общий объект во всех сеансах (один экземпляр для всех подключений). Я прочитал, что это может быть выполнено с помощью getServletContext, однако, есть ли способ создать его при запуске веб-сервера? В настоящее время я использую init(), однако это, как представляется, вызывает каждое новое соединение.Создание экземпляра общего объекта Java сервлета

+0

вы можете использовать сеанс, но я не рекомендую его – SpringLearner

ответ

0

Обычно я использую статическую переменную. Вы можете использовать инициализатор static{} для более сложных операций.

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) { 
    } 

} 

Эти методы затем вызывается контейнером, когда контекст создается или разрушается, соответственно.

Смежные вопросы