Из Википедии, свободной энциклопедии
Перейти к навигации Перейти к поиску

В программной инженерии , WAR файл ( W ЕВ РИМЕНЕНИЕ R esource [1] или W ЕВ приложение AR зубчик [2] ) представляет собой файл , используемый для распространения коллекции JAR -Files, JavaServer Pages , Java сервлеты , Java классы , XML файлы, библиотеки тегов, статические веб-страницы ( HTML и связанные файлы) и другие ресурсы, которые вместе составляют веб-приложение .

Содержание и структура [ править ]

Файл WAR может иметь цифровую подпись так же, как файл JAR , чтобы другие пользователи могли определить, откуда пришел исходный код.

В файле WAR есть специальные файлы и каталоги:

  • Каталог / WEB-INF в файле WAR содержит файл с именем web.xml, который определяет структуру веб-приложения. Если веб-приложение обслуживает только файлы JSP, файл web.xml не является строго необходимым. Если использует веб - приложений сервлеты, то сервлет контейнер использует web.xml , чтобы определить , в котором сервлет URL запрос будет направлен. Файл web.xml также используется для определения переменных контекста, на которые можно ссылаться в сервлетах, и он используется для определения зависимостей среды, которые, как ожидается, установит разработчик. Примером этого является зависимость от почтового сеанса, используемого для отправки электронной почты. Контейнер сервлета отвечает за предоставление этой услуги.

Преимущества файлов WAR [ править ]

  • Простое тестирование и развертывание веб-приложений
  • Легкое определение версии развернутого приложения
  • Все контейнеры Java EE поддерживают файлы WAR.
  • Структура MVC поддерживает файлы WAR.

Предполагая, что производственная среда не продвигает исправление без достаточного тестирования перед развертыванием, файл WAR имеет явное преимущество, когда файлы свойств используются для идентификации переменных среды. Например, сервер LDAP в тестовой среде может быть чем-то вроде ldaps://testauth.example.com:636. Сервер LDAP в производственной среде - это ldaps://auth.example.com:636. Файл внешних свойств будет определять ссылку с помощью чего-то вроде:

LINKED_PAGE = ldaps: //testauth.example.com: 636

Исходный код считывает файл свойств, чтобы определить целевой сервер LDAP. Таким образом, разработчики могут быть уверены, что протестированный и проверенный файл WAR точно такой же, как и тот, который продвигается в рабочую среду.

Недостатки файлов WAR [ править ]

Некоторые считают веб-развертывание с использованием файлов WAR невыгодным, когда для динамических сред требуются незначительные изменения исходного кода. Каждое изменение исходного кода необходимо переупаковывать и развертывать в процессе разработки. [3] Это не требует остановки веб-сервера, если он настроен для развертывания во время выполнения. [4]

Пример [ править ]

Следующий пример файла web.xml демонстрирует объявление и ассоциацию сервлета :

<? xml version = "1.0" encoding = "UTF-8"?> <! Веб-приложение DOCTYPE  PUBLIC "- // Sun Microsystems, Inc. // Веб-приложение DTD 2.2 // EN"  "http: // java. sun.com/j2ee/dtds/web-app_2_2.dtd "><web-app>  <servlet>  <servlet-name> HelloServlet </servlet-name>  <servlet-class> mypackage.HelloServlet </servlet-class>  </servlet> <servlet-mapping>  <servlet-name> HelloServlet </servlet-name>  <url-pattern> / HelloServlet </url-pattern>  </servlet-mapping> <resource-ref>  <description> Ссылка на ресурс фабрики для javax.mail.Session экземпляры, которые могут использоваться для отправки сообщений электронной почты, предварительно настроен для подключения к соответствующему SMTP-серверу. </description>  <res-ref-name> mail / Session </res-ref-name>  <res-type> javax.mail.Session </res-type>  <res-auth> Контейнер </res-auth>  </resource-ref> </web-app>

/WEB-INF/classesКаталог на ClassLoader «s классов . (Путь к классам состоит из списка мест, из которых .classфайлы могут быть загружены и выполнены JVM.) /WEB-INF/classesКаталог содержит классы, связанные с самим веб-приложением.

Любые файлы JAR, помещенные в /WEB-INF/libкаталог, также будут помещены в путь к классам ClassLoader.

См. Также [ править ]

  • EAR (формат файла)
  • JAR (формат файла)

Ссылки [ править ]

  1. ^ Crossley, Allistair. «Apache Tomcat 8 (8.0.44) - Развертывание веб-приложений Tomcat» . Фонд программного обеспечения Apache . Проверено 27 июня 2017 .
  2. ^ Хантер, Джейсон (1999-10-15). "Что нового в Java Servlet API 2.2?" . JavaWorld . Проверено 8 ноября 2020 .
  3. ^ «Жизненный цикл веб-приложения» . Учебное пособие по Java EE 6 . Oracle .
  4. ^ «Развертывание на работающем сервере Tomcat» . Фонд программного обеспечения Apache .

Внешние ссылки [ править ]

  • Упаковка веб-архивов (Учебное пособие по Jakarta EE 8)
  • JSR 154: Спецификация JavaTM Servlet 2.4