How tomcat works閱讀筆記
這幾天抽空把How tomcat works看了一遍。這本書寫得很好,把tomcat這么一個(gè)牛B的大家伙拆成一堆零件,然后告訴你怎么組裝,真是做到了掰開了揉碎了講。
簡(jiǎn)單記一下
第一章講web服務(wù)器,如何接受和響應(yīng)http請(qǐng)求,還舉了個(gè)sokcet的例子。算是入門,從很底層的技術(shù)講起。
第二章講servlet容器,javax.servlet.Servle接口,接受到http請(qǐng)求后如何查找servlet,執(zhí)行servlet。
第三章講連接器的概念,前兩章看下來(lái)你會(huì)覺(jué)得把http請(qǐng)求接受響應(yīng)跟容器放在一起太亂了,這章就講如何把http操作提出來(lái)作為一個(gè)連接器。
第四章講tomcat默認(rèn)連接器,http協(xié)議操作講得很詳細(xì),不過(guò)我沒(méi)怎么看哈,用的時(shí)候直接把tomcat這段代碼拿過(guò)來(lái)就是了。
第五章講容器,在第三章的基礎(chǔ)上對(duì)容器進(jìn)行分層分類,事情復(fù)雜了就分成幾部分,“治眾如治寡,分?jǐn)?shù)是也”這個(gè)我們都知道。
tomcat講容器分成這幾個(gè)概念:
Engine:表示整個(gè)Catalina的servlet引擎
Host:表示一個(gè)擁有數(shù)個(gè)上下文的虛擬主機(jī)
Context:表示一個(gè)Web應(yīng)用,一個(gè)context包含一個(gè)或多個(gè)wrapper
Wrapper:表示一個(gè)獨(dú)立的servlet
類型復(fù)雜了,要做的事情也復(fù)雜了。
不僅僅是執(zhí)行service()方法,還要前邊執(zhí)行一堆,后邊再來(lái)一堆。引入了流水線任務(wù)Pipelining Tasks的概念,在流水線上可以執(zhí)行多個(gè)Valve(有翻譯成閥),類似于攔截器的概念。
第六章講生命周期,人多了要講究個(gè)步調(diào)統(tǒng)一,引入了Lifecycle接口的概念,方法包括啟動(dòng)之前干什么、啟動(dòng)之后干什么、啟動(dòng)后把子容器也啟動(dòng)了。
包括引入監(jiān)聽接口,都是些java常見(jiàn)實(shí)現(xiàn)方式,沒(méi)什么特殊。
第七章講日志系統(tǒng),沒(méi)看。
第八章講加載器,可以參考tomcat類加載器及jar包沖突問(wèn)題分析 http://www.aygfsteel.com/zyskm/archive/2011/12/06/365653.html 就不重復(fù)了。
第九章講session管理,沒(méi)什么特別的。
第十章講安全,沒(méi)看。
第十一章講StandardWrapper,在第五章的基礎(chǔ)上重點(diǎn)分析了wrapper的運(yùn)作機(jī)制。
其余章節(jié)目前工作中用不到,有空再看了。
作者:zyskm
http://www.aygfsteel.com/zyskm
posted on 2011-12-06 16:25 zyskm 閱讀(3194) 評(píng)論(7) 編輯 收藏