摘要:
開發(fā)者開發(fā)部署web應(yīng)用時通常使用tomcat服務(wù)器,很多初學(xué)者只懂得在開發(fā)工具上配置,但離開了開發(fā)工具,自己手動配置部署,并讓一個項目跑起來,你會了嗎。小編也遇到過這樣的困擾。網(wǎng)上查找的資料說法不一,小編就親自動手實驗
一. 下載
tomcat服務(wù)器直接到官網(wǎng)下載就好,根據(jù)自己的電腦系統(tǒng)選擇對應(yīng)的版本下載,window系統(tǒng)下載zip包,下載后解壓、
Apache Tomcat 9:https://www.jb51.net/softs/537919.html
Apache Tomcat 8:https://www.jb51.net/softs/537911.html
二. 配置
我們下載完成后,我們試圖啟動tomcat,啟動有兩種方式
- 直接到tomcat服務(wù)器的bin目錄下雙擊startup.bat
- 通過cmd進入bin目錄,輸入命令startup.bat
但這時會出現(xiàn)的問題是,服務(wù)器啟動程序只是一閃而過,為什么呢?
其實問題就是,沒有Java的JDK,我們需要到環(huán)境變量配置系統(tǒng)變量JAVA_HOME。我們都知道,1.5 以上的版本的JDK只需要配置path變量就可以了。但是如果你想在機器上使用tomcat的話,你就必須配置JAVA_HOME,指向JDK的安裝位置。
配置好之后我們就可以正常打開tomcat了,雙擊startup.bat,tomcat正常啟動。啟動完成后,我們在瀏覽器地址欄上輸入:http://localhost:8080,會得到以下的界面
這樣就能使用tomcat部署應(yīng)用了嗎,還不行。我們還需要另外的一些配置
2.1 配置環(huán)境變量
我們需要配置三個系統(tǒng)環(huán)境變量
- ATALINA_BASE:指向tomcat的安裝位置
- CATALINE_HOME:指向tomcat的安裝位置
- Path:%CATALINA_HOME%\lib;%CATALINA_HOME%\bin
2.2 配置tomcat的服務(wù)端口
tomcat的默認(rèn)服務(wù)端口是8080。可以通過配置文件來改變該服務(wù)端口,甚至通過修改配置文件讓tomcat同時在多個端口提供服務(wù)
tomcat的配置文件都放在conf目錄下。使用無格式文本編輯器打開該目錄下的server.xml文件,定位到68行處
<Connector port="8080" protocol="HTTP/1.1"
connectionTimeout="20000"
redirectPort="8443" />
其中,port="8080"就是web應(yīng)用的服務(wù)端口,將8080改為任意端口,建議使用1024以上的端口,避免與公用端口沖突。
如果需要讓tomcat運行多個服務(wù),只需要復(fù)制server.xml中的<serverce>元素,并修改相應(yīng)的參數(shù),便可以實現(xiàn)一個tomcat運行多個服務(wù),當(dāng)然在不同端口提供服務(wù)
在web應(yīng)用的開發(fā)階段,通常希望Tomat能列出Web應(yīng)用根目錄下的所有頁面,這樣能更方便的調(diào)試JSP頁面。默認(rèn)情況下,出于安全考慮,tomcat并不會這樣做。我們可以手動打開conf目錄下的web.xml文件,修改第110,111兩行的listing參數(shù),改為true即可,改為如下形式
<init-param>
<param-name>listings</param-name>
<param-value>true</param-value>
</init-param>
2.3 進入控制臺
tomcat有三個控制臺,分別是Server Status控制臺、Manager App控制臺和Host Manager控制臺。Status控制臺用來監(jiān)控服務(wù)器狀態(tài),而manager控制臺可以部署、監(jiān)控web應(yīng)用,因此通常使用Manager控制臺即可。
登陸控制臺,我們需要用戶和密碼??刂婆_的用戶和密碼是通過Tomcat的JAAS控制的。
我們登陸Manager控制臺需要不同的角色,參考\webapps\manager\WEB-INF目錄下的web.xml文件知道,登錄控制臺可能需要不同的角色。對于普通開發(fā)者來說,通常需要訪問匹配/html/*、/status/*的資源,因此我們創(chuàng)建一個manager-gui角色即可。
tomcat默認(rèn)沒有配置任何用戶。我們可以打開conf目錄下的tomcat-users.xml文件,添加user元素增加用戶,修改如下
<?xml version="1.0" encoding="UTF-8"?>
<tomcat-users xmlns="http://tomcat.apache.org/xml"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://tomcat.apache.org/xml tomcat-users.xsd"
version="1.0">
<!--
<role rolename="tomcat"/>
<role rolename="role1"/>
<user username="tomcat" password="<must-be-changed>" roles="tomcat"/>
<user username="both" password="<must-be-changed>" roles="tomcat,role1"/>
<user username="role1" password="<must-be-changed>" roles="role1"/>
-->
<user username="manager" password="manager" roes="manager-gui"/>
</tomcat-users>
上面配置文件增加了一個manager用戶
成功登錄之后,可以看到
控制臺下方的Deploy區(qū)用于部署web應(yīng)用。tomcat提供兩種方式部署web應(yīng)用:一種是將整個路徑部署成web應(yīng)用;另一種是將war文件部署成web應(yīng)用
四. 部署web應(yīng)用
部署web應(yīng)用的方式主要有以下幾種
- 利用tomcat的自動部署
- 利用控制臺部署
- 增加自定義的Web部署文件
- 修改server.xml文件部署Web應(yīng)用
4.1 利用tomcat的自動部署
利用tomcat的自動部署是最簡單,最常用的方式,只需要將一個web應(yīng)用復(fù)制到Tomcat的webapps下,系統(tǒng)就會把該應(yīng)用部署到tomcat中。
4.2 利用控制臺部署
利用控制臺部署也很簡單,在web應(yīng)用的控制臺按如下方式輸入即可
輸入后,點擊Deploy按鈕,將會看到Tomcat的webapps目錄下多了一個名為aaa的文件夾,該文件夾的內(nèi)容和E:\webDemo文件夾下的內(nèi)容完全相同。這表明:當(dāng)利用控制臺部署應(yīng)用時,實際依然是利用tomcat的自動部署
4.3 增加自定義的Web部署文件
這種方式操作步驟是:在conf目錄下新建Catalina目錄,再在該Catalina目錄下新建localhost目錄,最后在該localhost目錄下新建一個任意名字的xml文件——該文件就是部署web應(yīng)用的配置文件,該文件的主文件名將作為web應(yīng)用的虛擬路徑。例如在\conf\Catalina\localhost目錄下增加一個dd.xml文件,該文件內(nèi)容如下
<Context docBase="E:/webDemo" debug="0" privileged="true">
</Context>
該文件指定了web應(yīng)用的絕對路徑,再次啟動tomcat,tomcat會把/路徑下的webDemo文件夾部署成web應(yīng)用
4.4 修改server.xml文件部署Web應(yīng)用
這種方式是修改conf目錄下的server.xml文件,修改該文件可能破壞Tomcat的系統(tǒng)文件,不建議采用
五. 配置數(shù)據(jù)源
從tomcat 5.5開始,tomcat內(nèi)置了DBCP的數(shù)據(jù)源實現(xiàn),可以非常方便的配置DBCP數(shù)據(jù)源。
Tomcat提供了兩種配置數(shù)據(jù)源的方式,一種是全局?jǐn)?shù)據(jù)源,可以讓所有的web應(yīng)用都能訪問;一種是局部數(shù)據(jù)源,只能讓單個數(shù)據(jù)源訪問。
不管配置那種數(shù)據(jù)源,都需要提供特定數(shù)據(jù)庫的JDBC驅(qū)動程序,將它復(fù)制到Tomcat的lib路徑下。例如將MySQL的JDBC驅(qū)動程序復(fù)制到lib路徑下
局部數(shù)據(jù)源無需修改系統(tǒng)的配置文件,只需用戶修改自己的Web部署文件,不會造成系統(tǒng)的混亂,而且數(shù)據(jù)源被封裝在一個Web應(yīng)用之內(nèi),防止被其他應(yīng)用訪問,提供了良好的封裝性。例如修改dd.xml文件。為Context元素增加一個子元素Resource,文件內(nèi)容如下
<Context docBase="E:/webDemo" debug="0" privileged="true">
<!--其中name指定數(shù)據(jù)源在容器中的JNDI名
driverClassName指定連接數(shù)據(jù)庫的驅(qū)動
url指定數(shù)據(jù)庫服務(wù)的URL
maxActive指定數(shù)據(jù)庫最大活動連接數(shù)
maxIdle指定數(shù)據(jù)池中最大的空閑連接數(shù)
maxWait指定數(shù)據(jù)池中最大等待獲取連接的客戶端
-->
<Resource name="jdbc/dstest" auth="sherman"
type="javax.sql.DataSource"
driverClassName="com.mysql.jdbc.Driver"
url="jdbc:mysql://localhost:3306/tb_test"
username="sherman" password="a123" maxActive="5"
maxIdle="2" maxWait="10000">
</Context>
再次啟動tomcat,該web應(yīng)用即可通過JNDI名字來訪問該數(shù)據(jù)源下面是測試訪問數(shù)據(jù)源代碼的JSP頁面代碼。
六. 一些注意點
- 手動編寫jsp文件時,保存文件時,文件編碼設(shè)為utf-8,否則顯示亂碼
- 部署配置文件跟web應(yīng)用的配置文件不一樣,要區(qū)分開
以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。