Tomcat中的Web應用
Web應用就是具有特定目錄結構的目錄和文件。
基於JAVA技術開發的Web應用中通常會包含以下的web對象:
- 靜態文件對象:HTML頁面,圖片,普通文件
- Servlet: 依據Servlet規范實現的java類,可以以編譯后的class文件出現,也可以以包含class文件的jar包出現
- JSP文件:符合JSP規范的動態頁面
實際上Web應用就是文件系統中的一個目錄,稱為Web應用根目錄,該目錄中包括: 訪問該Web應用所需要的資源,以及Web應用本身的配置文件和描述文件。不同的Web服務器,對在其上部署的Web應用的根目錄結構有不同的要求。而在Tomcat下,Web應用有如下目錄結構:
頂節點是Web應用根目錄,所有靜態文件對象可以按任意目錄層次放置在Web應用根目錄中,比如結構圖中的Web.jsp可以直接隸屬於根目錄,也可以隸屬於根目錄中的某個文件夾下,而這些文件都可以根據其目錄層次通過URL直接訪問。
WEB-INF是一個特殊的子目錄,它只能置於根目錄之下,它 不會讓客戶端直接訪問其中的文件,而是間接地支持Web應用的運行,比如提供Web應用需要訪問的資源文件,放置Web應用的屬性文件和配置文件。其主要包括lib目錄,classes目錄,Web.xml文件。
- lib目錄:主要存放Web應用所要使用的庫文件
- classes目錄: 主要存放Web應用使用的class文件
- Web.xml: 其是Web應用描述符,用於設置Web應用特有的配置
Web應用的上下文路徑
部署到Tomcat的Web應用可以有多個,該怎么區分他們呢?這時候就會用Tomcat以及相關的Host路徑來定義Web應用特有的路徑,以便於准確定位Web應用。每個Host中可以有多個Web應用,則需要每個Web應用的路徑是唯一的,例如:在localhost中有2個Web應用,路徑分別為app1和app2,則訪問他們的URL就可以表示為:http://localhost:8080/app1, http://localhost:8080/app2
反之,Tomcat也可以根據客戶端請求的URL的前綴來將請求發送給相應的Web應用
注意: Web應用上下文路徑與根目錄名稱是兩個不同概念,這兩個值未必是一樣的。