Расширение имени файла | .война |
---|---|
Тип интернет-СМИ | приложение / java-архив |
Магическое число | PK\x03\x04 (стандартный ZIP-файл) |
Разработан | Sun Microsystems |
Контейнер для | JSP , сервлет Java |
Расширен с | БАНКА |
В программной инженерии , 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 (формат файла)
Ссылки [ править ]
- ^ Crossley, Allistair. «Apache Tomcat 8 (8.0.44) - Развертывание веб-приложений Tomcat» . Фонд программного обеспечения Apache . Проверено 27 июня 2017 .
- ^ Хантер, Джейсон (1999-10-15). "Что нового в Java Servlet API 2.2?" . JavaWorld . Проверено 8 ноября 2020 .
- ^ «Жизненный цикл веб-приложения» . Учебное пособие по Java EE 6 . Oracle .
- ^ «Развертывание на работающем сервере Tomcat» . Фонд программного обеспечения Apache .
Внешние ссылки [ править ]
- Упаковка веб-архивов (Учебное пособие по Jakarta EE 8)
- JSR 154: Спецификация JavaTM Servlet 2.4