1. 程式人生 > >tomcat的配置使用詳細版

tomcat的配置使用詳細版

開發部 local 數據池 JD 我們 spa 內容 image max

摘要:

開發者開發部署web應用時通常使用tomcat服務器,很多初學者只懂得在開發工具上配置,但離開了開發工具,自己手動配置部署,並讓一個項目跑起來,你會了嗎。小編也遇到過這樣的困擾。網上查找的資料說法不一,小編就親自動手實驗

一. 下載

tomcat服務器直接到官網下載就好,根據自己的電腦系統選擇對應的版本下載,window系統下載zip包,下載後解壓

二. 配置

我們下載完成後,我們試圖啟動tomcat,啟動有兩種方式

  1. 直接到tomcat服務器的bin目錄下雙擊startup.bat
  2. 通過cmd進入bin目錄,輸入命令startup.bat

但這時會出現的問題是,服務器啟動程序只是一閃而過,為什麽呢?

其實問題就是,沒有Java的JDK,我們需要到環境變量配置系統變量JAVA_HOME。我們都知道,1.5 以上的版本的JDK只需要配置path變量就可以了。但是如果你想在機器上使用tomcat的話,你就必須配置JAVA_HOME,指向JDK的安裝位置。

配置好之後我們就可以正常打開tomcat了,雙擊startup.bat,tomcat正常啟動。啟動完成後,我們在瀏覽器地址欄上輸入:http://localhost:8080,會得到以下的界面

技術分享圖片

這樣就能使用tomcat部署應用了嗎,還不行。我們還需要另外的一些配置

2.1 配置環境變量

我們需要配置三個系統環境變量

  • ATALINA_BASE:指向tomcat的安裝位置
  • CATALINE_HOME:指向tomcat的安裝位置
  • Path:%CATALINA_HOME%\lib;%CATALINA_HOME%\bin

2.2 配置tomcat的服務端口

tomcat的默認服務端口是8080。可以通過配置文件來改變該服務端口,甚至通過修改配置文件讓tomcat同時在多個端口提供服務

tomcat的配置文件都放在conf目錄下。使用無格式文本編輯器打開該目錄下的server.xml文件,定位到68行處

    <Connector port="8080" protocol="HTTP/1.1"
               connectionTimeout="20000"
redirectPort="8443" />

其中,port="8080"就是web應用的服務端口,將8080改為任意端口,建議使用1024以上的端口,避免與公用端口沖突。

如果需要讓tomcat運行多個服務,只需要復制server.xml中的<serverce>元素,並修改相應的參數,便可以實現一個tomcat運行多個服務,當然在不同端口提供服務

在web應用的開發階段,通常希望Tomat能列出Web應用根目錄下的所有頁面,這樣能更方便的調試JSP頁面。默認情況下,出於安全考慮,tomcat並不會這樣做。我們可以手動打開conf目錄下的web.xml文件,修改第110,111兩行的listing參數,改為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控制臺用來監控服務器狀態,而manager控制臺可以部署、監控web應用,因此通常使用Manager控制臺即可。

登陸控制臺,我們需要用戶和密碼。控制臺的用戶和密碼是通過Tomcat的JAAS控制的。

我們登陸Manager控制臺需要不同的角色,參考\webapps\manager\WEB-INF目錄下的web.xml文件知道,登錄控制臺可能需要不同的角色。對於普通開發者來說,通常需要訪問匹配/html/*、/status/*的資源,因此我們創建一個manager-gui角色即可。

tomcat默認沒有配置任何用戶。我們可以打開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區用於部署web應用。tomcat提供兩種方式部署web應用:一種是將整個路徑部署成web應用;另一種是將war文件部署成web應用

四. 部署web應用

部署web應用的方式主要有以下幾種

  1. 利用tomcat的自動部署
  2. 利用控制臺部署
  3. 增加自定義的Web部署文件
  4. 修改server.xml文件部署Web應用

4.1 利用tomcat的自動部署

利用tomcat的自動部署是最簡單,最常用的方式,只需要將一個web應用復制到Tomcat的webapps下,系統就會把該應用部署到tomcat中。

4.2 利用控制臺部署

利用控制臺部署也很簡單,在web應用的控制臺按如下方式輸入即可

技術分享圖片

輸入後,點擊Deploy按鈕,將會看到Tomcat的webapps目錄下多了一個名為aaa的文件夾,該文件夾的內容和E:\webDemo文件夾下的內容完全相同。這表明:當利用控制臺部署應用時,實際依然是利用tomcat的自動部署

4.3 增加自定義的Web部署文件

這種方式操作步驟是:在conf目錄下新建Catalina目錄,再在該Catalina目錄下新建localhost目錄,最後在該localhost目錄下新建一個任意名字的xml文件——該文件就是部署web應用的配置文件,該文件的主文件名將作為web應用的虛擬路徑。例如在\conf\Catalina\localhost目錄下增加一個dd.xml文件,該文件內容如下

<Context docBase="E:/webDemo" debug="0" privileged="true">
</Context>

該文件指定了web應用的絕對路徑,再次啟動tomcat,tomcat會把/路徑下的webDemo文件夾部署成web應用

4.4 修改server.xml文件部署Web應用

這種方式是修改conf目錄下的server.xml文件,修改該文件可能破壞Tomcat的系統文件,不建議采用

五. 配置數據源

從tomcat 5.5開始,tomcat內置了DBCP的數據源實現,可以非常方便的配置DBCP數據源。

Tomcat提供了兩種配置數據源的方式,一種是全局數據源,可以讓所有的web應用都能訪問;一種是局部數據源,只能讓單個數據源訪問。

不管配置那種數據源,都需要提供特定數據庫的JDBC驅動程序,將它復制到Tomcat的lib路徑下。例如將MySQL的JDBC驅動程序復制到lib路徑下

局部數據源無需修改系統的配置文件,只需用戶修改自己的Web部署文件,不會造成系統的混亂,而且數據源被封裝在一個Web應用之內,防止被其他應用訪問,提供了良好的封裝性。例如修改dd.xml文件。為Context元素增加一個子元素Resource,文件內容如下

<Context docBase="E:/webDemo" debug="0" privileged="true">

<!--其中name指定數據源在容器中的JNDI名
driverClassName指定連接數據庫的驅動
url指定數據庫服務的URL
maxActive指定數據庫最大活動連接數
maxIdle指定數據池中最大的空閑連接數
maxWait指定數據池中最大等待獲取連接的客戶端
-->
<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應用即可通過JNDI名字來訪問該數據源下面是測試訪問數據源代碼的JSP頁面代碼。

六. 一些註意點

  • 手動編寫jsp文件時,保存文件時,文件編碼設為utf-8,否則顯示亂碼
  • 部署配置文件跟web應用的配置文件不一樣,要區分開

tomcat的配置使用詳細版