Использование переменных в ServletContextListener - PullRequest
1 голос
/ 11 июля 2010

Есть ли причина, по которой переменная не может быть создана в Java ServletContextListener, и ее значение устанавливается и получается как любой другой.У меня есть ArrayList в SCL, а метод в другом классе обновляет ArrayList так часто, используя статические методы get и set в самой SCL.Здесь я предпочитаю не использовать ServletContext для хранения ArrayList.

Никакой новый экземпляр слушателя не создается вообще.

Код в SCL похож на приведенный ниже:

private static ArrayList<String> strList;

@Override
public void contextInitialized(ServletContextEvent contextEvent) { 
    ArrayList<String> temp = someOtherMethod(); 
    setStrList(temp);
}

@Override
public void contextDestroyed(ServletContextEvent contextEvent) {        
}

public static ArrayList<String> getStrList() {
   // ...
   return strList;
}

public static void setStrList(ArrayList<String> temp) {
   this.strList = temp;
   // ... 
}

1 Ответ

3 голосов
/ 11 июля 2010

Ваша «переменная» должна жить где-то, чтобы вы могли к ней добраться.

Если вы находитесь в ContextListener, то вы можете put объект в ServletContext и get его обратнопозже из всего, что имеет доступ к тому же ServletContext.Получив его, вы, конечно же, можете обновить его, если он изменчив, как ArrayList.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...