tomcat版本:apache-tomcat-7.0.42html
啓動Tomcat後,在瀏覽器地址欄輸入:http://localhost:8080/,訪問的就是tomcat虛擬根目錄下的index.jsp文件web
Tomcat 的默認根目錄:D:\apache-tomcat-7.0.42\webapps\ROOTapache
在D:\apache-tomcat-7.0.42\conf目錄下的server.xml文件的Host元素中,name屬性:主機名稱,appBase屬性:基準目錄 ,基準目錄下的Root 目錄被自動設置爲根目錄瀏覽器
<Host name="localhost" appBase="webapps" unpackWARs="true" autoDeploy="true"> <!-- ... --> </Host>
在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
虛擬子目錄(虛擬目錄),即<Context path="" docBase=""></Context>,path屬性不爲空的狀況。url
爲何虛擬根目錄和虛擬子目錄要區分?
假設新增應用且path爲"system",那麼在html文件裏,"/"表明虛擬根目錄,即前綴爲localhost:8080/。可是在Servlet的web.xml文件的url-pattern元素中,"/"表明的是虛擬子目錄,即localhost:8080/system/。
第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