Что (если есть) - это разница между сохранением переменной в 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++;
(Игнорировать concurrency проблемы, пожалуйста, это просто тупой пример)
Из того, что я могу сказать, эти две опции ведут себя одинаково под Tomcat. Есть ли что-то лучше в использовании первого варианта?