Вероятная причина в том, что сервлеты не написаны для обеспечения безопасности потоков. Обратите внимание, что объект, содержащий методы сервлета, может использоваться для ответа на множество одновременных запросов. Если этот метод использует переменную уровня класса для создания ответа, то запросы будут выглядеть «перепутанными».
Итак. Приходит запрос № 1, назначается экземпляру сервлета, экземпляр № 1
Соответствующий метод вызывается в экземпляре # 1, который начинает использовать переменную класса для вычисления результата. Экземпляр # 1.myVariable = "Бла"
Теперь приходит запрос № 2, который также назначен экземпляру № 1
Опять же, соответствующий метод вызывается в экземпляре # 1, который устанавливает Instance # 1.myVariable = "Foo"
.. тем временем первый запрос завершается и возвращает экземпляр # 1.myVariable ... "Foo"!
.. и затем второй запрос завершается, а также возвращает «Foo».