从零开始手写Tomcat的教程5节---servlet容器
2023-09-14 09:13:34 时间
从零开始手写Tomcat的教程5节---servlet容器
前言
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
总结
相关文章
- 如何修改Tomcat版本[通俗易懂]
- Tomcat 下载安装教程
- eclipse中启动Tomcat,8080端口被占用
- Tomcat 的安装与环境配置教程(超详细)
- Java 在IDEA社区版中配置Tomcat并使用
- Tomcat绕过某数字抓明文密码
- IntelliJ IDEA tomcat 远程Ddbug调试详解程序员
- linux上传并配置jdk和tomcat的教程详解
- java DBUtil的简单封装(dbutil+tomcat jdbcpool)详解编程语言
- [tomcat] 连接池参数maxActive、maxIdle 、maxWait 等详解编程语言
- 改变Linux Tomcat的端口号:一步一步来(linux修改tomcat端口号)
- Linux下一步步搭建Tomcat环境(linux配置tomcat环境变量)
- Linux查看Tomcat进程:掌握必备指令(linux查看tomcat进程)
- MySQL与Tomcat:强强联合的绝佳组合(mysql与tomcat)
- Linux下安装Tomcat服务器的步骤(linux上安装tomcat)
- Linux部署Tomcat项目:一步一步步入正轨(linux部署tomcat项目)
- Linux下快速启动Tomcat服务(linux启动tomcat)
- dockerfile生产案例-制作基于Tomcat的业务镜像-1
- tomcat实战案例:手动的应用部署
- Kubernetes中部署tomcat与mysql集群教程
- 以Linux运行Tomcat,实现轻松部署Web应用(linux tomcat)
- Tomcat 与 Redis 的桥梁惠泽互联(tomcat与redis)