Есть много различных уровней, на которых можно ответить на этот вопрос:
- Фактический сервлет экземпляра (как в смысле «экземпляр класса») не ваше дело: сам сервер приложений решает, сколько экземпляров объекта, который он хочет создать. (обычно это всего лишь 1 - за каждое приложение)
- Если вы развертываете веб-приложение на корневом пути вашего сервера («/»), вы сможете сопоставить URL
/old-address
и /new-address
с тем же сервлетом (опять же, don Не беспокойтесь о примере .Я предполагаю, что вы хотите развернуть old-address.war и new-address.war - в этом случае вы будете запускать совершенно разные веб-приложения, которые будут отделены от друг от друга по дизайну.
- Если вы переходите от одного к другому имени приложения, на самом деле преимуществом является настройка правильных перенаправлений (постоянных переадресаций, если на то пошло), так что рано или поздно все обновили свои закладки и ссылки .
Комментарий к следующим примечаниям:
Сервлет не должен сохранять состояние в своем экземпляре. Запросы подаются одновременно, и государство приходит через объекты запроса и ответа. Если вы беспокоитесь о параллельном доступе к некоторым бэкэнд-ресурсам (как вы заявляете в комментарии к вопросу): у вас уже есть неправильная реализация, и им просто повезло, что они не были укушены ею. Даже один экземпляр сервлета может обрабатывать тысячи одновременных запросов (если контейнер принимает много параллельных соединений).
и потребление памяти сервлетов объекта также не имеет значения (см мой комментарий по этому поводу)
Вы волнуетесь о неверном вещи.
Вы действительно заботитесь, действительно ли это тот же самый экземпляр сервлета (т. Е. Тот же объект), или вы просто хотите использовать тот же класс сервлета в том же webapp? Потому что, если это последний, просто объявите два отображения сервлетов в вашем веб-приложении. –
@JBNizet, я хочу иметь один и тот же экземпляр по двум причинам: я не хочу излишнего потребления памяти. И два или более экземпляра сервлетов, обращающихся к одному экземпляру базы данных, могут вызвать конфликты в моем конкретном случае. – Abdull
Экземпляр объекта занимает 16 байт памяти, поэтому я не думаю, что это действительная проблема. И даже если у вас только один экземпляр, он одновременно выполняет запросы, поэтому вы, скорее всего, ** уже ** обращаетесь к одной и той же базе данных одновременно. –