在server.xml中添加<Context>元素,配置如下:
<Context docBase="app" path="" reloadable="false" />
在<Context>配置中包含如下信息:
1. 配置docBase值為:docBase="app"或者docBase="app.war";
2. path為空,表示app為tomcat默認應用;
同時,將app.war部署在CATALINA_HOME/webapps/路徑下。
1.如果在部署app時刪除了CATALINA_HOME/webapps/路徑下的ROOT目錄(即刪除tomcat默認應用),
那么在tomcat啟動時,會首先在CATALINA_HOME/webapps/路徑下創建名稱為ROOT的目錄,然后將文件app.war中的內容拷貝到ROOT目錄下,開始部署ROOT應用程序。
接下來才會解壓app.war,再部署app應用。
從tomcat的啟動日志可以很容易知道,在這種情況下app應用會被加載2次,一次是部署ROOT時加載的,另一次是部署app本身加載的。
因此,訪問應用可以帶應用上下文路徑,也可以不用帶上下文路徑,即:http://host:port/xxx或者http://host:port/app/xxx。
2.如果在部署app時不刪除CATALINA_HOME/webapps/路徑下的ROOT目錄,即已經存在默認應用程序。
此時在tomcat啟動時,會先部署ROOT默認應用(注意:已經存在ROOT應用,不再會拷貝app.war文件內容到ROOT下)。然后解壓app.war,部署app應用。顯然,app應用只被部署一次!
因此,在這種情況下,即便配置了<Context>元素的path為空,但是訪問app應用時還是必須攜帶應用上下文路徑,即:http://host:port/app/xxx。
實際上,tomcat部署應用程序的順序是這樣的(tomcat啟動日志):
1.最先部署CATALINA_HOME/webapps/路徑下的ROOT應用,該應用為tomcat的默認應用程序,訪問時不用帶應用上下文路徑,即:http://host:port/xxx。
2.然后再按照字母順序升序依次部署其他應用程序,如:appA,appB等等。
【參考】
http://stackoverflow.com/questions/7276989/how-to-set-the-context-path-of-a-web-application-in-tomcat-7-0 How to set the context path of a web application in Tomcat 7.0