ВОЙНА (формат файла)
Расширение имени файла |
.война |
---|---|
Тип интернет-СМИ | приложение/java-архив |
Магическое число | PK\x03\x04 (стандартный ZIP-файл) |
Разработано | Сан Микросистемс |
Контейнер для | JSP , Java-сервлет |
Расширено с | БАНКА |
В разработке программного обеспечения файл WAR ( веб ) - приложения . ресурс [ 1 ] или веб -приложение AR chive [ 2 ] ) — файл, используемый для распространения коллекции JAR -файлов, страниц JavaServer , 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 web-app
PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application 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>
Resource reference to a factory for javax.mail.Session
instances that may be used for sending electronic mail messages,
preconfigured to connect to the appropriate SMTP server.
</description>
<res-ref-name>mail/Session</res-ref-name>
<res-type>javax.mail.Session</res-type>
<res-auth>Container</res-auth>
</resource-ref>
</web-app>
The /WEB-INF/classes
Каталог находится в ClassLoader классам пути к . (Путь к классам состоит из списка мест, из которых .class
файлы могут быть загружены и выполнены JVM.) /WEB-INF/classes
Каталог содержит классы, связанные с самим веб-приложением.
Любые файлы JAR, помещенные в /WEB-INF/lib
Каталог также будет помещен в путь к классам ClassLoader.
См. также
[ редактировать ]Ссылки
[ редактировать ]- ^ Кроссли, Аллистер. «Apache Tomcat 8 (8.0.44) — развертывание веб-приложения Tomcat» . Фонд программного обеспечения Apache . Проверено 27 июня 2017 г.
- ^ Хантер, Джейсон (15 октября 1999 г.). «Что нового в API сервлетов Java 2.2?» . JavaWorld . Проверено 8 ноября 2020 г.
- ^ «Жизненный цикл веб-приложения» . Учебное пособие по Java EE 6 . Оракул .
- ^ «Развертывание на работающем сервере Tomcat» . Фонд программного обеспечения Apache .
Внешние ссылки
[ редактировать ]- Веб-архивы упаковки , заархивированные 6 ноября 2020 г. на Wayback Machine (учебное пособие по Jakarta EE 8).
- JSR 154: Спецификация сервлета JavaTM 2.4