Tomcat虛擬根目錄與虛擬子目錄

tomcat版本:apache-tomcat-7.0.42html

1、虛擬根目錄

啓動Tomcat後,在瀏覽器地址欄輸入:http://localhost:8080/,訪問的就是tomcat虛擬根目錄下的index.jsp文件web

Tomcat 的默認根目錄:D:\apache-tomcat-7.0.42\webapps\ROOTapache

2、tomcat哪裏設置了虛擬根目錄?

在D:\apache-tomcat-7.0.42\conf目錄下的server.xml文件的Host元素中,name屬性:主機名稱,appBase屬性:基準目錄 ,基準目錄下的Root 目錄被自動設置爲根目錄瀏覽器

<Host name="localhost"  appBase="webapps"
    unpackWARs="true" autoDeploy="true">
    <!-- ... -->
</Host>

3、若是修改虛擬根目錄?

在Host元素裏,添加Context元素:tomcat

<Context path="" docBase="D:\test"></Context>

path:爲空,即訪問localhost:8080就能夠訪問到docBase目錄下的文件,修改原來默認根目錄app

docBase:能夠設置絕對路徑,也可設置相對路徑,相對路徑是相對 appBase 屬性所設的目錄而言的webapp

此時再訪問:http://localhost:8080/,出現404錯誤頁面。由於在test目錄下不存在index.html文件,在D:\test目錄下新建1.html,在地址欄輸入:http://localhost:8080/1.html,能夠訪問成功。jsp

若是想即便不輸入1.hmtl也能默認訪問該文件,則需修改:D:\apache-tomcat-7.0.42\conf目錄下web.xml文件的<welcome-file-list>元素,將index.hmtl改成1.html,那麼訪問http://localhost:8080/時就會默認訪問1.htmlui

4、虛擬子目錄

虛擬子目錄(虛擬目錄),即<Context path="" docBase=""></Context>,path屬性不爲空的狀況。url

爲何虛擬根目錄和虛擬子目錄要區分?

假設新增應用且path爲"system",那麼在html文件裏,"/"表明虛擬根目錄,即前綴爲localhost:8080/。可是在Servlet的web.xml文件的url-pattern元素中,"/"表明的是虛擬子目錄,即localhost:8080/system/。

5、如何設置虛擬目錄?

第1種:修改server.xml(建議使用第二種)

在server.xml文件的Host元素中,嵌套下面兩條語句:

<Context path="/test1" docBase="D:\test" reloadable="true"></Context>       
<Context path="/test2/test" docBase="D:\test" reloadable="true"></Context>

path: 表示虛擬目錄的名稱(前面的正斜槓「/」能夠省略)

docBase:能夠設置絕對路徑,也可設置相對路徑,相對路徑是相對 appBase 屬性所設的目錄而言的

reloadable:表示修改應用程序後,tomcat自動幫你部署(reload),不用從新啓動

(注意,設置debug屬性後,在tomcat6.0.39不會出現警告,而在tomcat7.0.42會出現警告)

添加後重啓tomcat

輸入:http://localhost:8080/test1/1.html,能夠成功訪問。

輸入:http://localhost:8080/test2/test/1.html,也能夠成功訪問

第2種:不修改server.xml,http://my.oschina.net/liangzhenghui/blog/184088

相關文章
相關標籤/搜索