Что означает <enabled>false </enabled> для определения сервлета в web.xml? - PullRequest
3 голосов
/ 11 февраля 2012

Кажется, что в web.xml для сервлета есть элемент с именем

<enabled>false</enabled>

, которое может быть введено в определение сервлета, например,

<servlet>
    <servlet-name>example</servlet-name>
    <servlet-class>com.example.TestServlet</servlet-class>
    <load-on-startup>100</load-on-startup>
    <enabled>false</enabled>
</servlet>

Имеет ли отношение относится к способности сервлета обрабатывать запросы? Я заметил, что даже если я установил значение «false», вызывается метод init сервлета. Поиск в pdf спецификации сервлета не дал объяснения значения , на самом деле я даже не смог найти строку в спецификации сервлета 3.0.

Ответы [ 3 ]

4 голосов
/ 11 февраля 2012

Из спецификации Java Servlet 3.0, раздел 8.2.3 (см. Pdf) :

Если сервлет отключен с использованием включенного элемента , представленного в web.xml тогда сервлет не будет доступен по URL-шаблону, указанному для сервлета.

Редактировать: Вот еще один пост на эту тему: Как убедиться, что сервлет не загружен?

Редактировать 2: (здесь краткая информация из комментариев ниже) В Tomcat 7 (по состоянию на 7.0.25) кажется, что сервлет будет инициализироваться, но запросы на его шаблон URL будут отвечать кодом состояния 503 (SC_SERVICE_UNAVAILABLE)

2 голосов
/ 11 февраля 2012

Я не могу найти его нигде, кроме XSD. Если он по-прежнему обрабатывает запросы (проверьте это), то, я полагаю, он добавлен туда для будущего использования или для разрешения контейнерам решать, что с ним делать.

1 голос
/ 11 февраля 2012

Посмотрите на дескриптор развертывания Oracle web.xml

Похоже, это запись для конкретного сервера, какой сервер приложений вы используете?

...