Tomcat Context配置

YatHo發表於2016-12-21

<Context>元素的屬性:
path:指定訪問該Web應用的URL入口。
docBase:指定Web應用的檔案路徑,可以給定絕對路徑,也可以給定相對於<Host>的appBase屬性的相對路徑,如果Web應用採用開放目錄結構,則指定Web應用的根目錄,如果Web應用是個war檔案,則指定war檔案的路徑。(指定專案所在地址)
reloadable:如果這個屬性設為true,tomcat伺服器在執行狀態下會監視在WEB-INF/classes和WEB-INF/lib目錄下class檔案的改動,如果監測到有class檔案被更新的,伺服器會自動重新載入Web應用。

 

 

 

在預設安裝後,tomcat的主目錄是webapps/root目錄,如果我們想改變tomcat的主目錄的話可以這樣做:

1.開啟C:/Tomcat/conf/server.xml,在<host></host>之間加入程式碼:

<Context path=”” docBase=”E:/tomcatApp/JeasyCMS” debug=”0″ reloadable=”true” crossContext=”true”/>

這樣重新啟動tomcat,我們的主目錄就被設定為jeasyCMS這個專案了。

2.另外tomcat會生成一個C:/Tomcat/conf/Catalina/localhost目錄,裡面自動生成了一個ROOT.xml(root大寫)檔案,我們開啟檔案可以看到這些程式碼:

 

<?xml version=’1.0′ encoding=’utf-8′?>
<Context crossContext=”true” docBase=”E:/tomcatApp/JeasyCMS” path=”” reloadable=”true”>
</Context>

3.注意:我們建立虛擬目錄的時候也是這樣來進行設定的,只是context這個標籤的path屬性不為空。
4.我們設定虛擬目錄和主目錄,都會在C:/Tomcat/conf/Catalina/localhost目錄下生成相應的xml檔案,因此,當我們在server.xml裡面刪除了主目錄和虛擬目錄的設定後,如果系統還沒有生效,這時候我們就要察看一下這個目錄下的xml檔案是不是已經被刪除了,如果沒有被刪除,他還是對tomcat起作用的,我們必須手動刪除。
5.基於第4點,通過測試我發現,每當我們訪問一個地址的時候,tomcat首先是到C:/Tomcat/conf/Catalina/localhost目錄下去察看有沒有存在主目錄或虛擬目錄的xml檔案,如果有xml檔案,就按xml裡的路徑進行訪問,如果沒有xml檔案,就到server.xml檔案裡去察看是否配置context標籤,如果配置了context標籤,則在C:/Tomcat/conf/Catalina/localhost目錄下生成一個對應的xml檔案,以便於下次直接驗證而不再訪問server.xml,與此同時開啟context裡指定的路徑,如果server.xml裡沒有配置context標籤,則返回訪問錯誤頁面。
6.基於第5點,我們其實可以直接在C:/Tomcat/conf/Catalina/localhost下建立一個xml檔案,用於主目錄或者虛擬目錄,而不需要去修改server.xml就可以達到配置主目錄和虛擬目錄的目的,具體xml的格式可以如下:

 

<?xml version=’1.0′ encoding=’utf-8′?>
<Context crossContext=”true” docBase=”E:/tomcatApp/JeasyCMS” path=”” reloadable=”true”>
</Context>

具體是主目錄的配置還是虛擬目錄的配置取決於path的值。另外主目錄檔名必須是ROOT.XML(root大寫),而虛擬目錄的檔名稱和虛擬目錄的名稱一致並且為小寫,譬如:

<?xml version=’1.0′ encoding=’utf-8′?>
<Context crossContext=”true” docBase=”E:/tomcatApp/JeasyCMS” path=”/cms” reloadable=”true”>
</Context>

 

以上則定義了一個名為:cms的虛擬目錄,同時要將以上文字儲存為cms.xml檔案。

7.以上住目錄配置好後就可以按以下地址訪問了:

http://localhost:8080/(訪問主目錄)

http://localhost:8080/cms (訪問名為cms的虛擬目錄)

相關文章