一
簡介
tomcat是jakarta項目中的一個重要的子項目
其被JavaWorld雜志的編輯選為
年度最具創新的java產品(Most Innovative Java Product)
同時它又是sun公司官方推薦的servlet和jsp容器(具體可以見)
因此其越來越多的受到軟件公司和開發人員的喜愛
servlet和jsp的最新規范都可以在tomcat的新版本中得到實現
二
安裝及配置
tomcat最新版本為
這個版本用了一個新的servlet容器Catalina
完整的實現了servlet
和jsp
規范
注意安裝之前你的系統必須安裝了jdk
以上版本
(一)
安裝
windows平台
從tomcat網站下載jakarta
tomcat
exe
按照一般的windows程序安裝步驟即可安裝好tomcat
安裝時它會自動尋找你的jdk和jre的位置
linux平台
下載jakarta
tomcat
tar
gz
將其解壓到一個目錄
(二)
配置
運行tomcat需要設置JAVA_HOME變量
set JAVA_HOME=c:/jdk (win
在msdos方式下使用
或者放入autoexec
bat中)
export JAVA_HOME=/usr/local/jdk (linux下使用
放到/etc/bashrc或者/etc/profile中)
(三)
運行
設置完畢後就可以運行tomcat服務器了
進入tomcat的bin目錄
win
下用startup啟動tomcat
linux下用startup
sh
相應的關閉tomcat的命令為shutdown和shutdown
sh
啟動後可以在浏覽器中輸//localhost:
/測試
由於tom
穑旅婊峤樯堋?/a>
下面你可以測試其自帶的jsp和servlet示例
三
應用
(一):目錄結構
tomcat的目錄結構如下
目錄名: 簡介
bin : 存放啟動和關閉tomcat腳本
conf : 包含不同的配置文件
server
xml(Tomcat的主要配置文件)和web
xml
work : 存放jsp編譯後產生的class文件
webapp: 存放應用程序示例
以後你要部署的應用程序也要放到此目錄
logs : 存放日志文件
lib/japser/common : 這三個目錄主要存放tomcat所需的jar文件
(二)
server
xml配置簡介
下面我們將講述這個文件中的基本配置信息
更具體的配置信息見tomcat的文檔
server:
port 指定一個端口
這個端口負責監聽關閉tomcat的請求
shutdown 指定向端口發送的命令字符串
service:
name 指定service的名字
Connector (表示客戶端和service之間的連接):
port 指定服務器端要創建的端口號
並在這個斷口監聽來自客戶端的請求
minProcessors 服務器啟動時創建的處理請求的線程數
maxProcessors 最大可以創建的處理請求的線程數
enableLookups 如果為true
則可以通過調用request
getRemoteHost()進行DNS查詢來得到遠程客戶端的實際主機名
若為false則不進行DNS查詢
而是返回其ip地址
redirectPort 指定服務器正在處理http請求時收到了一個SSL傳輸請求後重定向的端口號
acceptCount 指定當所有可以使用的處理請求的線程數都被使用時
可以放到處理隊列中的請求數
超過這個數的請求將不予處理
connectionTimeout 指定超時的時間數(以毫秒為單位)
Engine (表示指定service中的請求處理機
接收和處理來自Connector的請求):
defaultHost 指定缺省的處理請求的主機名
它至少與其中的一個host元素的name屬性值是一樣的
Context (表示一個web應用程序
通常為WAR文件
關於WAR的具體信息見servlet規范):
docBase 應用程序的路徑或者是WAR文件存放的路徑
path 表示此web應用程序的url的前綴
這樣請求的//localhost:
/path/****
reloadable 這個屬性非常重要
如果為true
則tomcat會自動檢測應用程序的/WEB
INF/lib 和/WEB
INF/classes目錄的變化
自動裝載新的應用程序
我們可以在不重起tomcat的情況下改變應用程序
host (表示一個虛擬主機):
name 指定主機名
appBase 應用程序基本目錄
即存放應用程序的目錄
unpackWARs 如果為true
則tomcat會自動將WAR文件解壓
否則不解壓
直接從WAR文件中運行應用程序
Logger (表示日志
調試和錯誤信息):
className 指定logger使用的類名
此類必須實現org
apache
catalina
Logger 接口
prefix 指定log文件的前綴
suffix 指定log文件的後綴
timestamp 如果為true
則log文件名中要加入時間
如下例:localhost_log
txt
Realm (表示存放用戶名
密碼及role的數據庫):
className 指定Realm使用的類名
此類必須實現org
apache
catalina
Realm接口
Valve (功能與Logger差不多
其prefix和suffix屬性解釋和Logger 中的一樣):
className 指定Valve使用的類名
如用org
apache
catalina
valves
AccessLogValve類可以記錄應用程序的訪問信息
directory 指定log文件存放的位置
pattern 有兩個值
common方式記錄遠程主機名或ip地址
用戶名
日期
第一行請求的字符串
HTTP響應代碼
發送的字節數
combined方式比common方式記錄的值更多
注意
經過我測試
我設置Context 的path=
reloadable=true
然後放一個WAR文件到webapps目錄
結果tomcat不能檢測出此文件(重起tomcat可以)
而把此文件解壓
則tomcat會自動檢測出這個新的應用程序
如果不能自動檢測WAR文件
我們可以利用下面管理中講的方法來部署應用程序
默認的server
xml中
Realm元素只設置了一個className屬性
但此文件中也包含幾個通過JDBC連接到數據庫進行驗證的示例(被注釋掉了)
通過Realm元素我們可以實現容器安全管理(Container Managed Security)
還有一些元素我們沒有介紹
如Parameter
loader
你可以通過tomcat的文檔獲取這些元素的信息
(三)
管理
配置
在進行具體的管理之前
我們先給tomcat添加一個用戶
使這個用戶有權限來進行管理
打開conf目錄下的tomcat
users
xml文件
在相應的位置添加下面一行
注意
這一行的最後部分一定是/>
tomcat的文檔掉了/符號
如果沒有/符號的話
tomcat重起時將無法訪問應用程序
通過logs/catalina
out文件你可以看到這個錯誤的詳細信息
然後重起tomcat
在浏覽器中輸//localhost:
/manager/
會?
兔苈爰純傘?/a>
應用程序列表
在浏覽器中輸入允救缦碌男畔ⅲ?/a>
OK
Listed applications for virtual host localhost
/ex:running:
/examples:running:
/webdav:running:
/tomcat
docs:running:
/manager:running:
/:running:
上面的信息分別為應用程序的路徑
當前狀態(running 或者stopped)
與這個程序相連的session數
重新裝載應用程序
在浏覽器中輸入 榔飨允救缦攏?/a>
OK
Reloaded application at context path /examples
表示example應用程序裝載成功
如果我們將server
xml的Context元素的reloadable屬性設為true(見上面表格)
則沒必要利用這種方式重新裝載應用程序
因為tomcat會自動裝載
顯示session信息
在浏覽器中輸入榔飨允救缦攏?/a>
OK
Session information for application at context path /examples Default maximum session inactive interval
minutes
啟動和關閉應用程序
在浏覽器中輸入應用程序
部署及撤銷部署
WAR有兩種組織方式
一種是按一定的目錄結構組織文件
一種是一個後綴為WAR的壓縮包
因此它的部署方式也有兩種
(
)
在浏覽器中輸入
就會將按目錄結構組織的WAR部署
(
)
如果輸入:!/
就會將按壓縮包組織的WAR部署
注意此url後半部分一定要有!/號
部署後就可以用//localhost:
/examples訪問了
在浏覽器中輸入//localhost:
/manager/remove?path=/examples 就會撤銷剛才部署的應用程序
(四)
與apache集成
雖然tomcat也可以作web服務器
但其處理靜態html的速度比不上apache
且其作為web服務器的功能遠不如apache
因此我們想把apache和tomcat集成起來
我們以linux系統為例介紹
從apache網站下載apache
源代碼版本
然後使用如下命令配置安裝apache
mkdir /usr/local/apache
tar zxvf apache
tar
gz
cd apache
/configure
prefix=/usr/local/apache
enable
module=so
make
make install
注意configure命令指定目標安裝目錄
並且加入DSO(Dynamic Shared Object)支持
注意一定不要忘了這一個選項
然後下載webapp模塊
將解壓後mod_webapp
so文件放入apache的libexec目錄
編輯apache的conf目錄下的
在這個文件的最後加入下面三行
LoadModule webapp_module libexec/mod_webapp
so
WebAppConnection warpConnection warp localhost:
WebAppDeploy examples warpConnection /examples/
第一行是加入webapp模塊
如果編譯apache時不增加DSO支持
則無法使用LoadModule指令
第二行指定tomcat與apache的連接
第三行指定部署那個應用
這兩個指令使用格式如下
WebAppConnection [connection
From:http://tw.wingwit.com/Article/program/Oracle/201311/16586.html