Tomcat文章目录

这是一个Tomcat相关文章的目录,汇总了我写过的Tomcat的所有文章,方便进行查找回顾

第一章:实现一个简单的Web容器

使用Socket编程实现一个简单的服务端程序,但是仅仅支持静态资源(html)的获取。

第二章:实现一个简单的Servlet容器

基于第一章的程序,扩展了获取servlet动态资源的能力,并对servlet规范做了简单介绍。

第三章:实现一个简易连接器

Catalina 中有两个主要的模块,连接器 (connector) 和容器 (container),连接器负责接收HTTP请求,并将请求转化成容器需要的Request对象传递给容器去使用。

本章中所要建立的连接器是Tomcat 4 中的默认连接器的简化版,默认连接器将会在第4章中讨论。虽然在Tomcat 4中已经以不再推荐使用默认连接器了,但它却是一个很好的学习工具。

第四章:剖析Tomcat的默认连接器

介绍Tomcat4的默认连接器,使用了对象池来支持并发请求,还涉及到了多线程之间的信息交互,是一个多线程编程的很好案例。

第五章:剖析Servlet容器并实现一个简易Context与Wrapper容器

介绍了Catalina的四种容器,阐述容器的共性,并针对Context与Wrapper两种容器做了一个简易实现。

第六章:Tomcat各组件的生命周期控制

Catalina下包含了各种容器、组件,它通过一个Lifecycle接口统一了这些容器、组件的启动与销毁方式,进而使得启动与销毁的入口可以收束到一点上,实现"一键启停"。

第七章:日志记录器

讲解了Tomcat默认支持的几种记录日志的方式

第八章:载入器与打破双亲委派机制的自定义类加载器

什么情况下需要自定义类加载器呢?Tomcat给出了一个很好的案例。并且,Tomcat内部是支持自动重载的,虽然我们很少用它这个特性。

第九章:Session的实现原理

详细阐述了Tomcat中的Session机制,还对spring-session-data-redis的原理做了解析。

第十一章:详解StandardWrapper

原书第十章是介绍Tomcat的安全机制的,我略过了这章,直接写第十一章。

Wrapper容器代表了一个servlet,StandardWrapper是Wrapper容器的标准实现,内部包含了过滤器的实现,文内也介绍了如何自定义过滤器。

第十二章:详解StandardContext

Context容器代表了一个Web应用,StandardContext是Context容器的一个标准实现,StandardContext中有的功能就是一个标准Web应用需要的功能。StandardContext内部拥有映射机制,能够将请求的uri映射到某个Wrapper容器上,进而调用其对应的servlet。

第十三章:Host、Engine 容器

简单介绍下Host、Engine两个容器以及他们寻址下级容器的方式。

第十四章:Server、Service 组件:如何启停Tomcat服务?

本章主要讲解了Server与Service两个组件,Server组件是Tomcat的顶层组件,它提供了一种启停Tomcat的方法,但是需要另外的程序来触发才行。

第十六章:关闭钩子,保证Tomcat的正常关闭

原书第十五章讲解了如何通过配置XML的方式来配置Tomcat的各个组件,并通过Digester库来解析XML。我略过了这章,直接写第十六章。

该章讲述了一种更有保障的关闭Tomcat的方法,即使使用kill命令杀进程时,Tomcat的关闭流程也能正常被触发执行。

相关推荐
m0_571957582 小时前
Java | Leetcode Java题解之第543题二叉树的直径
java·leetcode·题解
魔道不误砍柴功4 小时前
Java 中如何巧妙应用 Function 让方法复用性更强
java·开发语言·python
NiNg_1_2344 小时前
SpringBoot整合SpringSecurity实现密码加密解密、登录认证退出功能
java·spring boot·后端
闲晨4 小时前
C++ 继承:代码传承的魔法棒,开启奇幻编程之旅
java·c语言·开发语言·c++·经验分享
测开小菜鸟5 小时前
使用python向钉钉群聊发送消息
java·python·钉钉
P.H. Infinity6 小时前
【RabbitMQ】04-发送者可靠性
java·rabbitmq·java-rabbitmq
生命几十年3万天6 小时前
java的threadlocal为何内存泄漏
java
caridle6 小时前
教程:使用 InterBase Express 访问数据库(五):TIBTransaction
java·数据库·express
^velpro^7 小时前
数据库连接池的创建
java·开发语言·数据库
苹果醋37 小时前
Java8->Java19的初步探索
java·运维·spring boot·mysql·nginx