zl程序教程

您现在的位置是:首页 >  工具

当前栏目

从零开始手写Tomcat的教程5节---servlet容器

Tomcat教程容器Servlet --- 从零开始 手写
2023-09-14 09:13:34 时间


前言

servlet容器是用来处理servlet资源相关请求的,并为web客户端填充response对象的模块。

servlet容器是Container接口的实例。在Tomcat中,共有4种类型的容器,分别是: Engine,Host,Context和Wrapper。

本章将对Context和Wrapper两种servlet容器进行讲解,Engine和Host两类将在后面的系列中进行介绍。

本章首先介绍Container接口,讨论servelt容器中的管道机制,然后,介绍Context接口和Wrapper接口。


Container接口

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述


在这里插入图片描述
在这里插入图片描述
这里管道的实现是tomcat一个非常重要的特性


管道任务

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述


在这里插入图片描述
在这里插入图片描述
在这里插入图片描述


在这里插入图片描述
个人认为这样做主要是为了解耦,将负责挨个调用阀门的ValveContext内部类,从Pipeline类中抽离出来

在这里插入图片描述


Pipeline类

在这里插入图片描述
提前说一下:这里基础阀指的是日志记录器,监听器等阀门,而基础阀指的是最终处理请求的容器对象


Valve接口

在这里插入图片描述


ValveContext接口

在这里插入图片描述

在这里插入图片描述


Contianed接口

在这里插入图片描述


Wrapper接口

在这里插入图片描述


Context接口

在这里插入图片描述


Wrapper应用程序

在这里插入图片描述


SimpleLoader类

在这里插入图片描述
在这里插入图片描述


SimplePipeline类

在这里插入图片描述
在这里插入图片描述


SimpleWrapperValve类

在这里插入图片描述

在这里插入图片描述


ClientPLoggerValve类

在这里插入图片描述
在这里插入图片描述


HeaderLoggerValve类

在这里插入图片描述
在这里插入图片描述


BootStrap1类

在这里插入图片描述
基础阀在SimpleWrapper构造函数中被设置
在这里插入图片描述
在这里插入图片描述


运行应用程序

在这里插入图片描述


总结

这里对上面的程序做一个图解:

在这里插入图片描述


Context应用程序

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述


思路整理

在这里插入图片描述


SimpleContextValve类

在这里插入图片描述
在这里插入图片描述


SimpleContextMapper类

SimpleContextMapper类实现Tomcat 4中的Mapper接口,需要和SimpleContext的实例相关联

在这里插入图片描述
在这里插入图片描述
RequestURI包含了Context-path,releativePath指的就是Servlet对应的资源路径


SimpleContext类

在这里插入图片描述


BootStrap2

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述


总结

在这里插入图片描述