Tomcat源码解析系列(十五)ConnectionHandler

前言 前文中分析了 Poller 和 PollerEvent,Poller#processSocket 方法里获取了一个 SocketProcessorBase 来处理SocketChannel 的读写事件,在 SocketProcessorBase 的子类 SocketProcessor#doRun 方法里通过…

hello hello 发布于 2024-09-18

Tomcat源码解析系列(六)Host

前言 前文讲到了 Engine 的 init 和 start 方法,在 Engine 的 start(ContainerBase#startInternal) 方法里调用了子容器的 start 方法,而 Engine 的子容器就是 Host。在 Engine 的 init 方法中并没有调用子容器的 init 方法,而是在 start 方法中调用子容器的…

hello hello 发布于 2024-09-14

Tomcat源码解析系列(七)Context

前言 前文简单介绍了 Host,讲到了Context的启动时机,就是在 Engine 的 start 方法中调用了子容器的 start 方法(在ContainerBase#startInternal),子容器又调用子容器的方法,以此类推,所有子容器的start 方法都会被调用。 1. StandardContext#initInternal…

hello hello 发布于 2024-09-14

Tomcat源码解析系列(八)Wrapper

前言 前文讲到了Context的启动,在 Context 的 startInternal 方法中调用了子容器的 start 方法,Context 的子容器则是 Wrapper,Wrapper 的实现类是 StandardWrapper。StandardWrapper 没有重载 initInternal 方法。 1.…

hello hello 发布于 2024-09-14

Tomcat源码解析系列(九)Pipeline 与 Valve

前言 前文讲到了 Wrapper 的启动,之前也提到了 Pipeline 和 Valve。Pipeline的实现类是 StandardPipeline,StandardPipeline 继承自 LifecycleBase,而 Valve 的实现类则比较多,这些实现类都继承自基类 ValveBase,而 ValveBase 继承自…

hello hello 发布于 2024-09-14

Tomcat源码解析系列(十)Connector

前言 在前文中,介绍了 Tomcat 中 Container 及其相关组件,包括 Engine、Host、Context、Wrapper、Pipeline 和 Valve。之前也分析到了 Service 的 initInternal 和 startInternal 方法,在其中就调用了 Connector 的 init 和 start…

hello hello 发布于 2024-09-14

Tomcat源码解析系列(四)Service

前言 前文分析了 Server 类的 init 和 start 方法,其中最核心的内容就是调用了 StandardServer 类的的 Service 类型的成员的 init 和 start 方法。Service 是 Tomcat 的核心组件之一。Service 的实现类是 StandardService。StandardService 和…

hello hello 发布于 2024-09-11

Tomcat源码解析系列(五)Engine

前言 前文分析了Service的 init 和 start 方法,在这两个方法中关键的是调用 Engine 和 Connector 的 init 和 start 方法,一个 Service 里只有一个 Engine,有多个 Connector。本篇文章分析 Engine 的启动,Engine 的实现类是 StandardEngine。 1…

hello hello 发布于 2024-09-11

Tomcat源码解析系列(三)Server

前言 之前分析了Tomcat的 Catalina 类,这个类的主要作用就是根据 server.xml 的配置来初始化 Tomcat 运行所需要的组件,比如 Server,Service 等等,然后调用成员变脸 Server 类对象的的 init 和 start 方法,来启动 tomcat。 一个 Server 类的实例就代表了一个 Tomcat…

hello hello 发布于 2024-09-11

Tomcat源码解析系列(二)Catalina

前言 之前的文章说道Tomcat的Bootstrap类,在 start 的时候,分别调用了 Bootstrap 类的 daemon.setAwait(true); daemon.load(args); daemon.start(); 这三个方法,这三个方法都类似,都是通过反射调用 Catalina 类的同名方法,setAwait 方法比较简单,就是把…

hello hello 发布于 2024-09-11
上一页 下一页