Является ли сервлет по умолчанию стандартом (де-факто)? - PullRequest
4 голосов
/ 02 ноября 2009

Относительно этого вопроса , является ли идея сервлета по умолчанию, который обслуживает статическое содержимое стандартом (даже если он фактически) через контейнеры сервлета, или его использование ограничивает развертывание Tomcat / Jetty?

Например, 1 показывает этот метод для получения диспетчера по умолчанию:

 final RequestDispatcher rd = getServletContext().getNamedDispatcher("default");

Из быстрого поиска кажется, что это также будет работать на Jetty. Насколько широко этот метод будет работать для получения сервлета по умолчанию? Для контейнеров сервлетов, которые имеют сервлет по умолчанию, всегда ли это сервлет статического содержимого?

Ответы [ 3 ]

4 голосов
/ 02 ноября 2009

Это не стандарт, но без него сервер приложений не может обслуживать статический контент. Это просто важно.

[править] Я видел, как вы отредактировали свой вопрос и прояснили его более четко:

Например, [1] показывает этот метод для получение диспетчера по умолчанию:

final RequestDispatcher rd = getServletContext () getNamedDispatcher ( "по умолчанию");.

Из быстрого поиска кажется, что это также будет работать на причале. Насколько широко будет ли эта техника работать для получения сервлет по умолчанию? Для сервлета контейнеры, которые имеют значение по умолчанию сервлет, это всегда статический контент сервлет?

В этом случае это может быть стандартом де-факто, но я бы не стал на это сильно полагаться и наверняка не кодировал бы против специфических деталей реализации или даже стандартов де-факто. Задайте себе вопрос: в чем смысл / ценность отправки запроса в defaultservlet? Точно, ничего.

2 голосов
/ 02 ноября 2009

Сервлет не требует сервлета по умолчанию. Тем не менее, имя должно быть «по умолчанию», если оно определено. Не могу представить контейнер без сервлета по умолчанию. Таким образом, вы можете предположить, что это стандарт.

См. Раздел SRV.11.1,

4. Если ни одно из трех предыдущих правил не приводит к совпадению сервлета, контейнер попытаться предоставить контент, соответствующий запрашиваемому ресурсу. Если «по умолчанию» сервлет определен для приложения, он будет использоваться.

0 голосов
/ 02 ноября 2009

Пока стандартом контейнера сервлета является Servlet API , вы можете видеть, что не существует такой вещи, как DefaultServlet. В наиболее широко используемом контейнере сервлетов есть некоторые настройки по умолчанию. Но это не «стандартное» требование для реализации определенного интерфейса или абстрактного класса, чтобы контейнер мог работать. (Контейнер может работать даже без какого-либо сервлета).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...