Tomcat部署Web應(yīng)用方法總結(jié)
在Tomcat中部署Java Web應(yīng)用程序有兩種方式:靜態(tài)部署和動態(tài)部署氏豌。
在下文中$CATALINA_HOME指的是Tomcat根目錄。
一热凹、靜態(tài)部署
靜態(tài)部署指的是我們在服務(wù)器啟動之前部署我們的程序泵喘,只有當(dāng)服務(wù)器啟動之后,我們的Web應(yīng)用程序才能訪問般妙。
以下3種方式都可以部署:(以PetWeb項目為例說明纪铺,PetWeb目錄假設(shè)是F:/PetWeb)
1.利用Tomcat自動部署
將PetWeb目錄拷貝到$CATALINA_HOME/webapps下,然后啟動服務(wù)器就可以了碟渺,Tomcat啟動時將自動加載應(yīng)用鲜锚。
訪問地址如下:http://localhost:8080/PetWeb/
這種方式比較簡單,但是web應(yīng)用程序必須在webapps目錄下。Tomcat的Webapps目錄是Tomcat默認(rèn)的應(yīng)用目錄芜繁,當(dāng)服務(wù)器啟動時旺隙,會加載所有這個目錄下的應(yīng)用。
2.修改Server.xml文件部署
這種方式可以不必將PetWeb目錄拷貝到webapps下骏令,直接在F:/部署蔬捷。方法如下,更改$CATALINA_HOME/conf/server.xml文件榔袋,
找到以下內(nèi)容:
Xml代碼:
**<Context ** path ="/Pet" reloadable ="false" docBase ="F:/PetWeb" workDir ="d:/Mywebapps/emp" />
path:是訪問時的根地址周拐,表示訪問的路徑;如上述例子中凰兑,訪問該應(yīng)用程序地址如下:http://localhost:8080/Pet/
reloadable:表示可以在運行時在classes與lib文件夾下自動加載類包妥粟。其中reloadable="false"表示當(dāng)應(yīng)用程序 中的內(nèi)容發(fā)生更改之后服務(wù)器不會自動加載,這個屬性在開發(fā)階段通常都設(shè)為true吏够,方便開發(fā)勾给,在發(fā)布階段應(yīng)該設(shè)置為false,提高應(yīng)用程序的訪問速度锅知。
docbase:表示應(yīng)用程序的路徑锦秒,注意斜杠的方向“/”。 docBase可以使用絕對路徑喉镰,也可以使用相對路徑,相對路徑相對于webapps惭笑。
workdir:表示緩存文件的放置地址
3.增加自定義web部署文件(推薦使用侣姆,不需要重啟Tomcat )
這種方式和方法2差不多,但不是在Server.xml文件中添加Context標(biāo)簽沉噩,而是在$CATALINA_HOME/conf /Catalina/localhost中添加一個xml文件捺宗,如Pet.xml.在Tomcat安裝目錄conf/Catalina /localhost下,里面有Tomcat自帶的三個應(yīng)用川蒙,隨意復(fù)制其中的一個XML文件蚜厉,然后修改docbase指向你自己的應(yīng)用程序,并把文件名改 名畜眨,各參數(shù)參見方法2中的<Context>標(biāo)簽的參數(shù)昼牛,或者你也可以自己新建一個XML文件。(注意此文件名將作為Context中的path屬性值,不管文件里的path屬性值如何設(shè)置也是無效的 )康聂,將以下內(nèi)容復(fù)制過去贰健,修改相應(yīng)路徑即可。
Xml代碼:
**<Context ** path ="/Pet" docBase ="F:/PetWeb"
debug ="0" privileged ="true" reloadable ="false" **> **
</Context>
訪問地址如下:http://localhost:8080/Pet/
注: Web應(yīng)用以.war文件的形式部署
可以將JSP程序打包成一個war包放在目錄下恬汁,服務(wù)器會自動解開這個war包伶椿,并在這個目錄下生成一個同名的文件夾。一個war包就是有特性格式的jar包,它是將一個Web程序的所有內(nèi)容進(jìn)行壓縮得到脊另。
我們剛才是將PetWeb文件夾部署在了服務(wù)器中导狡,我們知道可以將Web應(yīng)用程序的內(nèi)容打成.war 包,然后在部署在服務(wù)器上偎痛。打包請參考如下步驟:
1旱捧、打開命令提示符(cmd)
2、設(shè)置jdk環(huán)境變量
3看彼、在命令提示符中進(jìn)入項目文件夾F:/PetWeb后廊佩,鍵入如下命令:jar cvf Pet.war */ . (注意最后有個“. ”)。這樣在F:/PetWeb下應(yīng)該有Pet.war文件靖榕。 (也可以打包到指定的地方标锄,命令如下:jar cvf d:/Pet.war */ . )
部署Pet.war文件非常簡單,將剛才xml文件中的docBase ="F:/PetWeb" 更改為docBase ="F:/Pet.war" 或者直接將其拷貝到webapps目錄下就可以茁计。然后重新啟動服務(wù)器就可以將Pet.war部署為一個Web應(yīng)用程序了料皇。
如果你夠細(xì)心的話你會發(fā)現(xiàn),服務(wù)器將Pet.war文件解開星压,并且在webapps下面又生成了一個Pet文件夾践剂,然后把Pet.war的內(nèi)容拷貝到里面去了。我們可以通過以下方式取消自動解壓縮娜膘,將xml配置文件中的unpackWAR 屬性設(shè)置為"false" 即可嫩与。