专栏首页only theone 的记录《How Tomcat works》

《How Tomcat works》

容器是一个处理用户servlet请求并返回对象给web用户的模块。 org.apache.catalina.Container接口定义了容器的形式,用四种容器:Engine(引擎),Host(主机),Context(上下文),和Wrapper(包装器)。这一章将会介绍Context和wrapper。而Enginer和Host会留到第十三章介绍。这一章首先介绍容器接口,然后介绍容器的工作流程。然后介绍的内容是Wrapper和Context接口。然后用两个例子来总结wrapper和context容器。

容器接口

一个容器必须实现org.apache.catalina.Container接口。就如在第四章看到的那样,传递一个Container实例给Connect对象的setContainer方法,然后Connect对象就可以使用container的invoke方法,重新看下第四章中Bootstrap类的代码如下:

HttpConnector connector = new HttpConnector();
SimpleContainer container = new SimpleCOntainer();
connector.setContainer(container);

对于Catalina容器首先需要注意的是它一共有四种不同的容器: Engine:表示整个Catalina的servlet引擎 Host:表示一个拥有数个上下文的虚拟主机 Context:表示一个web应用,一个context包含一个或多个wrapper Wrapper:表示一个独立的servlet

每一个概念之上都是用org.apache.catalina包来表示的。Engine Host Context 和 Wrapper接口都实现了Container即可。它们的标准实现是StandardEngine,StandardHost,StandardContext,and StandardWrapper,它们都是org.apache.catalina.core包的一部分。 所有的类都扩展自抽象类ContainerBase. 一个Catalina功能部署不一定需要所有的四种类型的容器。 一个容器可以有一个或者多个低层次的子容器。其大小关系是Engine->Host->Context->Wrapper。

Contaner接口被设计成Tomcat管理员可以通过Server.xml文件配置来决定其工作方式的模式。他通过一个pipeline(流水线)和一系列的阀门来实现。

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 资源池模式和单例模式实现的自定义数据库连接池java实现版

    在企业级开发中,我们往往不会直接使用原生的JDBC操作来实现与数据库得连接。因为数据库的连接是一个很宝贵的资源且耗时,我们往往会在内存中引入一个资源池来统一管理...

    Theone67
  • 前端dom操作竟然使得http请求的时间延长了

    最近在项目中遇到了一个奇怪的问题:在google浏览器的调试窗口network下看到一个请求的时间一直是2s多,但是当我把这个请求单独拿出来执行的时候发现根本用...

    Theone67
  • nodejs 封装mysql连接池

    Theone67
  • 易学好用的编程教程资源汇总 | 码云周刊第 46 期

    码云推荐 对于技术达人来说,广纳知识点是进步的源泉。通过阅读技术文章我们可以学到很多东西,既可以学到业务技能,又可以了解行业动态,最不济,也锻炼了阅读和学习...

    码云Gitee
  • 微信早报 | 微信总用户达 10.4 亿;小游戏数量超过 500 个

    知晓君
  • 关于安卓自定义 View 设计的坑点漫谈

    今天遇到一个问题,有测试反馈移动端 H5 页面点击输入框软键盘不弹起,然后我检查了一下代码,JS是开启了,焦点也默认获取,但是确实是点击没反应,后来发现是自定义...

    萬物並作吾以觀復
  • 树莓派鼓捣记 - 4b 安装 wiringPi 无法正常运行

    通过命令 sudo apt-get install wiringPi 安装,执行命令 gpio readall无法正常运行,是因为安装的版本不支持4b,最新版目...

    晓晨
  • Python获取当前环境下默认编码

    py3study
  • 《Java程序设计基础》 第8章手记Part 1

    本章主要内容 Part 1 - 子类的创建 - 在子类中访问父类的成员 - 覆盖父类的方法 - …… 本章主要讲继承、抽象类和接口,这...

    Steve Wang
  • 微信早报 | 巴菲特:微信支付像朵乌云;二更食堂被罢免 CEO 另一公号曝光

    知晓君

扫码关注云+社区

领取腾讯云代金券