# tomcat-homework **Repository Path**: hwangrq/tomcat-homework ## Basic Information - **Project Name**: tomcat-homework - **Description**: No description available - **Primary Language**: Java - **License**: Not specified - **Default Branch**: main - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2021-03-18 - **Last Updated**: 2021-03-18 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # tomcat-homework ## 作业一 - Minicat4 开发Minicat V4.0,在已有Minicat基础上进⼀步扩展,模拟出webapps部署效果 磁盘上放置⼀个webapps目录,webapps中可以有多个项目,比如demo1,demo2,demo3... 具体的项目⽐如demo1中有serlvet(也即为:servlet是属于具体某⼀个项⽬的servlet), 这样的话在Minicat初始化配置加载,以及根据请求url查找对应serlvet时都需要进⼀步处理 代码结构 **Minicat4** 核心代码 **web-demo1** 测试的web项目1 **web-demo2** 测试的web项目2 **webapps** Host的appBase指向磁盘上放置的webapps绝对路径 ## 作业二 - 详细描述Tomcat体系结构 ![image-20210318040555394](assets/image-20210318040555394.png) Tomcat 有两大核心组件 `Connector `和`Container `组件 - **Connector 连接器组件** : - 负责对外交流,处理 Socket 请求,负责网络字节流与 Request 和 Response 对象的转化 - **Container 容器组件** : - 负责内部处理,加载管理 Servlet,以及具体处理 Request 请求 `Context `表示一个 Web 应用程序; `Wrapper `表示一个 Servlet,一个 Web 应用程序中可能会有多个 Servlet; `Host `代表的是一个虚拟主机,或者说一个站点,可以给 Tomcat 配置多个虚拟主机地址,而一个虚拟主机下可以部署多个 Web 应用程序; `Engine `表示引擎,用来管理多个虚拟站点,一个 Service 最多只能有一个 Engine。 Tomcat 采用了组件化的设计,它的构成组件都是可配置的,其中最外层的是 Server,其他组件按照一定的格式要求配置在这个顶层容器中。 ![img](assets/82b3f97aab5152dd5fe74e947db2a266.jpg) ![img](assets/b014ecce1f64b771bd58da62c05162ca.jpg)