Курс JSP & Servlets — Лекция: Структура web.xml
JSP & Servlets
11 уровень , 6 лекция
Открыта
7.1 Общая схема web.xml
Файл web.xml хранит информацию о конфигурации приложения. Он не является обязательной его частью, однако очень широко используется для настройки конфигурации веб-приложения.
Этот файл должен располагаться в папке WEB-INF. При запуске Tomcat считывает его содержимое и использует записанную в нем конфигурацию. Если же файл содержит ошибки, то и Tomcat отображает ошибку.
Пример web.xml:
<?xml version="1.0" encoding="UTF-8"?> <web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_4_0.xsd" version="4.0"> <servlet> <servlet-name>HelloWorld</servlet-name> <servlet-class>HelloServlet</servlet-class> </servlet> <servlet-mapping> <servlet-name>HelloWorld</servlet-name> <url-pattern>/welcome</url-pattern> </servlet-mapping> <welcome-file-list> <welcome-file>index.html</welcome-file> </welcome-file-list> </web-app>
Зеленым цветом тут записан маппинг имя сервлета "HelloWorld"
и класса сервлета "HelloServlet"
. Синим цветом записан маппинг имя сервлета "HelloWorld"
и куска URL "http://localhost/welcome"
. Таким образом тут написано, что при обращении к пути /welcome нужно вызвать сервлет HelloServlet.class
.
Красным цветом указан файл, который нужно отдать по запросу
— это так называемая welcome page. Если пользователь просто вобьет в браузере имя, соответствующее корню нашего веб-приложения, то ему отдается содержимое файла index.html
.
7.2 servlet, servlet-mapping
Один сервлет может обслуживать запросы по разным урлам, поэтому в web-xml сервлет и его маппинг на урлы записываются отдельно. Сначала описываем сервлеты, давая каждому уникальное строковое имя, а затем уже указываем, как каждый сервлет мапится на какой url.
Пример web.xml:
<web-app> <servlet> <servlet-name>remoting</servlet-name> <servlet-class>com.javarush.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.javarush.RestApiServlet</servlet-class> <load-on-startup>2</load-on-startup> </servlet> <servlet-mapping> <servlet-name>restapi</servlet-name> <url-pattern>/api/*</url-pattern> </servlet-mapping> </web-app>
В этом примере объявлено два сервлета, и каждый замаплен на свой шаблон url. Сервлет RemotingServlet
обслуживает все запросы, которые идут на /remoting/*
. Сервлет RestApiServlet
обслуживает все запросы, которые идут на /api/*
. Так же у сервлетов прописан порядок из загрузки — параметр load-on-startup.
7.3 Параметры сервлета
С помощью web.xml сервлету при его инициализации можно передать параметры, они будут доступны через интерфейс ServletConfig
. Также можно задать параметры всему веб-приложению, они будут доступны через интерфейс
.
Пример web.xml:
<web-app> <context-param> <description>Server 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:local-app.properties classpath:web-app.properties </param-value> </context-param> <servlet> <servlet-name>mainservlet</servlet-name> <servlet-class>com.javarush.ApplicationServlet</servlet-class> <init-param> <param-name>application</param-name> <param-value>com.javarush.App</param-value> </init-param> <init-param> <param-name>widgetset</param-name> <param-value>com.javarush.WidgetSet</param-value> </init-param> <init-param> <param-name>ui</param-name> <param-value>com.javarush.AppUI</param-value> </init-param> </servlet> </web-app>
Зеленым цветом выделен код, где мы задаем параметры для
. Их там два:
productionMode
со значением falseappPropertiesConfig
с массивом из двух строк:classpath:local-app.properties
classpath:web-app.properties
Синим цветом указаны параметры для сервлета ApplicationServlet
, они будут доступны ему через ServletConfig
:
application
со значением com. javarush.Appwidgetset
со значением com.javarush.WidgetSetui
со значением com.javarush.AppUI
7.4 filter, filter-mapping
Веб-приложение может также содержать специальные служебные сервлеты — фильтры
. Они выполняют различные служебные задачи: перенаправляют вызовы, проверяют авторизацию и т. д.
Пример web.xml:
<web-app> <servlet> <servlet-name>remoting</servlet-name> <servlet-class>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> <filter> <filter-name>total_filter</filter-name> <filter-class>com.javrush.TotalFilter</filter-class> </filter> <filter-mapping> <filter-name>total_filter</filter-name> <url-pattern>/*</url-pattern> </filter-mapping> </web-app>
Прежде чем запрос попадет в сервлет RemotingServlet
, он будет обработан фильтром TotalFiler
. Этот фильтр настроен так, чтобы перехватывать все запросы, которые идут к нашему веб-приложению. Об это однозначно намекает шаблон урлов, на которые он замаплен:
.
Больше про сервлеты и фильтры ты прочитаешь в следующих лекциях.
Настройка и описание 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. xml определяет соответствие между путями URL и сервлетами, которые эти URL будут обрабатывать. Веб-сервер использует эту конфигурацию, чтоб определить сервлет для обработки данного запроса и вызвать метод класса, который соответствует методу запроса (например метод doGet() для HTTP.GET запросов).
Для привязки («маппинг») 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. 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>
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>*. abc</url-pattern> </servlet-mapping>
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 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://host:port/mywebapp/fruit/summer/index. html | watermelon |
http://host:port/mywebapp/fruit/summer/index.abc | watermelon |
http://host:port/mywebapp/seedlist | list |
http://host:port/mywebapp/seedlist/index.html | Сервлет по умолчанию (если сконфигурирован), или HTTP 404 File Not Found error message. Если маппинг сервлетаlist соответствует /seedlist* , то будет вызван сервлет list |
http://host:port/mywebapp/seedlist/pear.abc | kiwi Если маппинг сервлета list соответствует /seedlist* , то будет вызван сервлет list |
http://host:port/mywebapp/seeds | garden |
http://host:port/mywebapp/seeds/index. html | garden |
http://host:port/mywebapp/index.abc | kiwi |
Настройка атрибута <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
2123491 Total Views 3 Views Today
Views: 20 675
java — Почему мы используем web.xml?
спросил
Изменено 3 года, 5 месяцев назад
Просмотрено 119 тысяч раз
Для чего нужен файл web. xml и почему мы его используем?
<фильтр>wicket.mysticpaste org.apache.wicket.protocol.http.WicketFilter <параметр инициализации>applicationClassName com.mysticcoders.WicketApplication фильтр> <фильтр-отображение>wicket.mysticpaste /* фильтр-отображение>
Что делает этот фильтр и сопоставление файлов?
- Java
- сервлеты
- jakarta-ee
- web.xml
Вообще говоря, это файл конфигурации веб-приложений в 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-запросу, отправляемому в это веб-приложение.
2Web. xml называется файлом дескриптора развертывания и представляет собой XML-файл, содержащий информацию о конфигурации веб-приложения, включая конфигурацию сервлетов.
веб-приложений. Что такое файл web.xml и что с ним можно делать?
спросил
Изменено 5 лет, 8 месяцев назад
Просмотрено 132к раз
Элементы дескриптора развертывания 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.xml контекст-парам> <слушатель>org.springframework.