A. tomcat 怎麼配置 在web發布
在Tomcat中部署Java Web應用程序有兩種方式:靜態部署和動態部署。在下文中$CATALINA_HOME指的是Tomcat根目錄。
一、靜態部署
靜態部署指的是我們在伺服器啟動之前部署我們的程序,只有當伺服器啟動之後,我們的Web應用程序才能訪問。以下3中方式都可以部署:
1、將PetWeb目錄拷貝到$CATALINA_HOME\webapps下,然後啟動伺服器就可以了。這種方式比較簡單,但是web應用程序必須在webapps目錄下。訪問地址如下:
http://localhost:8080/PetWeb/
2、這種方式可以不必將PetWeb目錄拷貝到webapps下,直接在F:\部署。方法如下,更改$CATALINA_HOME\conf\server.xml文件,在<host>標簽內添加<Context>標簽,內容如下:
<Context docBase="F:/PetWeb" reloadable="false" path="/Pet"/>
其
中reloadable="false"表示當應用程序中的內容發生更改之後伺服器不會自動載入,這個屬性在開發階段通常都設為true,方便開發,在發
布階段應該設置為false,提高應用程序的訪問速度。docBase為路徑,可以使用絕對路徑,也可以使用相對路徑,相對路徑相對於webapps。
path屬性的值是訪問時的根地址。訪問地址如下:
http://localhost:8080/Pet/
3、這種方式和第二種方式差不多,但是不是在Server.xml文件中添加Context標簽,而是在$CATALINA_HOME\conf\Catalina\localhost中添加一個xml文件,如Pet.xml,內容如下:
<Context docBase="F:/PetWeb" reloadable="false" />大家可能發現和第二種方式差不多,但是缺少了path屬性,這種方式伺服器會使用.xml的名字作為path屬性的值。訪問地址如下:
http://localhost:8080/Pet/
我們剛才是將PetWeb文件夾部署在了伺服器中,我們知道可以將Web應用程序的內容打成.war包,然後在部署在伺服器上。打包請參考如下步驟:
1、打開命令提示符(Start-->Run-->cmd)
2、設置jdk環境變數
3、在命令提示符中進入F:\PetWeb文件後,鍵入如下命令:
jar ..\Pet.war *.* 這樣在F:\下應該有Pet.war文件。其中..表示當前目錄的父目錄。
部署Pet.war文件非常簡單,將剛才有docBase="F:\PetWeb"更改為docBase="F:\Pet.war"或者直接將其拷貝到
webapps下也可以。重新啟動伺服器就可以將Pet.war部署為一個Web應用程序了。如果你夠細心的話你會發現,伺服器將Pet.war文件解
開,並且在webapps下面又生成了一個Pet文件夾,然後把Pet.war的內容拷貝到裡面去了。我們可以通過以下方式取消自動解壓縮,配置方式如
下:
<Context docBase="F:/PetWeb" reloadable="false" unpackWAR="false"/>
二、動態部署
動態部署是指可以在伺服器啟動之後部署web應用程序,而不用重新啟動伺服器。動態部署要用到伺服器提供的manager.war文件,如果
在$CATALINA_HOME\webapps\下沒有該文件,你必須去重新下載tomcat,否則不能完成以下的功能。要想使用該管理程序必須首先編
輯$CATALINA_HOME\conf\tomcat-users.xml文件,
上
文且說到tomcat-users.xml文件,這個文件中的內容是不依賴於任何一個web應用程序,所以在任何一個web程序中都可以使用,如果這些用
戶和角色只對你的應用起作用,那麼你完全可以放置在你自己的應用程序中,比如WEB-INF中.下面我們將上次加入到tomcat-users.xml文
件中的內容,加入到我們在WEB-INF下新建的myUser.xml文件中,注意此文件應該是以<tomcat-users>為根目錄,如
下所示:
<tomcat-users>
<!--定義角色-->
<role rolename="suozhangshi"/>
<role rolename="guahaoshi"/>
<role rolename="danganshi"/>
<!--定義用戶,並加入到角色中-->
<user username="gua1" password="gua1" roles="guahaoshi"/>
<user username="gua2" password="gua2" roles="guahaoshi"/>
<user username="dang1" password="dang1" roles="danganshi"/>
<user username="dang2" password="dang2" roles="danganshi"/>
<user username="suo1" password="suo1" roles="suozhangshi"/>
<user username="suo2" password="suo2" roles="suozhangshi"/>
</tomcat-users>
這個文件已經建立好了,那麼怎麼告訴Tomcat載入這個文件呢?我們通過下面這一種方式,在你的Web應用程序中的META-INF文件夾中加入Context.xml 文件,這樣當此應用程序部署的時候,就會載入該文件的內容,內容如下:
<Context>
<Realm className="org.apache.catalina.realm.MemoryRealm"
pathname="webapps/SecurityWeb/WEB-INF/myUsers.xml" />
</Context>
Realm標簽中className屬性定義了使用MemoryRealm類從pathname處載入xml文件。。還要注意這里的pathname它是
以相對Tomcat根目錄的,所以上文件路徑應該從webapps開始。最後重新啟動伺服器再訪問你程序,應該能夠看到和上次相同的效果
B. tomcat部署項目的幾種方式
一、靜態部署
1、直接將web項目文件件拷貝到webapps 目錄中
Tomcat的Webapps目錄是Tomcat默認的應用目錄,當伺服器啟動時,會載入所有這個目錄下的應用。所以可以將JSP程序打包成一個 war包放在目錄下,伺服器會自動解開這個war包,並在這個目錄下生成一個同名的文件夾。一個war包就是有特性格式的jar包,它是將一個web程序的所有內容進行壓縮得到。具體如何打包,可以使用許多開發工具的IDE環境,如Eclipse等。也可以用 cmd 命令:jar -cvf mywar.war myweb
webapps這個默認的應用目錄也是可以改變。打開Tomcat的conf目錄下的server.xml文件,找到下面內容:
<Host name="localhost" appBase="webapps"
unpackWARs="true" autoDeploy="true"
xmlValidation="false" xmlNamespaceAware="false">
將appBase修改即可。
2、在server.xml中指定
在Tomcat的配置文件中,一個Web應用就是一個特定的Context,可以通過在server.xml中新建Context里部署一個JSP應用程序。打開server.xml文件,在Host標簽內建一個Context,內容如下。
在tomcat中的conf目錄中,在server.xml中的,<host/>節點中添加:
<Context path="/hello" docBase="D:\ workspace\hello\WebRoot" debug="0" privileged="true">
</Context>
或者
<Context path="/myapp" reloadable="true" docBase="D:\myapp" workDir="D:\myapp\work"/>
或者
<Context path="/sms4" docBase="D:\workspace\sms4\WebRoot"/>
說明:
path是虛擬路徑;
docBase 是應用程序的物理路徑;
workDir 是這個應用的工作目錄,存放運行時生成的與這個應用相關的文件;
debug 則是設定debug level, 0表示提供最少的信息,9表示提供最多的信息
privileged設置為true的時候,才允許Tomcat的Web應用使用容器內的Servlet
reloadable 如果為true,則tomcat會自動檢測應用程序的/WEB-INF/lib 和/WEB-INF/classes目錄的變化,自動裝載新的應用程序,可以在不重起tomcat的情況下改變應用程序,實現熱部署
antiResourceLocking和antiJARLocking 熱部署是需要配置的參數,默認false避免更新了某個webapp,有時候Tomcat並不能把舊的webapp完全刪除,通常會留下WEB-INF/lib下的某個jar包,必須關閉Tomcat才能刪除,這就導致自動部署失敗。設置為true,Tomcat在運行對應的webapp時,會把相應的源文件和jar文件復制到一個臨時目錄里。
3、創建一個Context文件
在conf目錄中,新建 Catalina\localhost目錄,在該目錄中新建一個xml文件,名字不可以隨意取,要和path後的那個名字一致,按照下邊這個path的配置,xml的名字應該就應該是hello(hello.xml),該xml文件的內容為:
<Context path="/hello" docBase="E:\workspace\hello\WebRoot" debug="0" privileged="true"></Context>
tomcat自帶例子如下:
<Context docBase="${catalina.home}/server/webapps/host-manager"
privileged="true" antiResourceLocking="false" antiJARLocking="false">
</Context>
這個例子是tomcat自帶的,編輯的內容實際上和第二種方式是一樣的,其中這xml文件名字就是訪問路徑,這樣可以隱藏應用的真實名字。
4、注意:
刪除一個Web應用同時也要刪除webapps下相應的文件夾和server.xml中相應的Context,還要將Tomcat的conf\catalina\localhost目錄下相應的xml文件刪除,否則Tomcat仍會去配置並載入。。。
二 動態部署
登陸tomcat管理控制台:http://localhost:8080/,輸入用戶名和密碼後便可管理應用並動態發布。
在Context Path(option):中輸入/yourwebname ,這代表你的應用的訪問地址。
XML Configration file URL中要指定一個xml文件,比如我們在F:\下建立一個hmcx.xml文件,內容如下: <Context reloadable="false" />其中docBase不用寫了,因為在下一個文本框中填入。或者更簡單點,這個文本框什麼都不填,在WAR or Directory URL:中鍵入F:\hmcx即可,然後點擊Deploy按鈕,上面就可以看到了web應用程序,名字就Context Path(option):中的名字。
如果部署.war文件還有更加簡單的方式,下面還有個Select WAR file uploae點擊瀏覽選擇.war文件,然後點擊Deploy也可以。
C. 怎樣將web發布到tomcat中
將web發布到tomcat中
第一種方式:利用Tomcat自動部署
利用Tomcat自動部署方式是最簡單的、最常用的方式。若一個web應用結構為D:\workspace\WebApp\AppName\WEB-INF\*,只要將一個Web應用的WebContent級的AppName直接扔進%Tomcat_Home%\webapps文件夾下,系統會把該web應用直接部署到Tomcat中。
第二種方式:利用控制台進行部署
若一個web應用結構為D:\workspace\WebApp\AppName\WEB-INF\*,利用控制台進行部署的方式如下:進入tomcat的manager控制台的deploy區域——在Context path中鍵入"XXX"(可任意取名)——在WAR or Directory URL:鍵入D:\workspace\WebApp\AppName (表示去尋找此路徑下的web應用)——點擊deploy按鈕。 然後在%Tomcat_Home%\webapps路徑下將會自動出現一個名為XXX的文件夾,其內容即是D:\workspace\WebApp\AppName的內容,只是名字是XXX而已(這就是前面在Context path鍵入XXX的結果)。
D. 請問一個Web應用部署到Tomcat伺服器上之後的目錄結構是怎樣的
把服務部署到tomcat上有多種方法,有的直接把編譯後的應用拷貝到tomcat的webapps目錄下面,有的是導出成.war文件拷貝到webapps下面,這樣的話啟動tomcat會自動生成一個同名的應用文件夾裡面會有tomcat解壓後的應用目錄,還有些不用拷貝到webapps目錄下,通過tomcat的server配置指定任意的文件夾為web應用的發布目錄。
基本上目錄結構是這樣的,首先根目錄就是以你的項目名稱命名的文件夾,根目錄下面會有各種前台展示相關的代碼文件,比方說包含jsp文件、css文件、js文件、image文件等前台展示相關的文件夾或文件都可以放在根目錄下面,根目錄下面還有一個WEB-INF文件夾,該文件夾下是一些應用配置文件:web.xml、應用庫文件夾lib文件夾該文件夾下是應用用到的一些第三方jar包、應用編譯文件夾:class,該文件夾下是你的應用開發中的src目錄下面的所有java文件或者其他配置文件的編譯後的文件目錄,目錄結構跟你的開發src目錄結構一致。
E. tomcat怎麼搭建javaweb服務端
比較推薦的方法 在server.xml中指定
在Tomcat的配置文件中,一個Web應用就是一個特定的Context,可以通過在server.xml中新建Context里部署一個JSP應用程序。打開server.xml文件,在Host標簽內建一個Context,內容如下。
<Context path="/myapp" reloadable="true" docBase="D:\myapp" workDir="D:\myapp\work"/>
其中path是虛擬路徑,docBase是JSP應用程序的物理路徑,workDir是這個應用的工作目錄,存放運行是生成的於這個應用相關的文件。
F. 如何整合Apache和Tomcat部署Web應用
1. 安裝Apache Http Server、Tomcat、Tomcat Connector(JK Mole)
Apache Httpd:從網上下載Apache Http Server 2.2.15的安裝版(貌似沒有免安裝壓縮版)。安裝時可以選擇將其安裝為系統服務或者每次手動啟動。我只是測試,所以選擇了後者,但後者默認將會監聽8080埠,注意不要與Tomcat默認的8080埠沖突了。這一項可以稍後在配置文件中修改。
Tomcat:可以選擇免安裝壓縮版(我用的是6.0.18版),很方便,可以注冊為系統服務。
JK Mole:從http //tomcat apache org/download-connectors cgi找到binary下載,下載目前最新版1.2.30文件mod_jk-1.2.30-httpd-2.2.3.so,將其改名為mod_jk.so,置於Apache Http Server安裝目錄下的moles目錄中。
2. 新建workers.properties文件
這個worker.properties可以置於任何目錄下,我把它直接放在了Apache Http Server的安裝目錄下。
# 為mod_jk模塊指明Tomcat的安裝路徑
workers.tomcat_home=D:/DevSoft/apache-tomcat-6.0.18
# 為mod_jk模塊指明JDK的安裝路徑
workers.java_home=C:/Program Files/Java/jdk1.6.0_20
# 添加一個worker到worker列表
worker.list=worker1
# 為worker1設定各個參數
# 工作埠,Tomcat的默認Connector監聽埠,可以查看Tomcat的Server.xml中有port="8009"
worker.worker1.port=8009
# Tomcat所在機器,如果安裝在與apache不同的機器則需要設置IP
worker.worker1.host=localhost
# worker的類型,允許的值為ajp13、ajp14、lb、status等;ajp13是mod_jk連接WebServer和Tomcat的首選方式(即使用socket作為通信渠道)
worker.worker1.type=ajp13
# 負載平衡因子
worker.worker1.lbfactor=1
註:worker.list中worker的名字應該是對應到Apache Http Server的httpd.conf配置文件中的JkMount的(後面詳述)。
3. 修改Apache Http Server的httpd.conf配置文件
修改Apache Http Server安裝目錄下的conf目錄下的httpd.conf文件:
# 載入mod_jk模塊,注意模塊文件的路徑
LoadMole jk_mole moles/mod_jk.so
# 聲明workers.properties文件的位置
JkWorkersFile "C:/Program Files/Apache Software Foundation/Apache2.2/workers.properties"
# 聲明mod_jk的日誌文件位置
JkLogFile "C:/Program Files/Apache Software Foundation/Apache2.2/logs/mod_jk.log"
# 聲明mod_jk的日誌級別(可選)
JkLogLevel info
# 聲明mod_jk的日誌的時間戳格式(可選)
JkLogStampFormat "[%a %b %d %H:%M:%S %Y]"
# 將/*.action和/*.jsp類型的請求都分配給Tomcat,其餘類型的有Apache Http Server自己處理
# 注意JkMount後面的worker1即對應worker.properties文件中worker.list里的worker的名稱
JkMount /*.action worker1
JkMount /*.jsp worker1
4. 修改DirectoryRoot
網上的文章大多隻寫到上面就結束了,動態的內容交給Tomcat之一步算是完成了,但靜態內容的分配還需接著設置httpd.conf文件。
查找到DocumentRoot "C:/Program Files/Apache Software Foundation/Apache2.2/htdocs"這一行,並將其值替換為Web應用的路徑:
DocumentRoot "D:/DevSoft/apache-tomcat-6.0.18/webapps"
查找到<Directory "C:/Program Files/Apache Software Foundation/Apache2.2/htdocs">這一行,並將其值替換為Web應用的路徑:
<Directory "D:/DevSoft/apache-tomcat-6.0.18/webapps">
至此,動態內容和靜態內容的請求分配,才基本完成。
G. eclipse怎樣把Web應用部署到tomcat
1.在myeclipse裡面,window菜單最後一個preferences,左邊點開myclispe,點servers下面找到tomcat,選擇tomcat版本,Tomcat Server 設置為enable,再選擇tomcat的路徑,OK。
2.在myclipse新建一個WEB項目,然後在下面可以寫jsp程序了,默認會有個index.jsp
3.點工具欄上的發布按鈕,點右邊的ADD,選擇剛才第一步建的tomcat,就會把項目發布到tomcat下面
4.啟動tomcat,在發布按鈕旁邊,是啟動按鈕,選擇創建的tomcat
5.在瀏覽器裡面輸入地址localhost:8080/myeclipse項目名稱/index.jsp
H. 怎麼將web應用部署到tomcat中,tomcat是否需要配置環境變數
Tomcat部署Web應用方法總結
在Tomcat中部署Java Web應用程序有兩種方式:靜態部署和動態部署。
在下文中$CATALINA_HOME指的是Tomcat根目錄。
一、靜態部署
靜態部署指的是我們在伺服器啟動之前部署我們的程序,只有當伺服器啟動之後,我們的Web應用程序才能訪問。
以下3種方式都可以部署:(以PetWeb項目為例說明,PetWeb目錄假設是F:/PetWeb)
1.利用Tomcat自動部署
將PetWeb目錄拷貝到$CATALINA_HOME/webapps下,然後啟動伺服器就可以了,Tomcat啟動時將自動載入應用。
訪問地址如下:http://localhost:8080/PetWeb/
這種方式比較簡單,但是web應用程序必須在webapps目錄下。Tomcat的Webapps目錄是Tomcat默認的應用目錄,當伺服器啟動時,會載入所有這個目錄下的應用。
2.修改Server.xml文件部署
這種方式可以不必將PetWeb目錄拷貝到webapps下,直接在F:/部署。方法如下,更改$CATALINA_HOME/conf/server.xml文件,
找到以下內容:
Xml代碼:
1. <Context path
="/Pet" reloadable ="false" docBase
="F:/PetWeb" workDir ="d:/Mywebapps/emp" />
path:是訪問時的根地址,表示訪問的路徑;如上述例子中,訪問該應用程序地址如下:http://localhost:8080/Pet/
reloadable:表示可以在運行時在classes與lib文件夾下自動載入類包。其中reloadable="false"表示當應用程序中的內容發生更改之後伺服器不會自動載入,這個屬性在開發階段通常都設為true,方便開發,在發布階段應該設置為false,提高應用程序的訪問速度。
docbase:表示應用程序的路徑,注意斜杠的方向「/」。
docBase可以使用絕對路徑,也可以使用相對路徑,相對路徑相對於webapps。
workdir:表示緩存文件的放置地址
3.增加自定義web部署文件(推薦使用,不需要重啟Tomcat
)
這種方式和方法2差不多,但不是在Server.xml文件中添加Context標簽,而是在$CATALINA_HOME/conf/Catalina/localhost中添加一個xml文件,如Pet.xml.在Tomcat安裝目錄conf/Catalina
/localhost下,裡面有Tomcat自帶的三個應用,隨意復制其中的一個XML文件,然後修改docbase指向你自己的應用程序,並把文件名改名,各參數參見方法2中的<Context>標簽的參數,或者你也可以自己新建一個XML文件。(注意此文件名將作為Context中的path屬性值,不管文件里的path屬性值如何設置也是無效的
),將以下內容復制過去,修改相應路徑即可。
Xml代碼:
1. <Context path
="/Pet" docBase ="F:/PetWeb"
2. debug ="0"
privileged ="true" reloadable ="false"
>
3. </Context>
訪問地址如下:http://localhost:8080/Pet/
註: Web應用以.war文件的形式部署
可以將JSP程序打包成一個war包放在目錄下,伺服器會自動解開這個war包,並在這個目錄下生成一個同名的文件夾。一個war包就是有特性格式的jar包,它是將一個Web程序的所有內容進行壓縮得到。
我們剛才是將PetWeb文件夾部署在了伺服器中,我們知道可以將Web應用程序的內容打成.war包,然後在部署在伺服器上。打包請參考如下步驟:
1、打開命令提示符(cmd)
2、設置jdk環境變數
3、在命令提示符中進入項目文件夾F:/PetWeb後,鍵入如下命令:jar cvfPet.war */ .
(注意最後有個「. 」)。這樣在F:/PetWeb下應該有Pet.war文件。(也可以打包到指定的地方,命令如下:jar
cvf d:/Pet.war */.)
部署Pet.war文件非常簡單,將剛才xml文件中的docBase
="F:/PetWeb"更改為docBase ="F:/Pet.war"或者直接將其拷貝到webapps目錄下就可以。然後重新啟動伺服器就可以將Pet.war部署為一個Web應用程序了。
如果你夠細心的話你會發現,伺服器將Pet.war文件解開,並且在webapps下面又生成了一個Pet文件夾,然後把Pet.war的內容拷貝到裡面去了。我們可以通過以下方式取消自動解壓縮,將xml配置文件中的unpackWAR屬性設置為"false"
即可。
二、動態部署
動態部署是指可以在伺服器啟動之後部署web應用程序,而不用重新啟動伺服器。動態部署要用到伺服器提供的manager.war文件,如果在$CATALINA_HOME/webapps/下沒有該文件,你必須去重新下載tomcat,否則不能完成以下的功能。要想使用該管理程序必須首先編輯$CATALINA_HOME/conf/tomcat-users.xml文件,內容如下:(關於這個文件的更多內容,請參考
Java Web應用程序的安全模型二)
<tomcat-users>
<role rolename="tomcat"/>
<role rolename="role1"/>
<role rolename="manager"/>
<user username="coresun" password="coresun"roles="manager"/>
<user username="tomcat" password="tomcat"roles="tomcat"/>
<user username="both" password="tomcat"roles="tomcat,role1"/>
<user username="role1" password="tomcat"roles="role1"/>
</tomcat-users>
然後在瀏覽器中鍵入如下地址:http://localhost:8080/
,應該看到一個加菲貓了吧。點擊左邊的Tomcat Manager鏈接,提示輸入用戶名和密碼,本文都是coresun,然後可以看到以下頁面:
(1)Context Path(option):中輸入/Pet
(2)XML Configration file URL中要指定一個.xml文件,比如我們在F:/下建立一個Pet.xml文件,內容如下:<Context reloadable
="false" / >。docBase不用寫了,因為要在下一個文本框中填入。或者更簡單點,這個文本框什麼都不填。
(3)WAR or Directory URL:中鍵入F:/PetWet或者F:/Pet.war都可以,然後點擊Deploy按鈕,看看上面是不是已經看到了你web應用程序,名字就是你ContextPath(option):中的名字。
(4)如果你部署.war文件還有更加簡單的方式,下面還有個Select WAR file upload點擊瀏覽選擇.war文件,然後點擊Deploy也可以。
讓tomcat只運行conf/server.xml中指定的web應用
可以有以下2種辦法:
實現一:
1)將要部署的WEB應用放在webapps以外的路徑,
並在server.xml相應的Context 中的docBase指定.
2)刪除webapps中的所有文件夾,
以及conf/catalina/localhost下所有xml文件.
注: webapps是server.xml中的Host 元素的appBase屬性的值.
實現二:
修改server.xml中Host 元素的屬性,
添加或修改:
deployXML ="false"
deployOnStartup ="false"
autoDeploy ="false"
含義:
deployXML ="false"
: 不部署conf/catalina/localhost下的xml相應的WEB應用
deployOnStartup ="false"
:tomcat啟動時,
不部署webapps下的所有web應用
autoDeploy ="false"
:避免tomcat在掃描改動時,
再次把webapps下的web應用給部署進來.
註:
Tomcat中webapps目錄下不能直接存放網頁格式的文件,否則無法訪問到該文件,必須有子目錄才能訪問該網頁文件。
例如:我們直接將index.html放在webapps目錄中,通過瀏覽器http://localhost:8080/index.html是無法訪問到index.html的。而必須要webapps/petweb/index.html才可以通過http://localhost:8080/petweb/index.html訪問到index.html頁面。
I. tomcat伺服器中的web應用程序部署在哪個物理位置
在你的tomcat安裝目錄下,d:\tools\apache-tomcat-6.0.14\apache-tomcat-6.0.14\work\catalina\localhost,裡面就是你部署的工程了
J. 用Myeclipse開發的Web應用怎麼直接部署到tomcat中
導出war包放到tomcat裡面的wappas下面,然後直接啟動tomcat訪問就行,或者是新建server然後找到你的tomcat目錄配置就可以。然後在左邊的servers裡面會有你已經部署好的虛擬伺服器了(也就是tomcat),隨便點一個進去裡面的server.xml裡面加入(虛擬目錄),啟動tomcat就能訪問了。