手把手带你写一个 MiniTomcat
郭屹
前 Sun Microsystems Java 研发工程师
1792 人已学习
新⼈⾸单¥59
登录后,你可以任选4讲全文学习
课程目录
已完结/共 22 讲
开篇词 (1讲)
手把手带你写一个 MiniTomcat
15
15
1.0x
00:00/00:00
登录|注册

11| 多层容器:如何通过实现Context与Wrapper形成多层容器?

你好,我是郭屹。今天我们继续手写 MiniTomcat。
上一节课结束后,我们引入了 Container 对 Servlet 进行管理,将原本的 Connector 功能职责进行拆分,让它专门负责通信的管理。并且在第二个部分中,把 Container 进一步封装成 Wrapper,实现 Servlet 更加精确、完善的管理。
事实上,Tomcat 把 Wrapper 也看作一种容器,也就是隶属于 Context 之下的子容器(Child Container),所以在原理上是存在多层容器的。一个 Server 对外提供 HTTP 服务,它的内部支持管理多个虚拟主机,而每个虚拟主机下又有多个应用,在每个应用内又包含多个 Servlet。因此 Container 存在多个,属于层层嵌套的关系。
按照 Tomcat 官方的定义,自外向内分别分为 Engine 层、Host 层、Context 层与 Wrapper 层。我们也参考这个思路,把 ServletContainer 改成 Context,但是我们不打算实现 Engine 和 Host,只用两层 Container。
不考虑使用这么多层 Container 的主要原因在于,Engine 与 Host 本身的结构复杂,而且其思想已经不再符合现在的主流,现在我们使用了容器技术之后,Engine 和 Host 的概念已经弱化很多了。实际上,当我们部署的时候,一个 Tomcat 一般就只用一个 Engine 和一个 Host,如果需要多个,就用多个容器。用 Context 和 Wrapper 两层容器也可以明白地说明 Tomcat 的多层容器的概念。
确认放弃笔记?
放弃后所记笔记将不保留。
新功能上线,你的历史笔记已初始化为私密笔记,是否一键批量公开?
批量公开的笔记不会为你同步至部落
公开
同步至部落
取消
完成
0/2000
荧光笔
直线
曲线
笔记
复制
AI
  • 深入了解
  • 翻译
    • 英语
    • 中文简体
    • 中文繁体
    • 法语
    • 德语
    • 日语
    • 韩语
    • 俄语
    • 西班牙语
    • 阿拉伯语
  • 解释
  • 总结

本文介绍了如何通过实现Context与Wrapper形成多层容器的技术细节。文章首先介绍了Tomcat中多层容器的概念,包括Engine层、Host层、Context层与Wrapper层的层级关系。然后,文章详细讲解了如何通过实现Container接口和ContainerBase基础类来构建多层容器。在文章的后半部分,作者通过代码示例演示了如何将原有的ServletContainer更名为ServletContext,并对相关类进行调整,包括HttpServer、HttpConnector和ServletWrapper等。通过这些调整,实现了多层容器的结构改造,使得MiniTomcat变得更加完善。整体而言,本文通过讲解多层容器的概念和代码实现,帮助读者深入理解了多层容器的原理和实现方式。文章还介绍了项目结构的改造和测试方式,以及对系统结构的扩展和管理清晰化的思考。文章内容丰富,对于想要深入了解多层容器技术的读者具有很高的参考价值。

仅可试看部分内容,如需阅读全部内容,请付费购买文章所属专栏
《手把手带你写一个 MiniTomcat》
新⼈⾸单¥59
立即购买
登录 后留言

全部留言(2)

  • 最新
  • 精选
  • peter
    请教老师两个问题: Q1:Tomcat中怎么表示多个Host?用不同的IP吗? Q2:Engine主要功能是什么?感觉所有的主要功能都已经包含在连接处理、servlet处理了,还能有什么比较大的功能由Engine来处理?

    作者回复: 用不同的域名表示不同主机,其实是虚拟主机 将connector和host容器组合在一起的就是engine,由它来实现对外的service

    2024-01-01归属地:北京
  • HH🐷🐠
    加入本层特殊逻辑,我的想法是加入一个前置方法和后置方法, 并且子类可以重写这两个方法。

    作者回复: 我最初也是这么想的,用interceptor,这么做是可以的。而Tomcat用了pipeline,结构更加宏大。

    2024-01-01归属地:广东
    2
收起评论
显示
设置
留言
2
收藏
沉浸
阅读
分享
手机端
快捷键
回顶部