前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >从零开始手写Tomcat的教程5节---servlet容器

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

作者头像
大忽悠爱学习
发布2022-05-10 15:47:00
2980
发布2022-05-10 15:47:00
举报
文章被收录于专栏:c++与qt学习

从零开始手写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

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

总结

在这里插入图片描述
在这里插入图片描述
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2022-03-12,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 从零开始手写Tomcat的教程5节---servlet容器
  • 前言
  • Container接口
  • 管道任务
  • Pipeline类
  • Valve接口
  • ValveContext接口
  • Contianed接口
  • Wrapper接口
  • Context接口
  • Wrapper应用程序
    • SimpleLoader类
      • SimplePipeline类
        • SimpleWrapperValve类
          • ClientPLoggerValve类
            • HeaderLoggerValve类
              • BootStrap1类
                • 运行应用程序
                  • 总结
                  • Context应用程序
                    • 思路整理
                      • SimpleContextValve类
                        • SimpleContextMapper类
                          • SimpleContext类
                            • BootStrap2
                            • 总结
                            相关产品与服务
                            容器服务
                            腾讯云容器服务(Tencent Kubernetes Engine, TKE)基于原生 kubernetes 提供以容器为核心的、高度可扩展的高性能容器管理服务,覆盖 Serverless、边缘计算、分布式云等多种业务部署场景,业内首创单个集群兼容多种计算节点的容器资源管理模式。同时产品作为云原生 Finops 领先布道者,主导开源项目Crane,全面助力客户实现资源优化、成本控制。
                            领券
                            问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档