这几天抽空把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://www.blogjava.net/zyskm/archive/2011/12/06/365653.html 就不重复了。
第九章讲session管理,没什么特别的。
第十章讲安全,没看。
第十一章讲StandardWrapper,在第五章的基础上重点分析了wrapper的运作机制。
其余章节目前工作中用不到,有空再看了。
作者:zyskm
http://www.blogjava.net/zyskm