В общем случае - нераспределенный, многопоточный, гарантируется, что будет только один экземпляр сервлета.Из спецификации Servlet 3.0:
2.1 Методы обработки запросов
Базовый интерфейс Servlet определяет сервисный метод для обработки клиентских запросов.Этот метод вызывается для каждого запроса, который контейнер сервлета направляет к экземпляру сервлета.Для обработки одновременных запросов к веб-приложению обычно требуется, чтобы веб-разработчик разработал сервлеты, которые могут работать с несколькими потоками, выполняемыми в методе службы в конкретное время.Обычно веб-контейнер обрабатывает параллельные запросы к одному и тому же сервлету путем одновременного выполнения метода службы в разных потоках.
2.2 Число экземпляров
Объявление сервлета, которое выполняется с помощью аннотации, как описано в главе 8 «Аннотации и подключаемость», или является частью дескриптора развертыванияВеб-приложение, содержащее сервлет, как описано в главе 14 «Дескриптор развертывания», контролирует, как контейнер сервлета предоставляет экземпляры сервлета. Для сервлета, не размещенного в распределенной среде (по умолчанию), контейнер сервлета должен использовать только один экземпляр для объявления сервлета .Однако для сервлета, реализующего интерфейс SingleThreadModel, контейнер сервлета может создавать несколько экземпляров для обработки тяжелой загрузки запросов и сериализации запросов для конкретного экземпляра.
В случае, когда сервлет был развернут как часть приложенияпомеченный в дескрипторе развертывания как распространяемый, контейнер может иметь только один экземпляр на объявление сервлета на виртуальную машину Java (JVM ™) 1.Однако, если сервлет в распространяемом приложении реализует интерфейс SingleThreadModel, контейнер может создавать несколько экземпляров этого сервлета в каждой JVM контейнера.