WikiDer > WAR (формат файла)
Расширение имени файла | .война |
---|---|
Магическое число | ПК x03 x04 (стандартный ZIP-файл) |
Разработан | Sun Microsystems |
Контейнер для | JSP, Сервлет Java |
Расширен с | БАНКА |
В программная инженерия, а ВОЙНА файл (Web Априменение ристочник[1] или Wприложение eb ARчеснок[2]) - это файл, используемый для распространения коллекции БАНКА-файлы, JavaServer Pages, Сервлеты Java, Ява классы, XML файлы, библиотеки тегов, статические веб-страницы (HTML и связанные файлы) и другие ресурсы, которые вместе составляют веб приложение.
Содержание и структура
Файл WAR может быть с цифровой подписью так же, как БАНКА файл, чтобы другие могли определить, откуда взялся исходный код.
В файле 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"?>Веб-приложение PUBLIC "- // Sun Microsystems, Inc.//DTD Web Application 2.2 // RU" "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>почта / сессия</res-ref-name> <res-type>javax.mail.Session</res-type> <res-auth>Контейнер</res-auth> </resource-ref></web-app>
В / WEB-INF / классы
каталог находится на ClassLoaderс путь к классам. (Путь к классам состоит из списка мест, из которых .учебный класс
файлы могут быть загружены и выполнены JVM.) / WEB-INF / классы
Каталог содержит классы, связанные с самим веб-приложением.
Любые файлы JAR, помещенные в / WEB-INF / lib
Каталог также будет помещен в путь к классам ClassLoader.
Смотрите также
Рекомендации
- ^ Кроссли, Аллистэр. «Apache Tomcat 8 (8.0.44) - Развертывание веб-приложения Tomcat». Фонд программного обеспечения Apache. Получено 2017-06-27.
- ^ Хантер, Джейсон (1999-10-15). "Что нового в Java Servlet API 2.2?". JavaWorld. Получено 2020-11-08.
- ^ «Жизненный цикл веб-приложения». Учебное пособие по Java EE 6. Oracle.
- ^ «Развертывание на работающем сервере Tomcat». Фонд программного обеспечения Apache.
внешняя ссылка
- Упаковка веб-архивов (Учебное пособие по Jakarta EE 8)
- JSR 154: Спецификация JavaTM Servlet 2.4