tomcat版本:apache-tomcat-7.0.42
參考:http://blog.csdn.net/pangdingshan/article/details/7214786
一、虛擬根目錄
1. Tomcat 的默認根目錄:D:\apache-tomcat-7.0.42\webapps\ROOT
2. 只能有一個默認根目錄
3. 一個 默認根目錄只能映射一個 “文件系統目錄”
啟動Tomcat后,在瀏覽器地址欄輸入:http://localhost:8080/,訪問的其實就是tomcat虛擬根目錄下的index.jsp文件。
二、tomcat怎么設置了虛擬根目錄?
在D:\apache-tomcat-7.0.42\conf目錄下的server.xml文件的Host元素中,name屬性:主機名稱,appBase屬性:基准目錄 ,基准目錄下的Root 目錄被自動設置為根目錄
1
2
3
4
|
<
Host
name
=
"localhost"
appBase
=
"webapps"
unpackWARs
=
"true"
autoDeploy
=
"true"
>
<!-- ... -->
</
Host
>
|
三、如果修改虛擬根目錄?
在Host元素里,添加Context元素:
1
|
<
Context
path
=
""
docBase
=
"D:\test"
></
Context
>
|
path: 為空代表網站根目錄
docBase:可以設置絕對路徑,也可設置相對路徑,相對路徑是相對 appBase 屬性所設的目錄而言的
此時再訪問:http://localhost:8080/,出現404錯誤頁面。因為在test目錄下存在1.html文件,在地址欄輸入:http://localhost:8080/1.html,可以訪問成功。
如果想即使不輸入1.hmtl也能默認訪問該文件,則需修改:D:\apache-tomcat-7.0.42\conf目錄下web.xml文件的<welcome-file-list>元素,將index.hmtl改為1.html,那么訪問http://localhost:8080/時就會默認訪問1.html
四、虛擬目錄(根目錄的子目錄)
-
可以設置多個虛擬目錄
-
一個文件系統目錄(docBase)可以被映射成多個虛擬目錄(path),即不同的path可以對應相同的docBase
-
虛擬目錄名稱(path)可以是多級目錄結構的形式
-
一個虛擬目錄就是一個獨立的web應用程序
五、如何設置虛擬目錄?
第1種:修改server.xml(建議使用第二種)
在server.xml文件的Host元素中,嵌套下面兩條語句:
1
2
|
<
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,也可以成功訪問
上面例子也說明:一個文件系統目錄(docBase)可以被映射成多個虛擬目錄(path),虛擬目錄名稱(path)可以是多級目錄結構的形式(/test2/test)
第2種:不修改server.xml,http://my.oschina.net/liangzhenghui/blog/184088