Является ли сервлет независимым от другого (с точки зрения процесса)?
Да.Спецификация Servlet 3.0 сообщает, среди прочего, следующее:
2.3.2.1 Условия ошибки при инициализации
Во время инициализации экземпляр сервлета может выдать UnavailableException
или ServletException
.В этом случае сервлет не должен быть помещен в активную службу и должен быть освобожден контейнером сервлета.Метод destroy
не вызывается, так как он считается неудачной инициализацией.
В нем не сказано ни одной строки о том, что другие сервлеты не должны быть инициализированы или что-то в этом роде.Только то, что сервлет не был помещен в активную службу.
Обновление согласно комментариям: та же самая спецификация говорит следующее всякий раз, когда успешно инициализированный сервлет генерирует исключение во время службы:
2.3.3.2 Исключения при обработке запроса
Сервлет может выдавать ServletException
или UnavailableException
во время обслуживания запроса.ServletException
сигнализирует, что во время обработки запроса произошла какая-то ошибка, и что контейнер должен предпринять соответствующие меры для очистки запроса.
UnavailableException
сигнализирует, что сервлет не может обрабатывать запросы временно.или навсегда.Если UnavailableException
указывает на постоянную недоступность, контейнер сервлета должен удалить сервлет из службы, вызвать его метод уничтожения и освободить экземпляр сервлета.Любые запросы, отклоненные контейнером по этой причине, должны быть возвращены с ответом SC_NOT_FOUND (404).