Tomcat 服务器是一个开源的轻量级Web应用服务器,在中小型系统和并发量小的场合下被普遍使用,是开发和调试Servlet、JSP 程序的首选,相信任何一个java开发基本都有使用过。所以,作为一名java程序猿,学习tomcat源码,是一件我们义不容辞的事。
今天我们这系列学习笔记,重点研究源码对象事tomcat7的,源码下载地址
http://archive.apache.org/dist/tomcat/tomcat-7/v7.0.10/src/apache-tomcat-7.0.10-src.zip
大家可以下载一下,一起研究下tomcat的源码,相信一定还是会让你收获颇丰的。
先大概说一下分析过程,源码分析,我一般会先大体了解整个架构,然后从配置文件入手,项目如何启动,项目如何运行....等等,先看下大体结构图
tomcat的设计对领域模型概念控制的特别好,Server是最高的一层,下面可以包含了很多services,Connector用了处理用户连接,然后封装request和resposne调用container,这个模块被分成endpoint(用于接收tcp/ip请求)、processor(用于将请求封装成request)、adapator(用于适配找到对应的container)。container作为容器,主要有三个孩子:engine、host、context(还有个Wrapper,封装的是servlet层,相当于每个servlet一个包装),三个孩子都是container的子实现类。
如此,一个请求来了,先到了connnector,connnector将其封装信息找到对应engine,在进一步找到host,最后进入上下文context,找到对应的处理类,看下简化的内部结构图
tomcat内部结构
简单
按照习惯,我们将从如下几个维度分析
- tomcat 源码分析技巧
- tomcat 启动脚本分析部分
- tomcat启动源码分析(一)--入口代码Bootstrap初始化
- tomcat启动源码分析(二)--入口代码calatina启动介绍
- tomcat启动源码分析(三)--http请求nio处理
- tomcat启动源码分析(四)--tomcat和jetty区别总结
下面,我们进入第一个部分tomcat的启动脚本分析。。
网友评论