WAR (檔案格式)

軟件工程中,WAR檔案(Web應用程式歸檔,英語:Web application ARchive[1])是一種JAR檔案,其中包含用來分發的JSPJava ServletJava類、XML檔案、標籤庫、靜態網頁(HTML和相關檔案),以及構成Web應用程式的其他資源。

Web ARchive
副檔名
.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>

參見

相關的檔案格式有:

參考文獻

  1. ^ What's New in Java Servlet API 2.2?. JavaWorld(Oracle轉載). 1999-10 [2014-08-26]. (原始內容存檔於2017-10-18). 

外部連結