Настройка и описание web.xml в приложении с Spring и JSF
Java веб-приложения используют файл дескриптора развертывания для определения какие URL будут передаваться определенному сервлету, какие URL требуют аутентификации и др. Этот дескриптор развертывания называется web.xml и находится в WAR приложения в WEB-INF/ директории. Web.xml — часть стандарта сервлета для веб-приложений.
О дескрипторе развертыванияДескриптор развертывания веб-приложений описывает классы, ресурсы и конфигурацию приложения, а так же как сервер будет использовать их для выполнения веб-запросов. Когда сервер получает запрос для приложения, он использует дескриптор развертывания для отображения URL запроса к коду, который должен этот запрос обработать.
Вот пример простого web.xml отображающего все пути URL (т.е. /*) к классу сервлета mysite.server.ComingSoonServlet:
<web-app xmlns=»http://java.sun.com/xml/ns/javaee» version=»2.5″> <servlet> <servlet-name>comingsoon</servlet-name> <servlet-class>mysite. server.ComingSoonServlet</servlet-class> </servlet> <servlet-mapping> <servlet-name>comingsoon</servlet-name> <url-pattern>/*</url-pattern> </servlet-mapping> </web-app>
1 2 3 4 5 6 7 8 9 10 | <web-app xmlns=»http://java.sun.com/xml/ns/javaee» version=»2.5″> <servlet> <servlet-name>comingsoon</servlet-name> <servlet-class>mysite.server.ComingSoonServlet</servlet-class> </servlet> <servlet-mapping> <servlet-name>comingsoon</servlet-name> <url-pattern>/*</url-pattern> </servlet-mapping> </web-app> |
web.
Для привязки («маппинг») URL к сервлету, необходимо определить элементы <servlet> и <servlet-mapping>.
<servlet> <servlet-name>redteam</servlet-name> <servlet-class>mysite.server.TeamServlet</servlet-class> <init-param> <param-name>teamColor</param-name> <param-value>red</param-value> </init-param> <init-param> <param-name>bgColor</param-name> <param-value>#CC0000</param-value> </init-param> </servlet> <servlet> <servlet-name>blueteam</servlet-name> <servlet-class>mysite.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 | <servlet> <servlet-name>redteam</servlet-name> <servlet-class>mysite.server.TeamServlet</servlet-class> <init-param> <param-name>teamColor</param-name> <param-value>red</param-value> </init-param> <init-param> <param-name>bgColor</param-name> <param-value>#CC0000</param-value> </init-param> </servlet>
<servlet> <servlet-name>blueteam</servlet-name> <servlet-class>mysite. server.TeamServlet</servlet-class> <init-param> <param-name>teamColor</param-name> <param-value>blue</param-value> </init-param> <init-param> <param-name>bgColor</param-name> <param-value>#0000CC</param-value> </init-param> </servlet> |
Элемент <servlet-mapping> определяет шаблон URL и имя сервлета, который будет обрабатывать запросы, соответствующие шаблону. Шаблон должен содержать полный путь URL, включая (/), следующий за именем домена.
<servlet-mapping> <servlet-name>redteam</servlet-name> <url-pattern>/red/*</url-pattern> </servlet-mapping> <servlet-mapping> <servlet-name>blueteam</servlet-name> <url-pattern>/blue/*</url-pattern> </servlet-mapping>
1 2 3 4 5 6 7 8 9 | <servlet-mapping> <servlet-name>redteam</servlet-name> <url-pattern>/red/*</url-pattern> </servlet-mapping>
<servlet-mapping> <servlet-name>blueteam</servlet-name> <url-pattern>/blue/*</url-pattern> </servlet-mapping> |
В этом примере запрос с URL http://www. example.com/blue/teamProfile будет перехвачен классом сервлета TeamServlet с параметром teamColor=blue и bgColor=#0000CC.
Пример с множеством сервлетов
<servlet> <servlet-name>watermelon</servlet-name> <servlet-class>myservlets.watermelon</servlet-class> </servlet> <servlet> <servlet-name>garden</servlet-name> <servlet-class>myservlets.garden</servlet-class> </servlet> <servlet> <servlet-name>list</servlet-name> <servlet-class>myservlets.list</servlet-class> </servlet> <servlet> <servlet-name>kiwi</servlet-name> <servlet-class>myservlets.kiwi</servlet-class> </servlet> <servlet-mapping> <servlet-name>watermelon</servlet-name> <url-pattern>/fruit/summer/*</url-pattern> </servlet-mapping> <servlet-mapping> <servlet-name>garden</servlet-name> <url-pattern>/seeds/*</url-pattern> </servlet-mapping> <servlet-mapping> <servlet-name>list</servlet-name> <url-pattern>/seedlist</url-pattern> </servlet-mapping> <servlet-mapping> <servlet-name>kiwi</servlet-name> <url-pattern>*.
1 2 3 4 5 6 7 8 9 10 11 12 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 | <servlet> <servlet-name>watermelon</servlet-name> <servlet-class>myservlets.watermelon</servlet-class> </servlet>
<servlet> <servlet-name>garden</servlet-name> <servlet-class>myservlets.garden</servlet-class> </servlet>
<servlet> <servlet-name>list</servlet-name> <servlet-class>myservlets.list</servlet-class> </servlet>
<servlet> <servlet-name>kiwi</servlet-name> <servlet-class>myservlets. kiwi</servlet-class> </servlet>
<servlet-mapping> <servlet-name>watermelon</servlet-name> <url-pattern>/fruit/summer/*</url-pattern> </servlet-mapping>
<servlet-mapping> <servlet-name>garden</servlet-name> <url-pattern>/seeds/*</url-pattern> </servlet-mapping>
<servlet-mapping> <servlet-name>list</servlet-name> <url-pattern>/seedlist</url-pattern> </servlet-mapping>
<servlet-mapping> <servlet-name>kiwi</servlet-name> <url-pattern>*.abc</url-pattern> </servlet-mapping> |
URL | Servlet |
---|---|
|
|
|
|
|
|
| Сервлет по умолчанию (если сконфигурирован), или HTTP 404 File Not Found error message. Если маппинг сервлета |
|
Если маппинг сервлета |
|
|
|
|
|
|
Настройка атрибута <welcome-file-list> в web.
xmlКогда URL сайта представляет путь для статичных файлов в вашем WAR, то часто хорошей идеей будет настройка атрибута <welcome-file-list> (например для начальной страницы авторизации). Пользователь находящийся на странице /help/accounts/password.xhtml может попытаться перейти на /help/accounts/ для доступа к закрытой информации. Дескриптор развертывания может задать список имен, которые должен перепробовать сервер, когда пользователь обращается к пути из подкаталога WAR (который неявно обрабатывается сервлетом), прежде чем выдать ошибку URL не найден.
К примеру, если пользователь попытается перейти по пути /help/accounts/, то следующие настройки <welcome-file-list> заставят сервер проверить /help/accounts/index.xhtml и /help/accounts/index.html, прежде чем вывести 404 ошибку:
<welcome-file-list> <welcome-file>index.xhtml</welcome-file> <welcome-file>index.html</welcome-file> </welcome-file-list>
<welcome-file-list> <welcome-file>index. xhtml</welcome-file> <welcome-file>index.html</welcome-file> </welcome-file-list> |
Настройка начальной страницы c помощью <welcome-file-list>
При запуске приложения можно задать начальную страницу, на которую перейдет браузер. Частая проблема, что при загрузке сервера приложений мы получаем 404 ошибку — страница не найдена. Давайте разберемся как нужно настраивать файл web.xml веб-приложения.
В первую очередь нужно учесть, что папка WEB-INF/ используется для внутренних файлов (те же настройки и т.п.) и НЕ доступна извне. Т.е. начальную страницу можно хранить только вне этой папки. Например в webapp/folder/index.xhtml — можно, а в webapp/WEB-INF/folder/index.xhtml — нельзя.
<span>WebContent |— META-INF |— WEB-INF | `— web.xml `— index.xhtml</span>
<span>WebContent |— META-INF |— WEB-INF | `— web. xml `— index.xhtml</span> |
Теперь собственно к настройкам.
Например у нас есть сервлет с полным именем com.examplecompany.MyCMS. Он будет доступен при перехвате ссылок, соответствующих шаблону /CMS, т.е. http://yoursite.com/CMS.
<!— Define the com.examplecompany.MyCMS servlet class, giving it the name MyCMS —> <servlet> <servlet-name>MyCMS</servlet-name> <servlet-class>com.examplecompany.MyCMS</servlet-class> </servlet> <!— Map the MyCMS name to the URI /CMS (main page for site) —> <servlet-mapping> <servlet-name>MyCMS</servlet-name> <url-pattern>/CMS</url-pattern> </servlet-mapping>
1 2 3 4 5 6 7 8 9 10 | <!— Define the com.examplecompany.MyCMS servlet class, giving it the name MyCMS —> <servlet> <servlet-name>MyCMS</servlet-name> <servlet-class>com. examplecompany.MyCMS</servlet-class> </servlet> <!— Map the MyCMS name to the URI /CMS (main page for site) —> <servlet-mapping> <servlet-name>MyCMS</servlet-name> <url-pattern>/CMS</url-pattern> </servlet-mapping> |
Теперь определим <welcome-file-list> со списком страниц, которые должен перебрать сервер, прежде чем выдать ошибку путь не найден:
<!— The main page for the site will be the MyCMS servlet (http://website/CMS) —> <welcome-file-list> <welcome-file>CMS</welcome-file> <welcome-file>index.html</welcome-file> <welcome-file>index.htm</welcome-file> <welcome-file>index.jsp</welcome-file> </welcome-file-list>
1 2 3 4 5 6 7 | <!— The main page for the site will be the MyCMS servlet (http://website/CMS) —> <welcome-file-list> <welcome-file>CMS</welcome-file> <welcome-file>index. html</welcome-file> <welcome-file>index.htm</welcome-file> <welcome-file>index.jsp</welcome-file> </welcome-file-list> |
Как это будет работать?
Когда кто-либо переходит на сайт, то происходит следующее
- http://yoursite.com превращается в http://yoursite.com/
- Сервер не находит ничего полезного для отображения и должен вывести ошибку, но у нас настроен welcome-file-list, значит, как описано выше сначала должен быть обработан этот атрибут.
- http://yoursite.com/ — это уже директория и начинается сканирование по welcome-file-list
- http://yoursite.com/CMS — первая в списке сканирования и это соответствует URL /CMS сервлета MyCMS, а значит он вступает в работу.
Отмечу что
http://yoursite.com/CMS — будет работать http://yoursite.com/someFolder/CMS — так не будет работать!
http://yoursite. com/CMS — будет работать http://yoursite.com/someFolder/CMS — так не будет работать! |
Важное замечание — в атрибуте <welcome-file> слеш вначале ставить не нужно, т.е. если <url-pattern> /servlet/MyServlet, то нужно писать вот так
<welcome-file>servlet/MyServlet</welcome-file>
<welcome-file>servlet/MyServlet</welcome-file> |
Полезные ссылки
Google. The Deployment Descriptor: web.xml
Oracle. Creating and Configuring Servlets
21
22102 Total Views 2 Views Today
Views: 19 358
Платформа CUBA. Руководство по разработке приложенийПриложение A. Конфигурационные файлы
Файл web.xml
является стандартным дескриптором веб-приложения Java EE, и должен быть создан для блоков Middleware, Web Client и Web Portal.
В проекте приложения файлы web.xml
располагаются в каталогах web/WEB-INF
соответствующих модулей.
Рассмотрим содержимое web.xml
блока Middleware (модуль core проекта):
<web-app xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" version="2.5"> <!-- Application properties config files --> <context-param> <param-name>appPropertiesConfig</param-name> <param-value> classpath:cuba-app.properties classpath:app.properties file:${catalina.home}/conf/app-core/local.app.properties </param-value> </context-param> <listener> <listener-class>com.haulmont.cuba.core.sys.AppContextLoader</listener-class> </listener> <servlet> <servlet-name>remoting</servlet-name> <servlet-class>com. haulmont.cuba.core.sys.remoting.RemotingServlet</servlet-class> <load-on-startup>1</load-on-startup> </servlet> <servlet-mapping> <servlet-name>remoting</servlet-name> <url-pattern>/remoting/*</url-pattern> </servlet-mapping> <servlet> <servlet-name>restapi</servlet-name> <servlet-class>com.haulmont.cuba.core.sys.restapi.RestApiServlet</servlet-class> <load-on-startup>1</load-on-startup> </servlet> <servlet-mapping> <servlet-name>restapi</servlet-name> <url-pattern>/api/*</url-pattern> </servlet-mapping> </web-app>
В элементах context-param
задаются инициализирующие параметры объекта ServletContext
данного веб-приложения. Здесь определен параметр appPropertiesConfig
, значением которого является список файлов свойств приложения.
В элементе listener
задается класс слушателя, реализующего интерфейс ServletContextListener
. В блоке Middleware CUBA-приложения в качестве слушателя должен использоваться класс AppContextLoader
, выполняющий инициализацию AppContext
.
Далее следуют определения сервлетов, среди которых обязательным для Middleware является класс RemotingServlet
, связанный с контейнером удаленного доступа (см. Раздел A.8, «remoting-spring.xml»). Данный сервлет отображен на URL /remoting/*
.
Рассмотрим содержимое web.xml
блока Web Client (модуль web проекта):
<web-app xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" version="2.5"> <context-param> <description>Vaadin production mode</description> <param-name>productionMode</param-name> <param-value>false</param-value> </context-param> <context-param> <param-name>appPropertiesConfig</param-name> <param-value> classpath:cuba-web-app. properties classpath:web-app.properties file:${catalina.home}/conf/app/local.app.properties </param-value> </context-param> <listener> <listener-class>com.haulmont.cuba.web.sys.WebAppContextLoader</listener-class> </listener> <servlet> <servlet-name>app_servlet</servlet-name> <servlet-class>com.haulmont.cuba.web.sys.CubaApplicationServlet</servlet-class> <init-param> <param-name>application</param-name> <param-value>com.haulmont.sales.web.App</param-value> </init-param> <init-param> <param-name>widgetset</param-name> <param-value>com.haulmont.cuba.web.toolkit.ui.WidgetSet</param-value> </init-param> <init-param> <param-name>UI</param-name> <param-value>com.haulmont.cuba.web.AppUI</param-value> </init-param> <init-param> <param-name>UIProvider</param-name> <param-value>com. haulmont.cuba.web.sys.CubaUIProvider</param-value> </init-param> </servlet> <servlet-mapping> <servlet-name>app_servlet</servlet-name> <url-pattern>/*</url-pattern> </servlet-mapping> <filter> <filter-name>cuba_filter</filter-name> <filter-class>com.haulmont.cuba.web.sys.CubaHttpFilter</filter-class> </filter> <filter-mapping> <filter-name>cuba_filter</filter-name> <url-pattern>/*</url-pattern> </filter-mapping> </web-app>
В данном файле определены два параметра: appPropertiesConfig
, значением которого является список файлов свойств приложения, и productionMode
, отключающий режим отладки фреймворка Vaadin.
В качестве ServletContextListener
в блоке Web Client используется класс WebAppContextLoader
.
Далее определяется сервлет CubaApplicationServlet
, входящий в состав основанной на фреймворке Vaadin реализации универсального пользовательского интерфейса. Сервлет имеет несколько параметров, в том числе:
application
— задает специфический для проекта класс клиентского приложения, который должен быть наследникомcom.haulmont.cuba.web.App
widgetset
— задает набор GWT компонентов, используемых на стороне веб-браузера
После определения сервлетов подключается фильтр CubaHttpFilter
, необходимый для функционирования блока Web Client.
java — Почему мы используем web.xml?
спросил
Изменено 2 года, 9 месяцев назад
Просмотрено 118 тысяч раз
72
Новинка! Сохраняйте вопросы или ответы и организуйте свой любимый контент.
Узнать больше.
Какая польза от web.xml и почему мы используем?
<фильтр>wicket.mysticpaste org.apache.wicket.protocol.http.WicketFilter <параметр инициализации>applicationClassName com.mysticcoders.WicketApplication фильтр> <фильтр-отображение>wicket.mysticpaste /* фильтр-отображение>
Что делает этот фильтр и сопоставление файлов?
- Java
- сервлеты
- jakarta-ee
- web.xml
3
Вообще говоря, это файл конфигурации веб-приложений в java. Он инструктирует контейнер сервлетов (например, tomcat), какие классы загружать, какие параметры устанавливать в контексте и как перехватывать запросы, поступающие от браузеров.
Там вы указываете:
- какие сервлеты (и фильтры) вы хотите использовать и какие URL-адреса вы хотите сопоставить с ними
- слушатели — классы, которые уведомляются, когда происходят некоторые события (запуск контекста, создание сеанса и т. д.)
- параметры конфигурации (параметры контекста) Страницы ошибок
- , файлы приветствия
- ограничения безопасности
В сервлете 3.0 многие части web.xml являются необязательными. Эти конфигурации можно выполнить с помощью аннотаций ( @WebServlet
, @WebListener
)
Файл web.xml
представляет собой дескриптор развертывания для веб-приложения Java на основе сервлетов (каким является большинство веб-приложений Java). Среди прочего, он объявляет, какие сервлеты существуют и какие URL-адреса они обрабатывают.
Часть, которую вы цитируете, определяет фильтр сервлетов. Фильтры сервлетов могут выполнять все виды предварительной обработки запросов. Ваш конкретный пример — это фильтр, который структура Wicket использует в качестве точки входа для всех запросов, потому что фильтры в некотором роде более мощные, чем сервлеты.
Говорит, что все запросы проходят через WicketFilter
Также, если вы используете калитки WicketApplication для настроек уровня приложения. Например, шаблоны URL-адресов и вещи, которые верны на уровне приложения. сообщите контейнеру сервлетов, какие сервлеты развертывать и какие URL-адреса отображать для сервлетов. Это делается в файле web.xml вашего веб-приложения Java.
использовать web.xml в сервлете
<описание>описание> имя класса сервлета имя класса сервлета имя пакета сервлета/имя класса сервлета сервлет> <отображение сервлета>имя класса сервлета /имя класса сервлета сервлет-отображение>
мужественно используйте web. xml для сопоставления сервлетов.
1
Это конфигурация по умолчанию для веб-приложения Java; это необходимо.
Фильтр калитки
применяется к каждому HTTP-запросу, отправляемому в это веб-приложение.
2
Web.xml называется файлом дескриптора развертывания и представляет собой XML-файл, содержащий информацию о конфигурации веб-приложения, включая конфигурацию сервлетов.
веб-приложений. Что такое файл web.xml и что с ним можно делать?
спросил
Изменено 5 лет назад
Просмотрено 129 тысяч раз
78
Новинка! Сохраняйте вопросы или ответы и организуйте свой любимый контент.
Узнать больше.
Элементы дескриптора развертывания web.xml в документации Oracle BEA WebLogic Server 8.1 в значительной степени суммируют каждый элемент в файле web.xml. Но меня также интересуют пункты ниже:
- Есть ли какой-либо параметр конфигурации, которого следует избегать как чумы?
- Любые параметры, связанные с производительностью или использованием памяти?
- Риск, связанный с безопасностью, из-за неправильной конфигурации?
Что еще я должен знать о web.xml, кроме имен элементов и их использования?
- веб-приложения
- web.xml
Что такое файл web.xml и что с ним можно делать?
Файл /WEB-INF/web.xml — это дескриптор развертывания веб-приложения вашего приложения. Этот файл представляет собой XML-документ, который определяет все о вашем приложении, которое необходимо знать серверу (кроме контекстного пути, который назначается Application Deployer и администратором при развертывании приложения): сервлеты и другие компоненты, такие как фильтры или прослушиватели. , параметры инициализации, ограничения безопасности, управляемые контейнером, ресурсы, страницы приветствия и т. д.
Обратите внимание, что указанная вами ссылка довольно старая (Java EE 1.4), в Java EE 5 было внесено несколько изменений и даже больше в Java EE 6 (что делает web.xml
«необязательным» и вводит веб-фрагменты).
Есть ли какой-либо параметр конфигурации, которого следует избегать как чумы?
№
Любые параметры, связанные с производительностью или использованием памяти?
Нет, такие вещи настраиваются не на уровне приложения, а на уровне контейнера.
Риск, связанный с безопасностью, из-за неправильной конфигурации ?
Ну, если вы хотите использовать ограничения безопасности, управляемые контейнером, и не можете правильно их настроить, ресурсы, очевидно, не будут должным образом защищены. Кроме того, самые большие риски безопасности исходят от кода, который вы будете развертывать, IMO.
0
Что я должен знать о web.xml кроме имени элемента и его Применение ?
ЕДИНСТВЕННЫЙ самый важный параметр конфигурации JSP ВСЕ ВРЕМЯ находится в вашем файле web.xml. Дамы и господа, я даю вам… вариант TRIM-DIRECTIVE-WHITESPACES !
*.jsp true
Это удаляет все сотни или тысячи строк пробелов, которые вы получите в сгенерированном HTML, если будете использовать какие-либо библиотеки тегов (циклы особенно уродливы и расточительны).
Другая большая — это веб-страница по умолчанию (страница, на которую вы автоматически перенаправляетесь, если не вводите веб-страницу в URL):
index.jsp приветственный-список-файлов>
- Нет, нет ничего, чего следует избегать
- Параметры, связанные с производительностью, отсутствуют в
web. xml
они находятся в файлах конфигурации контейнера сервлетов (server.xml
на tomcat) Нет. Но сервлет по умолчанию (сопоставленный в файле web.xml в обычном месте контейнера сервлетов) предпочтительно должен отключать списки файлов (чтобы пользователи не видели содержимое ваших веб-папок):
списки истинный
Я тоже пытаюсь понять, как это работает. Этот сайт может быть вам полезен. В нем есть все возможные теги для web.xml, а также примеры и описания каждого тега.
http://wiki.metawerx.net/wiki/Web.xml
2
При использовании Struts мы отключаем прямой доступ к файлам JSP с помощью этого тега в web.xml
<коллекция веб-ресурсов> <имя-веб-ресурса>нет_доступаимя-веб-ресурса> *.jsp веб-ресурс-коллекция> <ограничение авторизации/>
Файл дескриптора развертывания «web. xml»: благодаря правильному использованию файл дескриптора развертывания, web.xml, вы можете управлять многими аспектами поведение веб-приложения, от предварительной загрузки сервлетов до ограничения доступ к ресурсам, для контроля времени ожидания сеанса.
web.xml : используется для управления многими аспектами веб-приложения. Используя web.xml, вы можете назначать пользовательские URL-адреса для вызова сервлетов, указывать инициализацию параметры для всего приложения, а также для отдельных сервлетов, управление тайм-ауты сеанса, объявить фильтры, объявить роли безопасности, ограничить доступ к сети ресурсы на основе объявленных ролей безопасности и т.д.
http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd» версия = «3.0»>
<сервлет>mvc-dispatcher org.springframework.web.servlet.DispatcherServlet <загрузка при запуске>1загрузка при запуске> сервлет> <отображение сервлета>mvc-dispatcher / сервлет-отображение> <параметр контекста>contextConfigLocation /WEB-INF/mvc-dispatcher-servlet. xml контекст-парам> <слушатель>org.springframework.web.context.ContextLoaderListener слушатель> <список-приветственных-файлов>index.jsp приветственный-список-файлов>
<веб-приложение xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:web="http ://java.sun.com/xml/ns/javaee" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee /веб-приложение_3_0.xsd" версия="3.0"> <сервлет>mvc-dispatcher org.springframework.web.servlet.DispatcherServlet <загрузка при запуске>1загрузка при запуске> сервлет> <сервлет> <описание>описание> <отображаемое имя>pdfServletотображаемое имя>pdfServlet com.sapta.smartcam.servlet.pdfServlet сервлет> <отображение сервлета>mvc-dispatcher / сервлет-отображение> <отображение сервлета>pdfServlet /pdfServlet сервлет-отображение> <параметр контекста>contextConfigLocation /WEB-INF/mvc-dispatcher-servlet.