eclipse中的web項目路徑和發布好的項目路徑,eclipseweb
現在企業開發中,我們都會建立一個javaWeb工程,在eclipse中指的是建立一個dynamic web project,建立完工程之後,我們在IDE中大體看到如下的工程目錄:
我們主要關心的檔案夾有src、WebContent、WEB-INF、test等。
src:存放我們寫的java檔案,以包來區分相同的檔案
WebContent:發布的檔案夾
WEB-INF:被設計為安全的檔案夾,如果一些內容必須通過後台才能被訪問,則存放在此檔案夾下
test:使用者建立的使用者目錄,可以來存放具體的前台檔案(html、jsp等);另,還可以建立更多的檔案夾,存放不同種類的檔案
上面是我們在IDE中看到的web工程的結構,那麼把web工程發布到tomcat下的檔案路徑是什麼樣子的呢,如下:
我們看到發布完的路徑為項目名稱 ,下邊有META-INF、test、WEB-INF三個檔案夾,可以清楚的明白,發布完之後是項目名稱,然後是WebContent(開發環境下檔案夾)下的檔案,而WebContent沒有顯示,那麼一定會奇怪,我的class檔案呢,別著急,請看:
我們的class檔案都放在了WEB-INF下的classes檔案夾下,把包的路徑轉化為了檔案路徑,如com.cn.my轉化為com/cn/my。
你會疑惑,如果我在src下有設定檔那麼,我的設定檔發布完放在什麼地方了,根據上面的解釋,src對應著classes檔案夾,那麼src下的設定檔會放在classes檔案夾下。
下面說明在web.xml檔案中配置的<context-param>標籤,經常會看到如下的配置:
1 <context-param>2 <param-name>log4j-properties-location</param-name> 3 <param-value>/WEB-INF/log4j.properties</param-value>4 </context-param>
這裡配置的<param-value>值是指以相對路徑來說的,以的/WEB-INF/log4j.properties來說,指的是發布完之後的路徑,其中“/”指的是根路徑,即Log4j(項目名稱);根路徑下的WEB-INF檔案夾下的log4j.properties檔案,;那麼我們在開發過程中(IDE)中要把這個檔案放在哪裡呢,從上邊的解釋我們知道WebContent下的檔案在發布完之後會保持原先的結構,那麼可以得出在IDE中的位置為:WebContent/WEN-INF/log4j.properties。
很多時候我們會把設定檔放在src下,如果放在src下上邊的配置改是怎麼樣的呢,
一、放在src根路徑下,則上面的配置變成如下:
<context-param> <param-name>log4j-properties-location</param-name> <param-value>/WEB-INF/classes/log4j.properties</param-value> </context-param>
二、在src下建立一個檔案夾,則配置如下:
<context-param> <param-name>log4j-properties-location</param-name> <param-value>/WEB-INF/classes/my/config/log4j.properties</param-value> </context-param>
在開發中我們還經常看到這樣的配置,如下
<param-name>log4j-properties-location</param-name> <param-value>classpath:log4j.properties</param-value> </param-name>
classpath指的就是classes檔案夾,這裡指的是src根路徑下的log4j.properties檔案,也可以使用classpath:test/my/log4j.properties
有不對之處請指教!