Tomcat簡介

abcbbc發表於2007-05-06
一、Tomcat背景Tomcat是jakarta專案中的一個重要的子專案,其被JavaWorld雜誌的編輯選為2001年度最具創新的java產品,同時它又是sun公司官方推薦的servlet和jsp容器,因此其越來越多的受到軟體公司和開發人員的喜愛。servlet和jsp的最新規範都可以在tomcat的新版本中得到實現。其次,Tomcat是完全免費的軟體,任何人都可以從網際網路上自由地下載。Tomcat與Apache的組合相當完美。[@more@]

二、Tomcat目錄

tomcat
|---bin Tomcat:
存放啟動和關閉tomcat指令碼

|---conf Tomcat:存放不同的配置檔案(server.xml和web.xml);
|---doc:存放Tomcat文件;
|---lib
/japser/common:存放Tomcat執行需要的庫檔案(JARS);
|---logs:存放Tomcat執行時的LOG檔案;
|---src:存放Tomcat的原始碼;
|---webapps:Tomcat的主要Web釋出目錄(包括
應用程式示例);
|---work:
存放jsp編譯後產生的class檔案

三、Tomcat類載入

Bootstrap($JAVA_HOME/jre/lib/ext/*.jar)
System($CLASSPATH/*.class
和指定的
jar)
Common($CATALINA_HOME/common
下的classes,lib,endores三個子目錄
)
Catalina ($CATALINA_HOME/server/
下的classeslib目錄僅對Tomcat可見
)
&Shared($CATALINA_HOME/shared/
下的classeslib目錄以及$CATALINA_HOME/lib目錄)僅對Web應用程式可見,Tomcat不可見WebApp($WEBAPP/Web-INF/*僅對該WEB應用可見
classes/*.class lib/*.jar)

載入類和資源的順序為:
1
/Web-INF/classes

2/Web-INF/lib/*.jar

3Bootstrap

4System

5$CATALINA_HOME/common/classes
6
$CATALINA_HOME/common/endores/*.jar

7$CATALINA_HOME/common/lib/*.jar

8$CATALINA_HOME/shared/classes
9
$CATALINA_HOME/shared/lib/*.jar

四、server.xml配置簡介

下面講述這個檔案中的基本配置資訊,更具體的配置資訊請參考tomcat的文件:
server:
1
port 指定一個埠,這個埠負責監聽關閉tomcat的請求
2
shutdown 指定向埠傳送的命令字串
service:
1
name 指定service的名字

Connector (
表示客戶端和service之間的連線)

1
port 指定伺服器端要建立的埠號,並在這個斷口監聽來自客戶端的請求
2
minProcessors 伺服器啟動時建立的處理請求的執行緒數

3
maxProcessors 最大可以建立的處理請求的執行緒數

4
enableLookups 如果為true,則可以透過呼叫request.getRemoteHost()進行DNS

詢來得到遠端客戶端的實際主機名,若為false則不進行DNS查詢,而是返回其ip

地址
5
redirectPort 指定伺服器正在處理http請求時收到了一個SSL傳輸請求後重定向的

埠號
6
acceptCount 指定當所有可以使用的處理請求的執行緒數都被使用時,可以放到處理

佇列中的請求數,超過這個數的請求將不予處理
7
connectionTimeout 指定超時的時間數(以毫秒為單位
)
Engine (
表示指定service中的請求處理機,接收和處理來自Connector的請求)

1
defaultHost 指定預設的處理請求的主機名,它至少與其中的一個host元素的name

屬性值是一樣的
Context (
表示一個web應用程式)

1
docBase 應用程式的路徑或者是WAR檔案存放的路徑
2
path 表示此web應用程式的url的字首,這樣請求的url

****
3
reloadable 這個屬性非常重要,如果為true,則tomcat會自動檢測應用程式的

/WEB-INF/lib /WEB-INF/classes目錄的變化,自動裝載新的應用程式,我們可

以在不重起tomcat的情況下改變應用程式
host (
表示一個虛擬主機)

1
name 指定主機名
2
appBase 應用程式基本目錄,即存放應用程式的目錄

3
unpackWARs 如果為true,則tomcat會自動將WAR檔案解壓,否則不解壓,直接

WAR檔案中執行應用程式
Logger (
表示日誌,除錯和錯誤資訊)

1
className 指定logger使用的類名,此類必須實現org.apache.catalina.Logger 介面
2
prefix 指定log檔案的字首

3
suffix 指定log檔案的字尾

4
timestamp 如果為true,則log檔名中要加入時間,如下

:localhost_log.2001-10-04.txt
Realm (
表示存放使用者名稱,密碼及role的資料庫)

1
className 指定Realm使用的類名,此類必須實現org.apache.catalina.Realm介面
Valve (
功能與Logger差不多,其prefixsuffix屬性解釋和Logger 中的一樣)

1
className 指定Valve使用的類名,如用org.apache.catalina.valves.AccessLogValve

類可以記錄應用程式的訪問資訊
directory
(指定log檔案存放的位置):

1
pattern 有兩個值,common方式記錄遠端主機名或ip地址,使用者名稱,日期,第一行

請求的字串,HTTP響應程式碼,傳送的位元組數。combined方式比common方式記

錄的值更多

五、web.xml配置簡介

?1、預設(歡迎)檔案的設定

? tomcat4confweb.xml中,IIS中的預設檔案意思相同。

? ?

??? index.html

??? index.htm

??? index.jsp

??

?2、報錯檔案的設定

??

???404

???/notFileFound.jsp

??

??

???java.lang.NullPointerException

???/null.jsp

??

??如果某檔案資源沒有找到,伺服器要報404錯誤,按上述配置則會呼叫webappsROOTnotFileFound.jsp

??如果執行的某個JSP檔案產生NullPointException ,則會呼叫webappsROOTnull.jsp

?3、會話超時的設定

??設定session 的過期時間,單位是分鐘;

??

???30

??

?4、過濾器的設定

??

???FilterSource

???project4. FilterSource

??

??

???FilterSource

???/WwwServlet

???(/haha/*)

??

??過濾:

??1) 身份驗證的過濾Authentication Filters

??2) 日誌和稽核的過濾Logging and Auditing Filters

??3) 圖片轉化的過濾Image conversion Filters

??4) 資料壓縮的過濾Data compression Filters

??5) 加密過濾Encryption Filters

??6) Tokenizing Filters

??7) 資源訪問事件觸發的過濾Filters that trigger resource access events XSL/T 過濾XSL/T filters

??9) 內容型別的過濾Mime-type chain Filter 注意監聽器的順序,如:先安全過濾,然後資源,

然後內容型別等,這個順序可以自己定。

六、管理
1
、使用者配置 在進行具體Tomcat管理之前,先給tomcat新增一個使用者,使這個使用者有許可權來進行管理。 開啟conf目錄下的tomcat-users.xml檔案,在相應的位置新增下面一行:
然後重起tomcat,在瀏覽器中輸入,會彈出對話方塊,輸入上面的使用者

名和密碼即可。

2
、應用程式列表 在瀏覽器中輸入list,瀏覽器將會顯示如下的資訊:
OK - Listed applications for virtual host localhost
/ex:running:1
/examples:running:1
/webdav:running:0
/tomcat-docs:running:0
/manager:running:0
/:running:0
上面顯示的資訊分別為:應用程式的路徑、當前狀態、連線這個程式的session


3
、重新裝載應用程式 在瀏覽器中輸入 reload?path=/examples,瀏覽器顯示如下:
OK - Reloaded application at context path /examples

這表示example應用程式裝載成功,如果我們將server.xmlContext元素的reloadable屬性設為true,則沒必要利用這種方式重新裝載應用程式,因為tomcat會自動裝載。

4、顯示session資訊 在瀏覽器中輸入sessions?path=/examples,瀏覽器顯示如下:
OK - Session information for application at context path /examples Default maximum session inactive

interval 30 minutes

5
、啟動和關閉應用程式 在瀏覽器中輸入

分別啟動和關閉examples應用程式。

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/219138/viewspace-913789/,如需轉載,請註明出處,否則將追究法律責任。