Для чего в Tomcat используется conf / web.xml, а для WEB-INF? - PullRequest
22 голосов
/ 09 мая 2011

Мое развертывание Tomcat содержит файл web.xml в папке conf. Для чего в Tomcat используется conf / web.xml, а не для WEB-INF? Мне это нужно?

Ответы [ 2 ]

28 голосов
/ 09 мая 2011

Да, вам это точно нужно!Он содержит среди прочего объявления сервлета по умолчанию и JSP сервлета .Без этого все запросы, которые не отображаются ни на один из ваших сервлетов (например, CSS / JS / images), перестанут работать, и все запросы JSP будут возвращены в виде простого неразобранного исходного кода.

Кроме того, он также содержит большойотображение типа MIME, так что правильный тип контента будет установлен на основе расширения файла.Без этого весь контент будет доставлен как application/octet-stream, и браузер может не интерпретировать его.

Не не удалить собственный Tomcat web.xml.Он содержит минимальный набор параметров, необходимых для правильной работы веб-приложений.Там вы можете максимально изменить параметры инициализации сервлета по умолчанию и сервлета JSP, например включить / отключить списки каталогов и включить / отключить обрезку пробелов и другие незначительные параметры производительности.Вы также можете добавить дополнительные отображения типов MIME, но вы также можете сделать это на собственном веб-приложении web.xml.Это также явно упоминается в первом блоке комментариев Tomcat web.xml:

<!-- ======================== Introduction ============================== -->
<!-- This document defines default values for *all* web applications      -->
<!-- loaded into this instance of Tomcat.  As each application is         -->
<!-- deployed, this file is processed, followed by the                    -->
<!-- "/WEB-INF/web.xml" deployment descriptor from your own               -->
<!-- applications.                                                        -->
<!--                                                                      -->
<!-- WARNING:  Do not configure application-specific resources here!      -->
<!-- They should go in the "/WEB-INF/web.xml" file in your application.   -->
7 голосов
/ 09 мая 2011

web.xml в WEB-INF - это дескриптор развертывания, который применяется только к текущему веб-приложению и как таковой контролирует работу только этого веб-приложения. Он позволяет вам определять свои сервлеты, отображение сервлетов на URL, параметры контекста (запуска) и т. Д. web.xml в каталоге conf Tomcat определяет параметры по умолчанию для ВСЕХ приложений в экземпляре Tomcat. Теоретически, это может отсутствовать, но тогда все развернутое веб-приложение должно будет определить все параметры в нем - так, чтобы страницы .jsp обрабатывались JspServlet (который скомпилирует их и загрузит сгенерированный сервлет и т. Д.) все отображения MIME и списки файлов по умолчанию (для тех приложений, которые не указывают это). Думайте об этом как о наборе значений по умолчанию, которые вы можете всегда переопределять, однако, они есть для вашего удобства, поэтому вам не нужно определять их для каждого приложения.

...