Web 專案有兩種類型:動態和靜態。動態 Web 專案除了可以包含圖檔和 HTML 檔之外的靜態資源之外,
還可以包含動態 J2EE 資源,如:Servlet、JSP 檔、過濾器和相關聯的中繼資料。靜態 Web 專案只包含靜態資源。當您建立 Web 專案時,
您可以併入階式樣式表和 JSP 標示庫(適用於動態 Web 專案),使您開始開發時即具備一組豐富的專案資源。
動態 Web 專案一律內含在「企業應用程式」專案中。
您用來建立動態 Web 專案的精靈也會建立「企業應用程式」(EAR) 專案(如果不存在)。該精靈也會更新指定「企業應用程式」專案的 application.xml 部署描述子,
來將 Web 專案定義成模組元素。如果您是要匯入 WAR 檔而非建立新的動態 Web 專案,
「匯入 WAR」精靈需要您指定 Web 專案,而該 Web 專案需要有 EAR 專案。
如果您只要建立靜態、內容型 Web 應用程式(其中不含 JSP 檔或 Servlet 之類的動態檔案),
則 J2EE 慣例可能會產生額外的負荷。在這個情況下,當您只需要最基本的 Web 專案時,
您可能要使用靜態 Web 專案類型(請參閱靜態 Web 專案)。請注意,您可以從「專案」功能表中選取轉換成動態 Web 專案,
將靜態 Web 專案轉換成動態 Web 專案。
J2EE 模型(更明確地說是 Sun Microsystems Java™ Servlet
2.3 規格)會定義 Web 應用程式目錄結構來指定 Web 內容檔、類別檔、類別路徑、部署描述子和支援之中繼資料的位置。Web 專案階層會鏡映從專案建立的 Web 應用程式。在工作台中,您可以使用新建 Web 專案精靈來建立新的 Web 專案。
主要的專案資料夾包含與 Web 應用程式相關的所有開發物件。Web 內容資料夾則包含建立 Web 應用程式所需的專案元素。這個資料夾結構會對映至 Sun Microsystems. 所定義的 Web 應用程式保存檔 (WAR) 結構。下列預設元素位於 Web 專案資料夾階層中:
註: 在「專案瀏覽器」視圖中,Web 專案會過濾成資料夾節點來自訂 Web 資源的顯示畫面,
以便在開發期間易於管理。如需過濾後結構的相關資訊,
請參閱
「專案瀏覽器」視圖。
- Web 部署描述子
- 標準 Web 應用程式部署描述子(web.xml 檔)。
- JavaSource
- 包含專案的類別、Bean 和 Servlet 的 Java 程式碼。當這些資源加入 Web 專案時,其會被自動編譯,且產生的檔案會加入 WEB-INF/classes 目錄中。
除非在建立 WAR 檔時指定了選項,
否則來源目錄的內容不會套裝到 WAR 檔中。
註: 雖然提供給資料夾的預設名稱是 JavaSources,
但是您可以在「專案瀏覽器」中用滑鼠右鍵按一下該名稱,然後按一下來變更該名稱。
- imported_classes 資料夾
- 這個資料夾可能會在 WAR 匯入期間建立,且其中包含的類別檔不附任何程式碼。imported_classes 資料夾是個 Java 類別資料夾;您也可以使用 Web 專案的 Java 建置路徑內容頁來建立 Java 類別資料夾。
- WebContent 資料夾
- 所有 Web 資源的主要位置,包括 HTML、JSP 及圖形檔等等。當應用程式在伺服器上執行時,
如果檔案不在這個目錄中(或是在這個目錄下的子目錄結構中),將無法使用這些檔案。Web 內容資料夾
表示將部署到伺服器的 WAR 檔內容。當專案進行單元測試或發佈時,
不存於 Web 內容資料夾下的任何檔案會視作開發時期資源
(例如:.java 檔、.sql 檔和 .mif 檔);且不會部署這些檔案。
註: 雖然提供給資料夾的預設名稱是 WebContent,
但是您可以在「專案瀏覽器」中用滑鼠右鍵按一下該資料夾,然後選取重構重新命名,
或從專案之「內容」對話框的網頁來變更名稱。在動態 Web 專案中,變更資料夾名稱會更新 Java 建置輸出目錄。
- META-INF
- 這個目錄包含 MANIFEST.MF 檔,
其會用來對映同一「企業應用程式」專案中,其他專案內存在之相依 JAR 檔的類別路徑。這個檔案中的項目會更新執行時期專案類別路徑和 Java 建置設定,以併入所參照的 JAR 檔。
- 佈景主題
- 建議用於階式樣式表和其他樣式相關物件的目錄。
- WEB-INF
- 根據 Sun Microsystems Java Servlet 2.3 規格,這個目錄包含 Web 應用程式支援的 Web 資源,
包括 web.xml 檔以及 classes 與 lib 目錄。
- /classes
- 這個目錄係用於 Servlet、公用程式類別和 Java 編譯器輸出目錄。應用程式類別載入器會使用這個目錄中的類別來載入類別。這個目錄中的資料夾會對映套件和類別名稱,
如以下所示:/WEB-INF/classes/com/mycorp/servlets/MyServlet.class。
請不要將任何 .class 檔直接放在這個目錄中。當 Java 編譯器編譯 Java Resources 目錄下的 Java 程式檔時,
.class 檔會自動放到這個目錄中。
當執行 Java 編譯器時,將會刪除任何直接放在這個目錄下的檔案。
- /lib
- Web 應用程式參照的支援 JAR 檔。Web 應用程式可使用放在這個目錄下之 .jar 檔中的任何類別。
- 程式庫
- Web 應用程式參照的支援 JAR 檔。這個資料夾會鏡映 lib 資料夾的內容。此外,這個資料夾中也含有「Web 程式庫專案」,
這些是「虛擬」的 JAR 檔,其實際上不位於 Web 專案中,
但是與工作區中其他位置的 Java 專案相關聯。當您匯出應用程式的 WAR 檔時,
這些檔案會與專案套裝在一起。
註: Java 建置路徑中的 library 項目會保留,
除非實際的 JAR 檔已從 WEB-INF/lib 資料夾中刪除。如果您移除了 library 路徑項目但未移除 JAR 檔,該 library 項目會自動重新加入路徑中。