tomcat源码系列
lhrimperial
做到不留余力
展开
-
tomcat源码系列---环境搭建
使用Idea + Maven搭建Tomcat源码的开发环境。使用的Tomcat是8.5.23版本,Tomcat是用Ant构建的,基于本人或大部分开发习惯于Maven,所以采用Maven来构建Tomcat源码项目。下载Tomcat源码包和软件包 https://tomcat.apache.org/download-80.cgi 由于源码中没有Tomcat启动需要的lib和其他配置,其实软件...原创 2018-08-20 09:57:17 · 2869 阅读 · 1 评论 -
Tomcat框架设计
总体架构 Tomcat最顶层的容器是Server,代表着整个服务,控制着整个Tomcat的生命周期。一个Server可以包含至少一个Service,用于具体提供服务。 Service主要包含两个部分:Connector和Container。从上图中可以看出 Tomcat 的心脏就是这两个组件,他们的作用如下: - Connector用于处理连接相关的事情,并提供Socket与Reques...原创 2018-08-21 20:26:55 · 525 阅读 · 0 评论 -
tomcat源码系列---启动分析之Lifecycle
tomcat源码系列—启动分析(一)LifecycleLiftcycleLiftCycle接口是一个公用的接口,定义了组件生命周期的一些方法,用于启动、停止Catalina组件。组件的生命周期包括:init、start、stop、destory,以及定义了各种事件的常量,操作LifecycleListener的API,是一个典型的观察者模式。各大组件均实现了Lifecycle接口,如 ...原创 2018-09-03 22:01:46 · 314 阅读 · 0 评论 -
tomcat源码系列---启动分析之Catalina初始化
tomcat源码系列—启动分析之Catalina初始化Bootstraptomcat运行是通过Bootstrap的main方法启动的,Bootstrap是tomcat的入口,它会完成初始化ClassLoader,实例化Catalina以及load、start动作。 静态代码块中设置和加载tomcat的运行环境。main方法public static void main(S...原创 2018-09-03 22:04:04 · 352 阅读 · 0 评论 -
tomcat源码系列---启动分析之Catalina启动
tomcat源码系列—启动分析之Catalina启动tomcat的初始化过程,是由Bootstrap反射调用Catalina的load方法完成tomcat的初始化,包括server.xml的解析、实例化各大组件、初始化组件等逻辑。那么tomcat又是如何启动webapp应用,又是如何加载应用程序的ServletContextListener,以及Servlet呢? tomcat整体的启动逻辑...原创 2018-09-03 22:06:24 · 1403 阅读 · 1 评论 -
tomcat源码系列---启动分析之webapp
tomcat源码系列—启动分析(四)webapp前言上一篇文章中我们分析了 Service、Engine、Host、Pipeline、Valve 组件的启动逻辑,在 HostConfig 中会实例化 StandardContext,并启动 Context 容器,完成 webapp 应用程序的启动,这一块是最贴近我们开发的应用程序。在这一篇文章中,我们将要分析 tomcat 是如何解析并...原创 2018-09-03 22:07:34 · 488 阅读 · 0 评论 -
tomcat源码系列---HTTP请求处理过程
tomcat源码系列—HTTP请求处理过程分析tomcat对HTTP请求的处理过程得从Connector的架构说起,前面说过Connector是用于接收请求,并将请求封装成Request和Response,然后交给Container处理,处理完之后再由Connector将处理结果返回给客户端。 Connector的结构图 Connector使用ProtocolHandler来处理请求的...原创 2018-09-03 22:10:15 · 4493 阅读 · 0 评论