Tomcat是一个WEB容器,也是一个Servlet容器。他需要处理来自客户端的HTTP请求,也需要处理来自WEB服务器(Apache)的AJP请求。对于不同的请求,Tomcat将接受到的Socket,封装成为相应的Request以及与Response对象,然后再转交给容器进行具体的处理。
Tomcat的设计非常的模块化,为了提高服务本身的可扩展性,Tomcat做了组建化的设计。也实现了多个不同版本的处理方式。下列UML图中简单的描述了Tomcat的Connector容器的内部结构。
UML符号说明
Tomcat的Connector类结构图
接口ProtocolHandler负责处理各种不同协议的请求,负责将Socket流数据转换成相应的Request对象,并且构建出相应的Response对象,将数据返回这一过程。在具体处理时候,为了提高服务器的并发性将整个过程处理成两个过程,分别由AbstractEndpoint的Acceptor与SocketProcessor分别处理。Acceptor线程只是负责接收Socket请求,接收到请求之后直接转交给SocketProcessor来进行解析处理。SocketProcessor将Socket对象传递给相应的ProtocolHandler的ConnectionHandler进行Socket流的解析处理。
Processor通过适配器CoyoteAdapter调用容器的管道,每个容器都有一个某人的阀门,例如Engine容器有StandardEngineValue。每个容器处理完成本容器的事情后则将请求转交给下一个容器的阀门处理。
相关推荐
tomcat7源码下载tomcat7源码下载tomcat7源码下载tomcat7源码下载tomcat7源码下载tomcat7源码下载tomcat7源码下载tomcat7源码下载
tomcat7的源码项目,可以导入到eclipse,自己编译运行tomcat。
tomcat工作原理深入详解——HowTomcatWorks中文版.pdf
前言从今天开始,我们开始分析tomcat的源码,至于原因嘛,第一Tomcat是非常优秀的web服务器,它占据着全球一半以上的市场份额,就连spring boot
tomcat8.0源码
apache-tomcat-7.0.42,包含了tomcat-7.0.42源码和内存配置
tomcat 7.0 源码
tomcat7.0.42源码,eclipse直接使用,tomcat7.0.42源码,eclipse直接使用
tomcat6的源码,官网下载!适合放在eclipse
Tomcat源码Tomcat源码Tomcat源码Tomcat源码Tomcat源码Tomcat源码Tomcat源码
Tomcat初始化流程分析,Tomcat启动流程分析 Tomcat处理一次请求过程分析 servlet初始化流程
tomcat 源代码,对于理解tomcat运行机制有很大作用。 增加对javaweb项目的了解
tomcat7源码调试,需要把tomcat编程maven工程所需要的pom文件
tomcat的源码解析资料,加上tomcat的pdf解析中文版的,tomcat的源码。 挺不错的资源,大家可以学习下。
tomcat9.0源码
NULL 博文链接:https://utopialxw.iteye.com/blog/1624763