Расширение имени файла
- 1 year ago
- 0
- 0
Web Archive
или
Web Application Resource
—
формат файла
, описывающий, как полное
веб-приложение
упаковывается в соответствии со спецификацией
Java-сервлетов
в файл в формате
JAR
или
ZIP
.
Такие файлы имеют расширение «
.war
» и поэтому называются ещё «WAR-файлами».
Преимущества WAR-файлов:
Следующий пример показывает структуру Web-Архива .
/index.html /guestbook.jsp /images/logo.png /WEB-INF/web.xml /WEB-INF/classes/org/wikipedia/Util.class /WEB-INF/classes/org/wikipedia/MainServlet.class /WEB-INF/lib/util.jar /META-INF/MANIFEST.MF
Обратите внимание, что в каталоге «
WEB-INF
» находится так называемый
дескриптор развёртывания
(Deployment Descriptor) по имени «
web.xml
», определяющий все сервлеты и другие свойства Web-приложения. Если приложение содержит только JSP-файлы, этот файл не строго обязателен.
Пример дескриптора развёртывания 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>
Каталог /WEB-INF/classes находится в . Эти java-файлы с расширением .class будут загружены, когда веб-приложение загрузится и начнёт выполняться. Любые файлы JAR, находящиеся в каталоге /WEB-INF/lib, также будут помещены в .
Создать WAR-архив можно:
jar cvf archiveName.war .
Все J2EE-контейнеры поддерживают WAR-файлы.
Чтобы веб-контейнер ( веб-сервер ) смог прочитать дескриптор развёртывания и начал перенаправлять запросы на данное приложение, необходимо развернуть (deploy) WAR-файл в контейнер. Одним из вариантов выполнения развёртывания является копирование WAR-файла в autodeploy-каталог веб-контейнера.
WAR может быть подписан электронной цифровой подписью так же, как и JAR-файл, чтобы подтвердить аутентичность кода.
Приложения, установленные из WAR-файлов на один сервер, не могут пользоваться ресурсами друг друга, их выполнение изолировано. Однако они могут пользоваться общими библиотеками сервера (например, у Tomcat они расположены в ${catalina.base}/lib), но такие библиотеки с помощью war-файла установлены быть не могут.