How Tomcat Works中文版01

最近抽時(shí)間想說(shuō)來(lái)把How Tomcat Works翻譯看看鹉动,能翻多少算多少吧,以下是書(shū)的內(nèi)容:

Introduction

綜述:

歡迎來(lái)到How Tomcat Works宏邮,該書(shū)剖析Tomcat并解釋了它其中名為Catalina的Servlet容器的工作原理泽示,它免費(fèi),開(kāi)源并且最為流行蜜氨。Tomcat是一個(gè)復(fù)雜系統(tǒng)械筛,由許多不同組件組成。那些想要學(xué)習(xí)Tomcat的人往往知道從哪開(kāi)始飒炎。這本書(shū)先是整體埋哟,然后詳細(xì)解釋各部分,這樣才會(huì)印象深刻郎汪。

???????? 你應(yīng)該閱讀這個(gè)綜述應(yīng)該它解釋了書(shū)的結(jié)構(gòu)赤赊,并且給你簡(jiǎn)短介紹了所需的軟件闯狱。Preparing the Prerequisite Software部分會(huì)建議你下載哪些軟件,如何組織你的代碼結(jié)構(gòu)砍鸠,ETC.


這本書(shū)寫(xiě)給:

這本書(shū)寫(xiě)給所有的JAVA工作者扩氢。

為了更好的閱讀此書(shū)耕驰,你需要理解面向?qū)ο缶幊桃瑁瑂ervlet編程。如果你對(duì)servlet不熟悉朦肘,推薦看一本書(shū):Budi’s JAVA for the web with servlets, jsp and ejb饭弓。為了更好的理解主題,每章都會(huì)有背景信息媒抠。


Servlet容器如何工作:

Servlet容器是個(gè)復(fù)雜系統(tǒng)弟断,主要是為了servlet能響應(yīng)請(qǐng)求,主要由三部分組成:

[if !supportLists]1.??????[endif]創(chuàng)建一個(gè)request對(duì)象趴生,并綁定會(huì)被servlet用到的信息阀趴,比如參數(shù),請(qǐng)求頭苍匆,cookies刘急,查詢(xún)字符串,URI等等浸踩。這個(gè)request對(duì)象實(shí)現(xiàn)了javax.servlet.ServletRequest或者javax.servlet.http.ServletRequest接口叔汁。

[if !supportLists]2.??????[endif]創(chuàng)建一個(gè)response對(duì)象,servlet會(huì)用它來(lái)向web客戶(hù)端發(fā)送響應(yīng)检碗。這個(gè)response對(duì)象實(shí)現(xiàn)了javax.servlet.ServletResponse或者java.servlet.http.ServletResponse對(duì)象据块。

[if !supportLists]3.??????[endif]調(diào)用servlet的服務(wù)方法,傳遞request和response折剃,在這里servlet可以閱讀request的值另假,還可以把值寫(xiě)入response對(duì)象。

接下來(lái)會(huì)有對(duì)Catalina Servlet容器的詳細(xì)闡述怕犁。


Catalina塊狀圖

???????? Catalina是一個(gè)精致的軟件浪谴,它的設(shè)計(jì)和構(gòu)成很高級(jí),并且模塊化因苹」冻埽“How a Servlet Container works”章節(jié)將會(huì)介紹其基本任務(wù),你會(huì)發(fā)現(xiàn)它其實(shí)由兩大部分組成:Connector和Container.

特征1:Catalina的主體部分

???????? Connector是連接某個(gè)請(qǐng)求和container的扶檐,它的任務(wù)是為了它接收的每個(gè)http請(qǐng)求構(gòu)建一個(gè)請(qǐng)求對(duì)象以及凶杖,一個(gè)response對(duì)象。然后它會(huì)交給container進(jìn)行加工款筑。Container接收后會(huì)調(diào)用servlet的方法智蝠。

???????? 請(qǐng)記住腾么,這個(gè)介紹只能說(shuō)是冰山一角。Container做了許多許多的事情杈湾,比如:在它調(diào)用servlet的方法之前解虱,它必須要先加載servlet,識(shí)別用戶(hù)權(quán)限漆撞,刷新用戶(hù)session殴泰,所以它會(huì)用到許多不同的模塊去處理也不足為奇了。比如說(shuō):管理員模塊是用來(lái)管理用戶(hù)session浮驳,裝載模塊是用來(lái)裝載servlet的悍汛。


Tomcat4和Tomcat5

???????? 這段不想翻,沒(méi)啥意思


各章綜述

???????? 這本書(shū)共有20章至会。開(kāi)始前兩章是介紹离咐。第一章解釋了一個(gè)HTTP服務(wù)器是怎么工作的,第二章講一個(gè)簡(jiǎn)單的容器奉件。第三宵蛀、四章講connector,五~二十章講容器的每個(gè)組件县貌,以下是各章的概述术陶。

???????? 值得注意的是,每一章都會(huì)用一個(gè)示例應(yīng)用去介紹相應(yīng)的組件窃这。


第一章

???????? 作為書(shū)的開(kāi)頭瞳别,講一個(gè)簡(jiǎn)單的HTTP服務(wù)器,去做一個(gè)能夠正常工作的HTTP服務(wù)器杭攻,你需要了解其內(nèi)部?jī)蓚€(gè)java類(lèi):Socket和ServerSocket祟敛。這是一個(gè)有用的提示,為了你能更好的理解服務(wù)器是如何工作的兆解。


第二章:

???????? 解釋一個(gè)簡(jiǎn)單的servlet容器是如何工作的馆铁。這一章也會(huì)講兩個(gè)簡(jiǎn)單例子,一個(gè)能夠訪問(wèn)靜態(tài)資源锅睛,一個(gè)能夠響應(yīng)簡(jiǎn)單的servlet埠巨,特別是你會(huì)學(xué)到如何創(chuàng)建request和response對(duì)象并把它們傳給相應(yīng)的servlet方法。當(dāng)然现拒,你可以從瀏覽器來(lái)調(diào)用servlet容器中的某一個(gè)servlet辣垒。


第三章:

???????? 講一個(gè)Tomcat4默認(rèn)connector的簡(jiǎn)化版本,這一章會(huì)做一個(gè)應(yīng)用印蔬,相當(dāng)于是給第四章做鋪墊了勋桶。


第四章:

???????? 講Tomcat4的默認(rèn)connector,這個(gè)connector后面因?yàn)樗俣葐?wèn)題被一個(gè)叫Coyote的connector取代了。恩例驹。捐韩。。所以這個(gè)connector更簡(jiǎn)單鹃锈,更好理解荤胁,更易于入門(mén)。


第五章:

???????? 討論container模塊屎债,這個(gè)模塊實(shí)現(xiàn)了org.apache.catalina.Container接口仅政,container有四種類(lèi)型:engine,host,context,wrapper。這章用context和wrapper做了兩個(gè)應(yīng)用扔茅。


第六章:

???????? 解釋Lifecycle接口已旧,這個(gè)接口定義了catalina組件的生命周期秸苗,還提供了一種發(fā)送通知給其他組件的高級(jí)方式召娜。另外,這個(gè)接口有一個(gè)全局的開(kāi)始惊楼、停止機(jī)制玖瘸,可以同時(shí)開(kāi)始、停止所有組件檀咙。


第七章:

???????? 講loggers雅倒,是一個(gè)記錄錯(cuò)誤和其他信息的模塊。


第八章:

???????? 講loaders弧可,是catalina的重要部分蔑匣,負(fù)責(zé)加載servlet和web應(yīng)用會(huì)用到的其他類(lèi)。同時(shí)棕诵,這章也講了如何去重新加載servlet裁良。


第九章:

???????? 講manager,管理會(huì)話的組件校套。許多不同類(lèi)型的manager价脾,以及如何持久化存儲(chǔ)會(huì)話對(duì)象。在這章結(jié)尾笛匙,會(huì)教你做一個(gè)簡(jiǎn)單應(yīng)用侨把,用標(biāo)準(zhǔn)版manager,跑一個(gè)servlet妹孙,并且用會(huì)話對(duì)象去存值秋柄。


第十章:

???????? 講web應(yīng)用安全,主要是限制訪問(wèn)某個(gè)部分的內(nèi)容蠢正,你會(huì)學(xué)到:principles,roles,login config,authenticators等等骇笔。你會(huì)寫(xiě)兩個(gè)應(yīng)用,有權(quán)限過(guò)濾,用到StandardContext蜘拉,有基本的用戶(hù)權(quán)限功能萨西。


第十一章:

???????? 詳細(xì)解釋StandardWrapper,在web應(yīng)用中它用來(lái)一個(gè)servlet旭旭。這章會(huì)特別提到怎么過(guò)濾谎脯,servlet的方法怎么被調(diào)用。這章的應(yīng)用會(huì)用StandardWrapper做持寄。


第十二章:

???????? 詳細(xì)解釋StandardContext源梭,它代表一個(gè)web應(yīng)用。討論一個(gè)StandardContext如何配置稍味,當(dāng)每個(gè)HTTP請(qǐng)求時(shí)它內(nèi)部是如何工作的废麻,它是如何支持自動(dòng)重載的,以及如何與關(guān)聯(lián)組件如何分享定時(shí)任務(wù)線程模庐。


第十三章:

???????? 講StandardEngine和StandardHost烛愧。


第十四章:

???????? Server和service組件,server負(fù)責(zé)啟動(dòng)和停止整個(gè)servlet容器掂碱,service負(fù)責(zé)掌控住一個(gè)容器和多個(gè)connector怜姿。這章的應(yīng)用會(huì)告訴我們?cè)趺从胹erver和service.


第十五章:

???????? 通過(guò)digester解析一個(gè)web應(yīng)用的配置,digester是apache基金會(huì)的一個(gè)牛逼項(xiàng)目疼燥。它可以通過(guò)digester庫(kù)把XML里面的節(jié)點(diǎn)解析成java對(duì)象沧卢。然后會(huì)介紹StandardContext的配置對(duì)象ContextConfig.


第十六章:

???????? Tomcat的結(jié)束回調(diào)配件,通常在這個(gè)時(shí)候我們會(huì)對(duì)Tomcat做一次大掃除醉者。


第十七章:

???????? 介紹用批處理文件或者終端命令來(lái)控制Tomcat的啟停但狭。


第十八章:

???????? 介紹deployer,用來(lái)部署和安裝web應(yīng)用的組件撬即。


第十九章:

???????? 介紹一個(gè)特殊接口:ContainerServlet立磁,它提供了一種訪問(wèn)catalina內(nèi)部對(duì)象的方式。尤其是搞莺,還要介紹Manager應(yīng)用息罗,用來(lái)管理部署好的web應(yīng)用。


第二十章:

???????? 介紹JMX才沧,以及Tomcat如何通過(guò)MBeans來(lái)管理其內(nèi)部的對(duì)象迈喉。


每一章的app

???????? 每一章都會(huì)有一到兩個(gè)app,來(lái)介紹catalina的某一個(gè)組件温圆。通常挨摸,你會(huì)看到一個(gè)簡(jiǎn)化版本,或者是如何去用catalina組件的一段代碼岁歉。所有類(lèi)和接口都不會(huì)超過(guò)上一章的范圍得运。


好了膝蜈,請(qǐng)把要用的軟件安裝好。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末熔掺,一起剝皮案震驚了整個(gè)濱河市饱搏,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌置逻,老刑警劉巖推沸,帶你破解...
    沈念sama閱讀 211,376評(píng)論 6 491
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異券坞,居然都是意外死亡鬓催,警方通過(guò)查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,126評(píng)論 2 385
  • 文/潘曉璐 我一進(jìn)店門(mén)恨锚,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)宇驾,“玉大人,你說(shuō)我怎么就攤上這事猴伶】紊幔” “怎么了?”我有些...
    開(kāi)封第一講書(shū)人閱讀 156,966評(píng)論 0 347
  • 文/不壞的土叔 我叫張陵蜗顽,是天一觀的道長(zhǎng)布卡。 經(jīng)常有香客問(wèn)我雨让,道長(zhǎng)雇盖,這世上最難降的妖魔是什么? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 56,432評(píng)論 1 283
  • 正文 為了忘掉前任栖忠,我火速辦了婚禮崔挖,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘庵寞。我一直安慰自己狸相,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,519評(píng)論 6 385
  • 文/花漫 我一把揭開(kāi)白布捐川。 她就那樣靜靜地躺著脓鹃,像睡著了一般。 火紅的嫁衣襯著肌膚如雪古沥。 梳的紋絲不亂的頭發(fā)上瘸右,一...
    開(kāi)封第一講書(shū)人閱讀 49,792評(píng)論 1 290
  • 那天,我揣著相機(jī)與錄音岩齿,去河邊找鬼太颤。 笑死,一個(gè)胖子當(dāng)著我的面吹牛盹沈,可吹牛的內(nèi)容都是我干的龄章。 我是一名探鬼主播,決...
    沈念sama閱讀 38,933評(píng)論 3 406
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼做裙!你這毒婦竟也來(lái)了岗憋?” 一聲冷哼從身側(cè)響起,我...
    開(kāi)封第一講書(shū)人閱讀 37,701評(píng)論 0 266
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤锚贱,失蹤者是張志新(化名)和其女友劉穎澜驮,沒(méi)想到半個(gè)月后,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體惋鸥,經(jīng)...
    沈念sama閱讀 44,143評(píng)論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡杂穷,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,488評(píng)論 2 327
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了卦绣。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片耐量。...
    茶點(diǎn)故事閱讀 38,626評(píng)論 1 340
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖滤港,靈堂內(nèi)的尸體忽然破棺而出廊蜒,到底是詐尸還是另有隱情,我是刑警寧澤溅漾,帶...
    沈念sama閱讀 34,292評(píng)論 4 329
  • 正文 年R本政府宣布山叮,位于F島的核電站,受9級(jí)特大地震影響添履,放射性物質(zhì)發(fā)生泄漏屁倔。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,896評(píng)論 3 313
  • 文/蒙蒙 一暮胧、第九天 我趴在偏房一處隱蔽的房頂上張望锐借。 院中可真熱鬧,春花似錦往衷、人聲如沸钞翔。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 30,742評(píng)論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)萨驶。三九已至租漂,卻和暖如春萤衰,著一層夾襖步出監(jiān)牢的瞬間杨名,已是汗流浹背抚吠。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 31,977評(píng)論 1 265
  • 我被黑心中介騙來(lái)泰國(guó)打工玖翅, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留脚曾,地道東北人东且。 一個(gè)月前我還...
    沈念sama閱讀 46,324評(píng)論 2 360
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像本讥,于是被迫代替她去往敵國(guó)和親珊泳。 傳聞我的和親對(duì)象是個(gè)殘疾皇子鲁冯,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,494評(píng)論 2 348

推薦閱讀更多精彩內(nèi)容