本书通过引领我们自己动手实现一个Servlet容器作为出发点,让我们可以在实现Servlet容器中,思索、解决问题。然后与tomcat的实现对比,达到对一些问题有比较深刻的认知。本书并不是对最新的tomcat8进行剖析,选取的tomcat4和tomcat5来进行比较。个人觉得tomcat4、5的结构还不是太复杂,比较适宜来学习,毕竟不管tomcat有多大变化,大的基线还在那里。
书中首先是由tomcat淘汰掉的默认connector入手(不是现在的coyote),让我们大体了解了tomcat是如何处理来自客户端的请求。为了读此书我还特地深入温习了一遍HTTP协议,这样在学习connector的时候就爽多了。接着通过tomcat四个容器engine、host、context、wrapper中的wapper,阐述了servlet容器中管道pipeline、阀Valve的概念(这个地方的实现原理跟struts2中的intercepter如出一辙 开源的好思想是该好好使用)。然后是tomcat使用了观察者模式来实现容器生命周期的管理、日志管理器、session管理器、Realm、服务器与服务组件、Digester库(又发现了一个xml解析利器)、JMX ,基本原理 娓娓道来 不要太爽!
通过这本书也让我终于知道JMX如何玩了 、之前一通过jConsole看看JVM,遇到MBean就感觉它好神秘 今天终于拨开云雾见青天了 O(∩_∩)O哈哈~
不过这本书,只是阐述了tomcat的基本运行原理、若是要深入了解tomcat还是要自己慢慢啃啃,tomcat的源码了。这里有apache-tomcat-7.0.57的源码https://github.com/sdw2330976/apache-tomcat-7.0.57