Tomcat:配置虛擬目錄或主目錄


為了在訪問web服務的時候,不需要輸入項目名,直接"/"就可以訪問的話,需要設置虛擬目錄或在ROOT下直接放項目

1、采用虛擬目錄的方式

  在Host中添加  <Context crossContext="true" docBase="E:/tomcatApp/JeasyCMS" path="/" reloadable="true"></Context>
  或

  在 conf/Catalina/localhost 中創建ROOT.xml配置

  

  具體配置解釋:

  1)crossContext多用戶共享session的配置

  2)docBase項目的虛擬目錄,非webapps下

  3)path 為瀏覽器訪問目錄

 

  注意以下三點:

  1)如果path為空或/的話,則會覆蓋/webapps/ROOT的項目,導致ROOT下的東西無法訪問

  2)如果Context的docBase配置在非Webapps目錄下的話,有可能出現Cookie和session互竄的問題,比如用戶1登錄看到用戶2的登錄信息

  3)如果配置了Context,並且docBase中的目錄在Webapps下(非ROOT),則會導致項目加載兩次

    例如:<Context docBase="/wetalk/wss/apache-tomcat-7.0.62/webapps/AAA" path="" debug="0" reloadable="true"/>

    因為項目啟動時,會自動加載Host中配置的Webapps目錄下的項目,且會再次加載Context配置的虛擬目錄

 

2、直接將項目放在webapps/ROOT目錄下

  這種方式不用配置context就可以使用,比較方便

 

3、其他說明

1)另外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>

2)注意:我們創建虛擬目錄的時候也是這樣來進行設置的,只使context這個標簽的path屬性不為空。

3)我們設置虛擬目錄和主目錄,都會在C:\Tomcat\conf\Catalina\localhost目錄下生成相應的Xml文件,因此,當我們在 server.Xml里面刪除了主目錄和虛擬目錄的設置后,如果系統還沒有生效,這時候我們就要察看一下這個目錄下的Xml文件是不是已經被刪除了,如果 沒有被刪除,他還是對tomcat起作用的,我們必須手動刪除。

4)基於第3點,通過測試我發現,每當我們訪問一個地址的時 候,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標簽,則返回訪問錯誤頁面。

5.基於第4點,我們其實可以直接在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文件。

 


免責聲明!

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



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