WAR (文件格式)
在軟件工程中,WAR文件(Web應用程序歸檔,英語:Web application ARchive[1])是一種JAR文件,其中包含用來分發的JSP、Java Servlet、Java類、XML文件、標籤庫、靜態網頁(HTML和相關文件),以及構成Web應用程序的其他資源。
副檔名 |
.war |
---|---|
網路媒體型式 | application/java-archive |
開發者 | 昇陽電腦 |
作為容器 | JSP, Java Servlet |
延伸自 | JAR |
內容和結構
一個WAR文件可能會以與JAR文件相同的方式進行數字簽名,以便他人確定哪些源代碼來自哪一個JAR文件。
而WAR文件也有其特殊的文件和目錄。如果Web應用程序使用的servlet,則Servlet容器會使用web.xml文件,以確定某個URL請求將被路由到哪個Servlet上。web.xml還用於定義Servlet中可以引用的上下文變量,以及部署器所需配置的環境依賴關係。例如,一個依賴於郵件會話、用於發送電子郵件的程序,而Servlet容器負責提供這項服務。這就需要在web.xml進行一些配置。
優缺點
WAR文件有如下優點:
- 易於部署和測試
- 已部署的應用程序,其版本很容易辨別
- 所有的Java EE容器都支持.WAR文件
使用WAR文件進行Web部署的一個缺點是,即便是細微的修改,也不能在程序運行時進行。任何修改都需要重新生成和部署整個WAR文件。
示例
下面的示例web.xml文件,演示了一個Servlet是怎樣被聲明和被關聯的。
<?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>
資源引用到一個可被用於發送電子郵件的javax.mail.Session的實例工廠。
</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>
參見
相關的文件格式有:
參考文獻
- ^ What's New in Java Servlet API 2.2?. JavaWorld(Oracle轉載). 1999-10 [2014-08-26]. (原始內容存檔於2017-10-18).