簡介:tomcat是apache下開源的輕量級web應用伺服器,即乙個jsp/servlet容器,tomcat作為應用程式伺服器——請求來自於前端的web伺服器,比如nginx、apache等,tomcat作為獨立伺服器——請求來自於web瀏覽器;
一、基礎知識
1. tomcat目錄介紹
a. /bin:存放啟動和關閉tomcat指令碼;
b. /conf:存放各種的配置檔案,server.xml、web.xml和context.xml等;
c. /lib:存放tomcat執行時需要的庫檔案;
e. work:存放jsp編譯後產生的.calss檔案;
2. tomcat處理http請求過程
示例:http://localhost:8080/wsota/wsota_index.jsp
a. 請求被傳送到本機埠8080上,被在那裡偵聽的coyote http/1.1 connector獲得,connector的主要任務是負責接收瀏覽器發過來的tcp連線請求,建立乙個request和response物件,用於和請求端交換資料,然後產生乙個執行緒來處理這個請求並把產生的request和response物件傳給處理這個請求的執行緒;
b. connector聯結器把該請求交給它所在的service的engine來處理,並等待來自engine的回應;
c. engine獲得請求/wsota/wsota_index.jsp,匹配它所擁有的所有虛擬主機host;
d. engine匹配到名為localhost的host,若匹配不到就把請求交給預設host處理;
e. localhost host獲得請求/wsota/wsota_index.jsp,匹配它所擁有的所有context;
f. host匹配到路徑為/wsota的context,如果匹配不到就把該請求交給路徑名為」"的context去處理;
h. context匹配到url pattern為*.jsp的servlet,對應於jspservlet類;
i. 構造httpservletrequest物件和httpservletresponse物件,作為引數呼叫jspservlet的doget或dopost方法;
j. context把執行完了之後的httpservletresponse物件返回給host;
k. host把httpservletresponse物件返回給engine;
l. engine把httpservletresponse物件返回給connector;
m. connector把httpservletresponse物件返回給客戶browser。
3. 作為servler容器的工作模式分類
a. 獨立的servlet容器;
b. 程序內的servlet容器;
c. 程序外的servlet容器。
二、servlet.xml配置檔案
1. 組織結構
2. server元件
a. 是唯一頂層元素,代表整個tomcat容器,tomcat會啟動乙個jvm,可包含多個service元素,不同的service監聽不同的埠;
b. 作用是提供乙個介面讓客戶端能夠訪問到這個service集合,同時維護它所包含的所有的service的宣告週期,包括如何初始化、如何結束服務、如何找到客戶端要訪問的service;
c. shutdown屬性表示關閉server的指令,port屬性表示server接收關閉指令的埠號,預設僅允許通過本機訪問。
<3. service元件server
port
="8005"
shutdown
="shutdown"
>
a. 是把connector聯結器和engine引擎關聯在一起,每個聯結器通過乙個特定的埠和協議接收入站請求交將其**至關聯的引擎進行處理;
b. service可以包含多個connector聯結器,但是只能含乙個engine引擎;
c. name屬性表示服務的名稱。
<4. connector元件service
name
="catalina"
>
a. 將在某個指定埠上偵聽客戶請求,建立request和response物件用於和請求端交換資料,然後分配執行緒讓engine來處理這個請求,從engine處獲得回應並返回客戶;
b. connector聯結器分為http、ssl、ajp、proxy四種;
c. port屬性表示監聽的埠
protocol屬性表示聯結器使用的協議,預設的協議為http,使用的協議與tomcat版本有關,預設協議http/1.1,含義如下:在tomcat7中,自動選取bio或apr,在tomcat8中,自動選取nio或apr
acceptcount:accept佇列的長度,預設值100,當連線的個數達到最大值,則進來的請求一律被拒絕
maxconnections:tomcat在任意時刻接收和處理的最大連線數,當tomcat接收的連線數達到maxconnections時,acceptor執行緒不會讀取accept佇列中的連線;這時accept佇列中的執行緒會一直阻塞著,直到tomcat接收的連線數小於maxconnections
maxthreads:請求處理執行緒的最大數量,預設值200,如果該connector繫結了executor,這個值會被忽略;
5. engine元件
a. engine是service元件中的請求處理元件,有且僅有乙個,可以包含多個host,每個虛擬主機都有乙個網域名稱;
b. 當engine獲得乙個請求時,它把該請求匹配到某個host上,然後把該請求交給該host來處理,若沒有匹配到,則交給預設的host處理;
c. defaulthost屬性指定了預設的host名稱,name屬性用於日誌和錯誤資訊記錄時區分不同的引擎;
<6. host元件engine
defaulthost
="localhost"
name
="catalina"
>
a. host代表引擎中的乙個虛擬主機,可以有多個host,可包含多個 context,其中乙個name屬性值必須與engine中defaulthost屬性值匹配;
b. 可執行多個web應用(乙個context代表乙個web應用),並負責安裝、展開、啟動和結束每個web應用;
<7. context元件host
autodeploy
="true"
name
="localhost"
unpackwars
="true"
>
a. context代表在特定虛擬主機上執行的乙個web應用,乙個web應用由乙個或多個servlet組成;
<三、tomcat虛擬目錄對映context
docbase
path
="/rhxy"
reloadable
="false"
/>
host
>
1. 定義:虛擬目錄對映是指若想對外提供web應用訪問,就需要把web應用所在目錄交給web伺服器管理的過程;
2. 對映方式
a. 在server.xml檔案的host元素中配置context元素,缺點是檔案修改後,需要重啟伺服器才會生效;
<c. 在tomcat伺服器的/conf/catalina/localhost目錄下新增乙個以.xml作為副檔名的檔案,優點是修改配置檔案後,不用重啟tomcat;host
autodeploy
="true"
name
="localhost"
unpackwars
="true"
path
="/web"
reloadable
="false"
/>
host
>
xml version="1.0" encoding="utf-8"3. web應用組成結構?>
<
context
path
=""docbase
reloadable
="false"
/>
可參考:tomcat的server檔案配置詳解
詳解tomcat的連線數與執行緒池
手寫簡易版tomcat
Tomcat安裝與配置
3 接下來開始配置環境變數,開啟環境變數,然後新建三個系統變數 tomcat home e tomcat 6.0.39 catalina home e tomcat 6.0.39 catalina base e tomcat 6.0.39 在classpath中最後新增 tomcat home li...
Tomcat 安裝與配置
本文簡要介紹tomcat的安裝與配置。訪問官網 2 配置環境變數 catalina home。變數值為tomcat解壓後的所在資料夾。3 啟動tomcat資料夾下的bin資料夾裡的starup.s 件,出現例如以下窗體 注意不要關掉該窗體。4 開啟瀏覽器,輸入 localhost 8080,出現例如...
Apache與tomcat的配置
我的配置環境 1.ibm t23膝上型電腦 2.apache2.0.53 3.tomcat5.5.9 4.在c apache mymodules下新建乙個配置檔案workers.properties,其內容為 worker.list worker1 worker.worker1.type ajp13...