--yourproject --src --java 運(yùn)行的java源代碼
--test 單元測(cè)試的源代碼 --lib 開(kāi)發(fā)需要的lib(里面通常是運(yùn)行時(shí)不需要的jar)
--document (項(xiàng)目的設(shè)計(jì)文檔、數(shù)據(jù)庫(kù)設(shè)計(jì)文檔等)
--war --WEB-INF --classes
--lib (運(yùn)行時(shí)需要的jar,當(dāng)然開(kāi)發(fā)肯定也需要該lib)
---web.xml
--css
--js
--fonts(字體)
--images 注:按照 Java EE 規(guī)范的規(guī)定,一個(gè)典型的Web 應(yīng)用程序有四個(gè)部分:
1. 公開(kāi)目錄
2. WEB-INF/web.xml 文件,發(fā)布描述符(必選)
3. WEB-INF/classes 目錄,編譯后的Java 類文件(可選)
4. WEB-INF/lib 目錄,Java 類庫(kù)文件(*.jar)(可選)
公開(kāi)目錄 存放所有可以被用戶的訪問(wèn)的資源, 包括 .html, .jsp, .gif, .jpg, .css, .js, .swf等等。
WEB-INF 目錄是一個(gè)專用區(qū)域, 容器不能把此目錄中的內(nèi)容提供給用戶。這個(gè)目錄下的文件只供容器使用, 里面包含不應(yīng)該由客戶直接下載的資源, 例如: Servlet(這些組件包括應(yīng)用程序邏輯以及對(duì)其他資源如數(shù)據(jù)庫(kù)的可能訪問(wèn)), Web 應(yīng)用程序中servlet 可直接訪問(wèn)的其他任何文件, 在服務(wù)器方運(yùn)行或者使用的資源(如Java 類文件和供servlet 使用的JAR 文件), 由您的應(yīng)用程序生成的臨時(shí)文件, 發(fā)布描述符以及其它任何配置文件。這些資源是專用的, 因此只能由它們自己的Web 應(yīng)用程序及容器訪問(wèn)。特別地, JSP/Servlet 程序文件也能通過(guò)ServletContext 訪問(wèn)到這個(gè)目錄下的文件, 例如JSP 中可以通過(guò)application.getRealPath(“/WEB-INF/web.xml”) 訪問(wèn)到發(fā)布描述符文件的路徑。 Web 容器要求在你的應(yīng)用程序中必須有WEB-INF 目錄。注意: 如果你的Web 應(yīng)用程序中沒(méi)有包含這個(gè)目錄, 它可能將無(wú)法工作(這是因?yàn)椴煌姆?wù)器對(duì)此情況的處理不甚一致,所以有時(shí)候也能工作)。
WEB-INF 中包含著發(fā)布描述符, 一個(gè)classes 目錄和一個(gè)lib 目錄, 以及其它內(nèi)容。發(fā)布描述符(deployment descriptors)是J2EE Web 應(yīng)用程序不可分割的一部分(也就是說(shuō)是它的最小部分, 必不可缺的一部分)。它們?cè)趹?yīng)用程序發(fā)布之后幫助管理 Web 應(yīng)用程序的配置。對(duì)于 Web 容器而言, 發(fā)布描述符是一個(gè)名為web.xml 的XML 文件, 存儲(chǔ)在Web 應(yīng)用程序的 /WEB-INF 目錄下。
發(fā)布描述符(web.xml)有多種用途:
· 為 Servlet 和Web 應(yīng)用程序提供初始化參數(shù) 這使我們的Web 應(yīng)用程序中的硬性編寫(xiě)的代碼的初始化值更少。例如常見(jiàn)的<param-name>, <param-value>標(biāo)記, 就可以為Servlet 提供參數(shù), 這個(gè)參數(shù)可以在init() 方法中加載。 Struts 的ActionServlet也是通過(guò)這種方式來(lái)找到它們需要的配置文件struts-config.xml 的位置, 從而加載并分析它,來(lái)初始化Struts 框架用到的各種FromBean, Action, Forward 等。
· Servlet/JSP 定義可以為 Web 應(yīng)用程序中的每個(gè)Servlet 或者預(yù)編譯的JSP 網(wǎng)頁(yè)提供定義。包括 Servlet/JSP 的名字, Servlet/JSP 的類以及一個(gè)可選的描述。
· Servlet/JSP 映射 Web 容器使用這些信息把進(jìn)入請(qǐng)求映射到servlet 和JSP 網(wǎng)頁(yè)。
· MIME 類型由于每個(gè) Web 應(yīng)用程序可以包含多種內(nèi)容類型, 因此我們可以在發(fā)布描述符中為每一種類型指定MIME 類型。
· 安全性 我們可以使用發(fā)布描述符來(lái)管理應(yīng)用程序的訪問(wèn)控制。例如, 可以指定我們的Web 應(yīng)用程序是否需要登錄, 如果需要的話, 應(yīng)該使用什么登錄頁(yè)面, 以及用戶會(huì)作為何種角色。發(fā)布描述符還可以用來(lái)自定義其他元素, 包括歡迎網(wǎng)頁(yè), 出錯(cuò)網(wǎng)頁(yè), 會(huì)話配置。classes 目錄用于存儲(chǔ)編譯過(guò)的servlet 及其它程序類, 例如JavaBean。如果一個(gè)程序有打包的JAR 文件(例如一個(gè)第三方API 打包成了一個(gè)JAR 文件, 如Struts 框架的類庫(kù)
struts.jar, MySQL 的數(shù)據(jù)庫(kù)JDBC 驅(qū)動(dòng)程序文件mysql-connector-java-3.1.11-bin.jar 等),那么它們可以被復(fù)制到lib 目錄中(如果解壓縮這些壓縮包的話, 請(qǐng)將它們復(fù)制到classes 目錄中)。 Web 容器使用這兩個(gè)目錄來(lái)查找servlet 及其他相關(guān)類,也就是說(shuō), 容器的類裝入器會(huì)自動(dòng)查看classes 目錄, 以及l(fā)ib 目錄下的JAR 文件。這就意味著你不需要明確的把這些類和JAR 文件添加到CLASSPATH 中。 Web 容器自動(dòng)將這兩個(gè)目錄中的文件加入Web應(yīng)用的類路徑中。
本站僅提供存儲(chǔ)服務(wù),所有內(nèi)容均由用戶發(fā)布,如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)
點(diǎn)擊舉報(bào)。