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