在Eclipse中只要創建一個Dynamic Web Project,就可以根據創建嚮導創建出一個典型Java Web站點的目錄結構。除非有特殊需要,在大多數情況下都沒有必要修改這個目錄結構,這也是Web容器的缺省目錄結構,我們只要直接使用即可。一般的目錄結構如下:
WebContent (站點根目錄)
|---META-INF (META-INF文件夾)
| |---MANIFEST.MF (MANIFEST.MF配置清單文件)
|---WEB-INF (WEB-INF文件夾)
| |---web.xml (站點配置web.xml)
| |---lib (第三方庫文件夾)
| | |---*.jar (程序需要的jar包)
| |---classes (class文件目錄)
| |---...*.class (class文件)
|---<userdir> (自定義的目錄)
| |---*.jsp,*.js,*.css,*images (自定義的資源文件)
|---<userfiles> (自定義的資源文件)
1.WebRoot(WebContent)下是發佈到服務器上的內容。
2.META-INF是工程自身相關的一些信息,元文件信息,通常由開發工具,環境自動生成。
3.文件web.xml:完成servlet在web容器的註冊。web.xml是Web應用程序的部署描述文件,是用來給Web服務器解析並獲取Web應用程序相關描述的。
不按照sun公司的規範做應用web程序的結構,web容器找不到,比如,xml文件寫錯了,啓動tomcat的時候會報錯
4.凡是客戶端能訪問的資源(.html,.jpg)必須跟WEB-INF在同一目錄。即放在Web根目錄下的資源,從客戶端是可以通過URL地址直接訪問。
- 切忌:凡是WEB-INF裏面的文件都不能被客戶端直接訪問(比如隱藏的信息)。WEB-INF目錄下的資源對用戶來說是不可見的,而對Web服務器來說則沒有這樣的限制。
例如在WEB-INF下的index.htm,客戶端無法與對待其他文件夾內的信息一樣,通過http://yourserver/yourwebapp/WEB-INF/index.htm訪問。WEB-INF文件夾是禁止通過URL訪問的。
6. 在WEB-INF目錄的classes及lib子目錄下,都可以存放Java類文件。在運行時,Servlet容器的類加載器先加載classes目錄下的類,再加載lib目錄下的JAR文件(Java類庫的打包文件)中的類,jar包是許多class文件的集合。因此,如果兩個目錄下存在同名的類,classes目錄下的類具有優先權。
Tomcat固定的目錄結構
/bin
存放在Windows平臺以及Linux平臺上啓動和關閉Tomat的腳本文件
/conf
存放Tomat服務器的各種配置文件, 其中最重要的文件是Server.xml
/server
包含3個子目錄:classes,lib和webapps
/server/lib
存放Tomat服務器所需的Jar文件
/server/webapps
存放Tomat自帶的兩個Web應用:admin應用和manager應用
/common/lib
存放Tomat服務器以及所有Web應用都可以訪問的Jar應用
/share/lib
存放所有Web應用都可以訪問的Jar文件
/logs
存放Tomat的日誌文件
/webapps
當發佈Web應用時,默認情況下把Web應用文件放於此目錄下
/work
Tomcat把由Jsp生成的Servlet放於此目錄下