這幾天研究Tomcat,經過跟代碼和調試代碼的方式,基本弄明白了Tomcat啓動到初始化好資源,等待鏈接,而後鏈接器把鏈接轉交給容器的整個過程。研究過程比較艱辛,須要毅力;裏面用到了不少反射的機制,昨天在想,到底組建出來的內存Heap是什麼樣子,不如吧Heap dump下來分析,經過分析,更加充分理解了Tomcat的模型。app
Tomcat經典的模型是這樣:
.net
參考:http://blog.csdn.net/haitao111313/article/details/7717160 調試
能夠發現這樣的模型:
blog
咱們知道一個Wrapper和一個Servlet相對應,執行到Wrapper對應的StandardWrapperValve(Piple和Valve閥)的時候,調用invoke方法,有ip
try {內存
if (!unavailable) {資源
servlet = wrapper.allocate();get
}servlet
這樣一段代碼,取得業務包的servlet,而後執行對應的業務邏輯。it