官术网_书友最值得收藏!

1.2 Tomcat服務器

Tomcat服務器是Apache Jakarta項目組開發的產品。當前的最新版本是Tomcat 8,它能夠支持Servlet 3.1和JSP 2.3規范,并且具有免費和跨平臺等諸多特性,是學習開發Java Web應用的首選服務器。由于到目前為止,Tomcat 8還是Alpah版,不推薦在產品中使用,所以本書中采用的是Tomcat 7.0版本,該版本是一個比較成熟的版本。下面將以Tomcat 7.0.47為例介紹下載與調試Tomcat的具體步驟。

實例006 下載Tomcat服務器

初級

實用指數:

實例說明

Tomcat歸于Apache基金組織下,其應用范圍很廣泛,既可用來學習Java Web開發,也可以用來構架各類中小型商業應用。本書使用的Tomcat 7已經實現了Java EE 6中Web層的各種規范。

設計過程

(1)在IE瀏覽器地址欄中輸入“http://tomcat.apache.org”,進入到Tomcat官方網站,如圖1.19所示。

圖1.19 Tomcat官方網站首頁

(2)在左側的Download列表中可以下載Tomcat服務器的各種版本。單擊Tomcat 7.0超鏈接,進入到Tomcat 7.0版本的下載頁面中,找到如圖1.20所示的下載位置。

圖1.20 Tomcat 7.0的下載頁面

(3)在圖1.17中,在Core節點中包含了Tomcat 7.0服務器安裝文件的不同平臺下的不同版本,此處單擊的是32-bit/64-bit Windows Service Installer(pgp,md5)超鏈接,單擊該鏈接可下載安裝版本的Tomcat,然后將打開文件下載對話框,在對話框中單擊“保存”按鈕,即可將Tomcat的安裝文件下載到本地計算機中。

實例007 安裝Tomcat服務器

初級

實用指數:

實例說明

本實例將介紹如何安裝Tomcat服務器。Tomcat安裝文件下載完畢后,就可以通過該文件安裝Tomcat服務器。

設計過程

(1)雙擊apache-tomcat-7.0.47.exe,彈出安裝向導界面(如圖1.21所示),單擊Next按鈕,打開Apache的許可協議對話框。

圖1.21 安裝向導界面

(2)單擊I Agree同意協議,打開Apache的主程序與組件安裝對話框,在該對話框中選擇要安裝的組件,如圖1.22所示。

圖1.22 Apache的主程序與組件安裝對話框

(3)單擊Next按鈕,在打開的對話框中設置訪問Tomcat服務器的端口及用戶名和密碼,通常設置端口為8080、用戶名為admin、密碼為111,如圖1.23所示。

圖1.23 設置端口號和用戶名及密碼

說明:一般情況下,不要修改默認的端口號,除非8080端口已經被占用。

(4)單擊Next按鈕,在打開的Java Virtual Machine對話框中選擇Java虛擬機路徑,這里選擇JDK的安裝路徑,如圖1.24所示。

圖1.24 選擇Java虛擬機路徑

(5)單擊Next按鈕,將打開Choose Install Location對話框。在該對話框中可通過單擊Browse按鈕更改Tomcat的安裝路徑,這里將其更改為C:\Program Files\Tomcat 7.0目錄下,如圖1.25所示。

圖1.25 更改Tomcat的安裝路徑

(6)單擊Install按鈕,開始安裝Tomcat。在打開安裝完成的提示對話框中,取消選中Run Apache Tomcat和Show Readme復選框,單擊Finish按鈕,即可完成Tomcat的安裝。

(7)Tomcat服務器安裝成功后,在Tomcat的安裝目錄下會出現7個文件夾和4個文件,如圖1.26所示。

圖1.26 Tomcat的目錄結構

實例008 啟動Tomcat并測試

光盤位置:光盤\MR\01\008

初級

實用指數:

實例說明

熟悉Tomcat服務器的內部結構后,可以啟動Tomcat服務器來測試Tomcat是否能夠成功運行。

設計過程

(1)啟動Tomcat。選擇“開始”/“所有程序”/Apache Tomcat 7.0 Tomcat 7/Monitor Tomcat命令,在任務欄右側的系統托盤中將出現圖標,在該圖標上單擊鼠標右鍵,在打開的快捷菜單中選擇Start service命令,啟動Tomcat。

(2)打開IE瀏覽器,在地址欄中輸入地址“http://localhost:8080”訪問Tomcat服務器,若出現如圖1.27所示的頁面,則表示Tomcat安裝成功。

圖1.27 Tomcat的啟動界面

實例009 通過Eclipse部署與發布Web應用

光盤位置:光盤\MR\01\009

初級

實用指數:

實例說明

本實例介紹如何在Eclipse中部署Web應用,以及在Eclipse中啟動Tomcat服務器的具體方法。

設計過程

(1)打開Eclipse,在菜單中創建一個動態Web項目,如圖1.28所示。

圖1.28 創建動態Web項目

(2)選擇Dynamic Web Project命令后,打開New Dynamic Web Project窗口,在Project name文本框中輸入項目名稱,如圖1.29所示。

圖1.29 New Dynamic Web Project窗口

(3)單擊New Runtime按鈕,新建一個運行時服務器,將彈出如圖1.30所示的對話框。在該對話框中選擇Apache/Apache Tomcat v7.0選項,單擊“下一步”按鈕,打開指定安裝目錄窗口,如圖1.31所示。

圖1.30 新建服務器運行時窗口

圖1.31 指定安裝目錄

說明:由于前面下載的是Tomcat 7.0.47版本,所以此處選擇Apache Tomcat v7.0選項,與下載的版本相對應。

(4)單擊Browse按鈕,顯示“瀏覽文件夾”對話框,在該對話框中選擇Tomcat的根目錄,如圖1.32所示,單擊“確定”按鈕,返回到指定安裝目錄對話框,單擊“完成”按鈕,完成運行時服務器的創建,返回到New Dynamic Web Project窗口中。

圖1.32 “瀏覽文件夾”對話框

說明:如果在Eclipse中,已經創建過運行時服務器,那么上面的步驟(3)和(4)可以省略。

(5)這時,在Target runtime下拉列表中將自動選擇新創建的運行時服務器。單擊“完成”按鈕,項目創建成功。此時,可以在Eclipse的項目資源管理器中查看到已經創建的項目“1.1”,如圖1.33所示。

圖1.33 項目創建成功

(6)在Eclipse的項目資源管理器中,選中WebContent文件夾并單擊鼠標右鍵,在彈出的快捷菜單中選擇“新建”/JSP File命令,打開New JSP File窗口。在該窗口的“文件名”文本框中輸入文件名index.jsp,其他采用默認,如圖1.34所示。

圖1.34 創建index.jsp頁面

(7)單擊“完成”按鈕,在Eclipse中打開index.jsp頁面的代碼窗口,在此頁面中編寫輸出“歡迎來到明日圖書網”的內容,代碼如下:

        <%@ page language="java" contentType="text/html; charset=UTF-8"
          pageEncoding="UTF-8"%>
        <! DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
        <html>
        <head>
        <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
              <title>Hello Welcome to MR</title>
              </head>
              <body>
                  <center>歡迎來到明日圖書網</center>
              </body>
        </html>

(8)在項目名稱節點上單擊鼠標右鍵,在彈出的快捷菜單中選擇“運行方式”/Run on Server命令,即可啟動Tomcat服務器運行本項目,運行結果如圖1.35所示。

圖1.35 運行結果

實例010 修改Tomcat服務器的端口號

初級

實用指數:

實例說明

本實例主要介紹修改Tomcat端口號的方法,以及當端口號發生沖突時如何解決。

關鍵技術

Connector子元素下的port是設置服務器端口,而connection Timeout則是服務器連接超時,單位為毫秒。

設計過程

(1)使用記事本打開Tomcat安裝目錄下的conf文件夾下的servlet.xml文件。

(2)在servlet.xml文件中找到以下代碼:

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

(3)將上面代碼中的port="8080"修改為port="8081",即可將Tomcat的默認端口設置為8081。在修改端口時,應避免與公用端口沖突。建議采用默認的8080端口,不要修改,除非8080端口被其他程序所占用。

(4)修改成功后,為了使新設置的端口生效,還需要重新啟動Tomcat服務器。

(5)將Tomcat端口號更改為8081后,重新啟動的界面如圖1.36所示。

圖1.36 更改端口號后重新啟動的界面

實例011 配置Tomcat的虛擬主機

初級

實用指數:

實例說明

本實例介紹如何配置Tomcat的虛擬主機。

關鍵技術

關于server.xml中Host這個元素,只有在設置虛擬主機時才需要修改。虛擬主機是一種在一個Web服務器上服務多個域名的機制,對每個域名而言,都好像獨享了整個主機。實際上,大多數的小型商務網站都是采用虛擬主機實現的,這主要是因為虛擬主機能直接連接到Internet并提供相應的帶寬,以保障合理的訪問響應速度。另外,虛擬主機還能提供一個穩定的固定IP。

設計過程

(1)打開Tomcat根目錄下的conf文件夾,然后用記事本打開server.xml文件,并在其中添加如下代碼:

        <host name="www.example.com" appBase="/home/example/webapp">
        <Context path=""docBase="."/></host>

(2)Tomcat的server.xml文件在初始狀態下,只包括一個虛擬主機,但是它很容易被擴充到支持多個虛擬主機。上面展示的是一個簡單的server.xml版本,其中粗體部分就是用于添加一個虛擬主機。每一個Host元素必須包括一個或多個context元素,所包含的context元素中必須有一個是默認的context,這個默認的context的顯示路徑應該為空(例如,path=“”)。

實例012 在Tomcat下如何手動部署Web應用

初級

實用指數:

實例說明

通過對Tomcat目錄的了解可知,webappas文件夾是存放工程包的位置。本實例主要介紹如何手動部署Web應用。

關鍵技術

這種context片段提供了一種便利的方法來部署Web應用,不需要編輯server.xml,除非想改變默認的部署特性,在安裝一個新的Web應用時不需要重新啟動Tomcat。

設計過程

(1)復制war文件或者Web應用文件夾(包括Web下所有內容)到$CATALINA_BASE\webapps目錄下。

(2)為Web服務建立一個只包括context內容的XML片段文件,并把該文件放到$CATALINA_BASE\webapps目錄下,這個Web應用文件本身可以存儲在硬盤的任何地方。

(3)部署Web應用文件的另一種方式是寫一個Context XML片段文件,然后把該文件復制到$CATALINA_BASE\webapps目錄下。一個Context片段并不是一個完整的XML文件,只是一個context元素,以及對該應用文件的相應描述。這種片段文件就像是從server.xml中提取出來的context元素一樣,所以這種片段被命名為“context片段”。如果想部署一個名叫MyWeb.war的應用文件,該應用文件使用realm作為訪問控制方式,可以使用下面這個片段并添加以下代碼:

        <context path="/demo"docBase="webapps/MyWeb.war"debug="0"privileged="true">
        <Realm className="org.apache.catalina.realm.UserDatabaseRealm"  resourceName="UserDatabase"/>
        </context>

實例013 Tomcat如何制定主機訪問

初級

實用指數:

實例說明

有時需要限制對Tomcat Web應用的訪問,如只有指定的主機或IP地址可以訪問指定的應用。這樣一來,就只有那些指定的客戶端可以訪問服務的內容。本實例將介紹如何在Tomcat下制定主機訪問。

關鍵技術

Tomcat提供了兩個參數供用戶配置,即RemoteHostValve和RemoteAddrValve。通過配置這兩個參數,可以過濾來自請求的主機或IP地址,并允許或拒絕哪些主機/IP。

設計過程

(1)在Apache的httpd文件中有對每個目錄的允許/拒絕指定,如可以把Admin Web application設置成只允許本地訪問,代碼如下:

        <context path="/path/to/secret_files"...>
              <Valve className="org.apache.catalina.valves.RemoteAddrValve"allow="127.0.0.1"deny=""/>
        </context>

(2)如果沒有給出允許主機的指定,那么與拒絕主機匹配的主機就會被拒絕,除此之外的都是允許的。與之類似,如果沒有給出拒絕主機的指定,那么與允許主機匹配的主機就會被允許,除此之外的都是拒絕的。

實例014 Tomcat如何添加管理員

初級

實用指數:

實例說明

為Tomcat添加管理員,在Tomcat界面化管理平臺中可以看到所有加載的工程包,以及運行的平臺,還可以對項目進行管理,如刪除和添加,來實現對服務器的維護與更新。

設計過程

(1)打開Tomcat 7.0目錄下的conf文件夾中的tomcat-users.xml文件,添加以下代碼:

          <user username="zm" password="zm" roles="admin-gui, manager-gui"/>

(2)重新啟動Tomcat。在IE瀏覽器的地址欄中輸入“http://localhost:8080/manager”,在打開的界面中輸入剛剛添加的賬號和密碼,如圖1.37所示。

圖1.37 登錄Tomcat界面

(3)登錄之后即可進入到如圖1.38所示的Tomcat Web應用管理頁面。在該頁面中可以對項目進行添加與刪除管理。

圖1.38 登錄Tomcat之后的界面

實例015 Tomcat常用的優化技巧

初級

實用指數:

實例說明

本實例介紹的是如何優化Tomcat服務器,如果用戶并發量小,系統可能不會出問題,但是并發量大時,系統反應速度迅速下降,由于不了解原因拼命在自己的應用中尋找問題,從而浪費了寶貴的時間。下面來看看Tomcat是如何優化的。

設計過程

(1)屏蔽DNS查詢

Web應用程序可以通過Web容器提供的getRemoteHost()方法獲得訪問Web應用客戶的IP地址和名稱,但是這樣會消耗Web容器的資源,并且還需要通過IP地址和DNS服務器反查用戶的名字。因此當系統上線時,可以將這個屬性關閉,從而減少資源消耗,那么Web應用也就只能記錄下IP地址。修改的屬性是enableLoopups="false"。

(2)調整線程數

Tomcat通過線程池來為用戶訪問提供響應,對于上線的系統初步估計用戶并發數量后,再調整線程池容量。例如,用戶并發數量在100左右時,可以設置minProcessors="100",maxProcessors="100"。將最大和最小設置為一樣后,線程池不會再釋放空閑的線程,當用戶訪問突然增加時,不需要再消耗系統資源去創建新的線程。

(3)調整最大連接數

這個其實最復雜,即使用戶并發量大,但是系統反應速度快,也沒必要把這個值設置太高,高了系統需要消耗大量的資源去切換線程,但是如果設置太低也會造成應用無法滿足用戶并發需要。因此設置這個最好能夠結合整個系統的跟蹤與調優,使系統達到最好的平穩狀態,一般設置為maxProcessors的1.5倍即可。

(4)調整網絡超時

主要是HTTP協議也有個連接過程,客戶端連接到服務器上后,如果長時間沒有得到處理就會被釋放。如果服務器處理速度較慢,但是希望每個用戶都能得到有效處理,或者網絡環境不好,需要保證用戶不會因為超時中斷,也可以把時間加長。但是一般設置成connectionTimeout="30000"即可。太長對系統來說價值不大,反而會浪費系統資源在無謂的長連接上。

(5)具體修改如下

? minProcessors:最小空閑連接線程數,用于提高系統處理性能,默認值為10。

? maxProcessors:最大連接線程數,即并發處理的最大請求數,默認值為75。

? acceptCount:允許的最大連接數,應大于等于maxProcessors,默認值為100。

? enableLookups:是否反查域名,取值為true或false。為了提高處理能力,應設置為false。

? connectionTimeout:網絡連接超時,單位為毫秒。設置為0表示永不超時,但這樣設置存在隱患,通??稍O置為20000毫秒。

主站蜘蛛池模板: 吴川市| 翼城县| 黎川县| 西安市| 当阳市| 沙洋县| 大竹县| 舟曲县| 黑龙江省| 曲靖市| 焉耆| 罗田县| 珠海市| 双柏县| 迁安市| 沙河市| 房山区| 青海省| 年辖:市辖区| 独山县| 临澧县| 汤阴县| 石阡县| 公安县| 高平市| 渭南市| 册亨县| 克什克腾旗| 竹山县| 杭州市| 石柱| 江津市| 宁阳县| 乌鲁木齐县| 临沧市| 包头市| 神农架林区| 沙田区| 芦溪县| 天全县| 千阳县|