Zakres kontekstu serwletu a zmienna globalna

Czym (jeśli w ogóle) jest różnica między przechowywaniem zmiennej w ServletContext i po prostu jako publicznym statycznym członkiem jednej z klas?

Zamiast pisać:

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

Dlaczego po prostu nie:

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

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

(Ignoruj ​​problemy z współbieżnością, proszę, to tylko głupi przykład)

Z tego, co mogę powiedzieć, te dwie opcje zachowują się w ten sam sposób w Tomcat. Czy jest coś lepszego w korzystaniu z pierwszej opcji?

questionAnswers(2)

yourAnswerToTheQuestion