Web應用程序的目錄結構


一個Web應用程序基本上由以下項目組成:

1.靜態資源(HTML,CSS,圖片,聲音等)

2.Servlet

3.JSP

4.自定義類

5.工具類

6.部署描述文件(web.xml等)、設置信息(Annotation等)

 

Web應用程序目錄結構必須符合規范。例如,如果一個應用程序的環境路徑(Context path)是/HelloServlet,則所有的資源項目必須以/HelloServlet為根目錄依規定結構擺放。基本上根目錄中的資源可以直接下載,若index.html位於/HelloServlet下,則可以直接以/HelloServlet/index.html來取得。

 

Web應用程序存在一個特殊的/WEB-INF子目錄,此目錄中存在的資源不會被列入應用程序根目錄中可直接訪問的項。即,客戶端(如Browser)不可以直接請求/WEB-INF中的資源(直接在網址上指明訪問/WEB-INF),否則就是404 Not Found的錯誤結果。/WEB-INF中的資源項目有着一定的名稱與結構。

(1)/WEB-INF/web.xml 是部署描述文件

(2)/WEB-INF/classes 用來放置應用程序用到的自定義類(.class),必須包括包(package)結構。

(3)/WEB-INF/lib 用來放置應用程序用到的JAR文件。

 

Web應用程序用到的JAR文件,其中可以放置Servlet、JSP、自定義類、工具類、部署描述文件等,應用程序的類載入器可以從JAR中載入對應的資源。

 

可以在JAR文件中的/META-INF/resources目錄中放置靜態資源或JSP等,例如若在/META-INF中放個index.html,若請求的URL中包括/HelloServlet/index.html,但實際上/HelloServlet根目錄下不存在index.html,則會使用JAR中的/META-INF/resources/index.html。

 

如果要用到某個類,則Web應用程序會到/WEB-INF/classes中試着載入類,若無,再試着從/WEB-INF/lib的JAR文件中尋找類文件(若還沒有找到,則會到容器實現本身存放類或JAR的目錄中尋找,但位置視不同實現廠商而有所不同,以Tomcat為例,搜索的路徑是Tomcat的安裝目錄下的lib目錄)。

 

客戶端不能直接請求/WEB-INF中的資源,但可以通過程序的控制,讓程序來取得/WEB-INF中的資源,如使用ServletContext的getResource()與getResourceAsStream(),或是通過RequestDispatcher請求調派。

 

Web app 默認主頁的設置:訪問URL如:localhost:8080/FirstServlet/

<welcome-file-list>

    <welcome-file>index.html</welcome-file>

    <welcome-file>default.jsp</welcome-file>

</welcome-file-list>

如果找不到以上的文件,則會嘗試至JAR的/META-INF/resources中尋找已放置的資源頁面。

 

整個Web應用可以被封裝為一個WAR文件,如FirstServlet.war,以便於部署至Web容器。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM