war文件設備

All lectures for TW purposes
等級 1, 課堂 995
開放

戰爭文件結構

每個 Web 應用程序在上傳到 Web 服務器時都被打包到一個 .war 文件中。WAR 現在代表 Web Application Resources,儘管它以前是 Web ARchive。事實上,這是一個包含打包 Web 應用程序的 zip 存檔。

war 文件的典型內容如下所示:

/index.html /guestbook.jsp /images/logo.png /js/jquery.js
/WEB-INF/web.xml
/WEB-INF/classes/com/codegym/Util.class /WEB-INF/classes/com/codegym/MainServlet.class /WEB-INF/classes/application.properties /WEB-INF/lib/util.jar
/META-INF/MANIFEST.MF

war文件裡面是.html、.css、.js文件等靜態web資源。也可以有圖片、視頻和一般的任何文件。它們可以位於根目錄或子文件夾中,這無關緊要。如果需要,Tomcat 將簡單地提供它們。

假設您的 Web 應用程序以名稱 apple 加載到 Web 服務器上,然後當請求http://localhost/apple/images/logo.png時,Tomcat 將返回文件/images/logo.png。

另外,值得注意的是WEB-INF 文件夾。它旨在將 Java 代碼存儲在其中。Tomcat不會給出其內容。

/WEB-INF/類/ 已編譯的非 JAR Java 類的目錄,包括運行應用程序之前加載器所需的 servlet 類和資源文件
/WEB-INF/lib/ 存放jar庫的地方
/WEB-INF/web.xml 部署描述符

war文件結構和maven項目

現在讓我們轉到 Maven 項目的目錄層次結構。您可以在官方手冊中看到完整的目錄佈局。在這裡,我們將以略微簡化的版本熟悉它,不包括測試資源。因此,標準的 Maven 目錄層次結構如下所示:

源碼/主/java 根據普遍接受的包層次結構的應用程序類和庫的源代碼
源代碼/主要/資源 應用程序資源文件:數據庫設置、本地化文件等。
源代碼/主/網絡應用程序 Web 應用程序資源(JSP 文件、文本文件、腳本等)

如您所見,它與您所知道的 WAR 文件的結構有很大不同。但編譯 Web 應用程序時實際發生的只是將文件移動和連接到 Java EE 規範中定義的結構中。

src/main/webapp目錄定義了 Web 應用程序的上下文根(當部署到服務器時,上下文根與 WAR 文件的名稱相同)並且其中已經包含 WEB-INF 目錄。即src/main/webapp的內容全部轉移到 web application 中。

您所有的 Java 類都被編譯成類文件,並在保持其包結構的情況下被移動到/WEB-INF/classes/目錄中。我們上面定義的 Maven pom.xml 依賴項中定義的包含庫的 JAR 被移動到/WEB-INF/lib/目錄。

應用程序資源src/main/resources被移動到應用程序的類路徑,特別是相同的/WEB-INF/classes/目錄。

為了完全清楚,請查看此圖,這將幫助您了解構建項目時的方式和內容:

war文件設備
留言
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION