<p>在軟體工程中，<b>WAR檔案</b>（Web應用程式歸檔，英語：<span lang="en"><b>W</b>eb application <b>AR</b>chive</span>）是一種JAR檔案，其中包含用來分發的JSP、Java Servlet、Java類、XML檔案、標籤庫、靜態網頁（HTML和相關檔案），以及構成Web應用程式的其他資源。
</p>


<h2><span id=".E5.86.85.E5.AE.B9.E5.92.8C.E7.BB.93.E6.9E.84"></span><span id="内容和结构">內容和結構</span></h2>
<p>一個WAR檔案可能會以與JAR檔案相同的方式進行數位簽章，以便他人確定哪些原始碼來自哪一個JAR檔案。
</p><p>而WAR檔案也有其特殊的檔案和目錄。如果Web應用程式使用的servlet，則Servlet容器會使用web.xml檔案，以確定某個URL請求將被路由到哪個Servlet上。web.xml還用於定義Servlet中可以參照的上下文變數，以及部署器所需組態的環境依賴關係。例如，一個依賴於郵件對談、用於傳送電子郵件的程式，而Servlet容器負責提供這項服務。這就需要在web.xml進行一些組態。
</p>
<h2><span id=".E4.BC.98.E7.BC.BA.E7.82.B9"></span><span id="优缺点">優缺點</span></h2>
<p>WAR檔案有如下優點：
</p>
<ul><li>易於部署和測試</li>
<li>已部署的應用程式，其版本很容易辨別</li>
<li>所有的Java EE容器都支援.WAR檔案</li></ul><p>使用WAR檔案進行Web部署的一個缺點是，即便是細微的修改，也不能在程式執行時進行。任何修改都需要重新生成和部署整個WAR檔案。
</p>
<h2><span id=".E7.A4.BA.E4.BE.8B"></span><span id="示例">範例</span></h2>
<p>下面的範例web.xml檔案，演示了一個Servlet是怎樣被聲明和被關聯的。
</p>
 
<h2><span id=".E5.8F.82.E8.A7.81"></span><span id="参见">參見</span></h2>
<p>相關的檔案格式有：
</p>
<ul><li><span data-orig-title="EAR" data-lang-code="en" data-lang-name="英語" data-foreign-title="EAR (file format)"><span>EAR</span></span></li>
<li>JAR</li>
<li>EXE格式</li></ul><h2><span id=".E5.8F.82.E8.80.83.E6.96.87.E7.8C.AE"></span><span id="参考文献">參考文獻</span></h2>

<h2><span id=".E5.A4.96.E9.83.A8.E9.93.BE.E6.8E.A5"></span><span id="外部链接">外部連結</span></h2>
<ul><li>Oracle Java EE 7指南：打包Web文件</li>
<li>Oracle Java EE 6指南：Web模組 （頁面存檔備份，存於網際網路檔案館）</li>
<li>Oracle Java EE 5指南：Web模組 （頁面存檔備份，存於網際網路檔案館）</li>
<li>太陽電腦系統：Servlet 2.5 WAR檔案的XML Schema （頁面存檔備份，存於網際網路檔案館）</li>
<li>太陽電腦系統：Servlet 2.4 WAR檔案的XML Schema （頁面存檔備份，存於網際網路檔案館）</li>
<li>JSR 154：Java Servlet 2.4規範 （頁面存檔備份，存於網際網路檔案館）</li></ul><!-- 
NewPP limit report
Parsed by mw2295
Cached time: 20230505225923
Cache expiry: 1814400
Reduced expiry: false
Complications: [show‐toc]
CPU time usage: 0.277 seconds
Real time usage: 0.434 seconds
Preprocessor visited node count: 473/1000000
Post‐expand include size: 200468/2097152 bytes
Template argument size: 431/2097152 bytes
Highest expansion depth: 7/100
Expensive parser function count: 4/500
Unstrip recursion depth: 0/20
Unstrip post‐expand size: 3683/5000000 bytes
Lua time usage: 0.144/10.000 seconds
Lua memory usage: 17962969/52428800 bytes
Number of Wikibase entities loaded: 0/400
--><!--
Transclusion expansion time report (%,ms,calls,template)
100.00%  334.613      1 -total
 27.52%   92.071      1 Template:Lang-en
 16.63%   55.639      1 Template:NoteTA
 14.28%   47.797      1 Template:Reflist
 13.17%   44.058      1 Template:Cite_web
  6.80%   22.763      1 Template:Infobox_file_format
  5.93%   19.858      1 Template:Infobox
  5.02%   16.791      1 Template:For
  4.71%   15.756      1 Template:Tsl
  0.50%    1.668      5 Template:Wayback
-->
在軟體工程中，**WAR 檔案**（Web 應用程式歸檔，英語：**W**eb application **AR**chive）是一種 JAR 檔案，其中包含用來分發的 JSP、Java Servlet、Java 類、XML 檔案、標籤庫、靜態網頁（HTML 和相關檔案），以及構成 Web 應用程式的其他資源。

## 內容和結構

一個 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 是怎樣被聲明和被關聯的。

## 參見

相關的檔案格式有：

* EAR
* JAR
* EXE 格式

## 參考文獻

## 外部連結

* Oracle Java EE 7 指南：打包 Web 文件
* Oracle Java EE 6 指南：Web 模組 （頁面存檔備份，存於網際網路檔案館）
* Oracle Java EE 5 指南：Web 模組 （頁面存檔備份，存於網際網路檔案館）
* 太陽電腦系統：Servlet 2.5 WAR 檔案的 XML Schema （頁面存檔備份，存於網際網路檔案館）
* 太陽電腦系統：Servlet 2.4 WAR 檔案的 XML Schema （頁面存檔備份，存於網際網路檔案館）
* JSR 154：Java Servlet 2.4 規範 （頁面存檔備份，存於網際網路檔案館）
.war