Курс 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.

Красным цветом указан файл, который нужно отдать по запросу

http://localhost/ — это так называемая 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. Также можно задать параметры всему веб-приложению, они будут доступны через интерфейс

ServletContext.

Пример 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>

Зеленым цветом выделен код, где мы задаем параметры для

ServletContext. Их там два:

  • productionMode со значением false
  • appPropertiesConfig с массивом из двух строк:
    • classpath:local-app.properties
    • classpath:web-app.properties

Синим цветом указаны параметры для сервлета ApplicationServlet, они будут доступны ему через ServletConfig:

  • application со значением com. javarush.App
  • widgetset со значением com.javarush.WidgetSet
  • ui со значением 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>

Сервлеты и пути URL

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
Invoked

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>

Как это будет работать?

Когда кто-либо переходит на сайт, то происходит следующее

  1. http://yoursite.com превращается в http://yoursite.com/
  2. Сервер не находит ничего полезного для отображения и должен вывести ошибку, но у нас настроен welcome-file-list, значит, как описано выше сначала должен быть обработан этот атрибут.
  3. http://yoursite.com/ — это уже директория и начинается сканирование по welcome-file-list
  4. 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

23491 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
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 лет, 8 месяцев назад

Просмотрено 132к раз

Элементы дескриптора развертывания web.xml в документации Oracle BEA WebLogic Server 8.1 в значительной степени суммируют каждый элемент в файле web.xml. Но мне также любопытны пункты ниже:

  1. Есть ли какой-либо параметр конфигурации, которого следует избегать как чумы?
  2. Любые параметры, связанные с производительностью или использованием памяти?
  3. Риск, связанный с безопасностью, из-за неправильной конфигурации?

Что еще я должен знать о 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

 
  1. Нет, нет ничего, чего следует избегать
  2. Параметры, связанные с производительностью, отсутствуют в web.xml они находятся в файлах конфигурации контейнера сервлетов ( server.xml на tomcat)
  3. Нет. Но сервлет по умолчанию (сопоставленный в файле 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.