学习建议:一下子就直接看源码显然是不理智的,因为就算跟着debug一次也是毫无头绪的。建议先看一遍 tomcat 的基本原理和架构。
框架背景
Apache Group在完成GNUJSP1.0的开发以后,开始考虑在SUN的JSWDK基础上开发一个可以直接提供Web服务的JSP服务器,当然同时也支持Servlet, 这样Tomcat就诞生了。Tomcat服务器是一个免费的开放源代码的Web应用服务器。Tomcat是Apache软件基金会(Apache Software Foundation)的Jakarta项目中的一个核心项目,由Apache、Sun和其他一些公司及个人共同开发而成。因为Tomcat技术先进、性能稳定,而且免费,因而深受Java爱好者的喜爱并得到了部分软件开发商的认可,是目前比较流行的Web应用服务器。
Tomcat是应用(Java)服务器,它只是一个Servlet容器,可以认为是Apache的扩展,但是可以独立于Apache运行。与Apache相比,Tomcat能够动态的生成资源并返回到客户端,Apache和Nginx都能够将某一个文本文件的内容通过HTTP协议返回到客户端,但是这个文本文件的内容是固定的,也就是静态资源。当然Tomcat也能像Apache和nginx一样处理静态资源,但显然,它既要处理动态请求,又要处理静态请求,压力会很大。因此Tomcat前一般使用Apache或nginx专门处理静态请求,而动态请求则通过反向代理的方式代理至Tomcat。Tomcat运行时占用的系统资源小,扩展性好,支持负载平衡与邮件服务等开发应用系统常用的功能。
Tomcat是一个小型的轻量级应用服务器,在中小型系统和并发访问用户不是很多的场合下被普遍使