在 Rational® Developer 中,您可以建立及維護 Web 專案內之 Web 應用程式的資源。Web 專案有兩種類型:動態和靜態。除了影像和 HTML 檔之類的靜態資源外,動態 Web 專案還可以包含動態 J2EE 資源,如 Servlet、JSP 檔、過濾器和相關聯的 Meta 資料等。
靜態 Web 專案只含有靜態資源。當您建立 Web 專案時,您可以併入階式樣式表和 JSP 標示庫(供動態 Web 專案使用),以便利用一組更豐富的專案資源來進行開發。
動態 Web 專案一律內嵌在企業應用程式專案中。如果企業應用程式 (EAR) 專案不存在,您用來建立動態 Web 專案的精靈也會建立企業應用程式 (EAR) 專案。
另外,這個精靈也會更新指定的企業應用程式專案的 application.xml 部署描述子,來將 Web 專案定義為模組元素。
如果您是匯入 WAR 檔,而不是建立新的動態 Web 專案,「WAR 匯入」精靈會要求您指定一個 Web 專案,這個專案會需要 EAR 專案。
如果您只要建立不含 JSP 檔或 Servlet 這類動態檔案的靜態內容型 Web 應用程式,J2EE 慣例可能代表額外負荷。
在這個情況下,當您只需要最基本的 Web 專案時,您可以使用靜態 Web 專案類型(請參閱靜態 Web 專案)。請注意,您可以從「專案」功能表中選取轉換成動態 Web 專案,將靜態 Web 專案轉換成動態 Web 專案。
J2EE 模型(更明確地說,就是 Sun Microsystems Java™ Servlet 2.3 規格)定義了一個 Web 應用程式目錄結構,這個結構指定 Web 內容檔的位置、類別檔、類別路徑、部署描述子以及支援的 Meta 資料。
Web 專案階層會鏡映從專案建立的 Web 應用程式的這些位置。在工作台中,您可以利用新建 Web 專案精靈來建立新的 Web 專案。
主專案資料夾中會包含與 Web 應用程式相關的所有開發物件。Web 內容資料夾包含建立 Web 應用程式時所需要的專案元素。這個資料夾結構對映至 Sun Microsystems 所定義的 Web 應用程式保存 (WAR) 結構。
下列預設元素在 Web 專案資料夾階層中:
註: 在「專案瀏覽器」視圖中,Web 專案會被過濾到資料夾節點中,在開發期間自訂用來簡易管理的 Web 資源顯示畫面。
如果需要過濾結構的相關資訊,請參閱
「專案瀏覽器」視圖。
- Web Deployment Descriptor
- 標準 Web 應用程式部署描述子(web.xml 檔)。
- JavaSource
- 含有專案類別、Bean 和 Servlet 的 Java 程式碼。
當這些資源新增至 Web 專案中,它們會自動編譯,產生的檔案會新增至 WEB-INF/classes 目錄中。除非在建立 WAR 檔時,有指定特定的選項,否則,source 目錄的內容並不會套裝在 WAR 檔中。
註: 雖然提供給這個資料夾的預設名稱是 JavaSources,但您可以利用「專案瀏覽器」視圖來變更這個名稱,或選取來利用「喜好設定」頁面變更這個名稱。
- imported_classes 資料夾
- 在 WAR 匯入期間,可能會建立這個資料夾,它包含沒有附隨程式碼的類別檔。imported_classes 資料夾是一個 Java 類別資料夾;Java 類別資料夾也可以利用 Web 專案的 Java 建置路徑內容頁面來建立。
- WebContent 資料夾
- 所有 Web 資源必須存放的位置,包括 HTML、JSP、圖形檔案等等。
如果這些檔案沒有放置在這個目錄內(或這個目錄下的子目錄結構中),在伺服器上執行應用程式時,將無法使用這些檔案。Web 內容資料夾代表要部署至伺服器的 WAR 檔內容。在 Web 內容資料夾以外的任何檔案都會被視為開發時期的資源(如 .java 檔、.sql 檔以及 .mif 檔等),且在進行專案單元測試或發佈時,不會部署它們。
註: 雖然提供給這個資料夾的預設名稱是 WebContent,但您可以在專案瀏覽器中,或從專案的「內容」對話框網頁中,用滑鼠右鍵按一下資料夾及選取重新命名來變更這個名稱。
在動態 Web 專案中,變更資料夾名稱會更新 Java 建置輸出目錄。您可以在選取來建立新的 Web 專案時,變更要套用的預設資料夾名稱的喜好設定。
- META-INF
- 這個目錄含有 MANIFEST.MF 檔,以用來對映相同企業應用程式專案內其他專案中存在的相依 JAR 檔的類別路徑。這個檔案中的項目會更新執行時期專案類別路徑和 Java 建置設定,以併入所參照的 JAR 檔。
- theme
- 針對階式樣式表和其他與樣式相關的物件的建議目錄。
- 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 檔。位於這個目錄內的 .jar 檔中的任何類別,都可以供您的 Web 應用程式使用。
- Libraries
- 您的 Web 應用程式參照的支援 JAR 檔。這個資料夾鏡映 lib 資料夾的內容。此外,這個資料夾中也併入了「Web 程式庫專案」,這些專案都是「虛擬」的 JAR 檔,
實際上不常駐在 Web 專案中,但是與您工作區中其他地方的 Java 專案相關聯。
當您匯出應用程式的 WAR 檔時,它們會與您的專案套裝在一起。
註: Java 建置路徑上的程式庫項目仍將留在那裡,除非實際的 JAR 檔已從 WEB-INF/lib 資料夾刪除。
如果您移除程式庫路徑項目,但未移除 JAR 檔,程式庫項目將自動再次新增至路徑。