Область контекста сервлета против глобальной переменной

В чем (если есть) разница между хранением переменной в ServletContext и просто наличием ее в качестве открытого статического члена одного из классов?

Вместо того чтобы писать:

// simplified (!)
int counter = (Integer)getServletContext().getAttribute("counter");
counter++;
this.getServletContext().setAttribute("counter", counter);

Почему бы просто не иметь:

// in class MyServlet
public static int counter = 0;

// in a method somewhere
MyServlet.counter++;

(Игнорируйте проблемы параллелизма, пожалуйста, это просто тупой пример)

Из того, что я могу сказать, эти два варианта ведут себя одинаково под Tomcat. Есть ли что-то лучшее об использовании первого варианта?

Ответы на вопрос(2)

Ваш ответ на вопрос