IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> Java知识库 -> 从零开始手写Tomcat的教程5节---servlet容器 -> 正文阅读

[Java知识库]从零开始手写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

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


总结

在这里插入图片描述

  Java知识库 最新文章
计算距离春节还有多长时间
系统开发系列 之WebService(spring框架+ma
springBoot+Cache(自定义有效时间配置)
SpringBoot整合mybatis实现增删改查、分页查
spring教程
SpringBoot+Vue实现美食交流网站的设计与实
虚拟机内存结构以及虚拟机中销毁和新建对象
SpringMVC---原理
小李同学: Java如何按多个字段分组
打印票据--java
上一篇文章      下一篇文章      查看所有文章
加:2022-03-13 21:36:26  更:2022-03-13 21:37:13 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/24 8:26:29-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码