# tomcat **Repository Path**: cgjim/tomcat ## Basic Information - **Project Name**: tomcat - **Description**: tomcat的源码与应用 - **Primary Language**: Java - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2021-03-30 - **Last Updated**: 2021-04-19 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # tomcat #### 介绍 tomcat的源码与应用 一.编程题 开发Minicat V4.0,在已有Minicat基础上进一步扩展,模拟出webapps部署效果 磁盘上放置一个webapps目录,webapps中可以有多个项目,例如demo1、demo2、demo3... 每个项目中含有servlet,可以根据请求url定位对应servlet进一步处理。 ![输入图片说明](https://images.gitee.com/uploads/images/2021/0330/175953_a81cd642_1039484.png "屏幕截图.png") ![输入图片说明](https://images.gitee.com/uploads/images/2021/0330/180025_59b3eee2_1039484.png "屏幕截图.png") ![输入图片说明](https://images.gitee.com/uploads/images/2021/0330/180304_8b376085_1039484.png "屏幕截图.png") ![输入图片说明](https://images.gitee.com/uploads/images/2021/0330/180314_da3d05f5_1039484.png "屏幕截图.png") 实现思路 1 解析server.xml 2 解析web.xml 拿到 Service(host,connector) 3 通过多线程处理请求 200 请求路径 http://localhost:8081/demo1/get http://localhost:8081/demo2/get 404 请求路径 http://localhost:8081/demo3/get 二.请详细描述Tomcat体系结构(图文并茂) Tomcat是什么,先看一下官网介绍: The Apache Tomcat® software is an open source implementation of the Java Servlet, JavaServer Pages, Java Expression Language and Java WebSocket technologies. 翻译:Apache Tomcat软件是Java Servlet、JavaServer Pages、Java表达式语言和Java WebSocket技术的开源实现。 那么说Tomcat是Servlet容器,tomcat能够接收并且处理http请求,所以tomcat也是一个http服务器。 所以它的体系结构是这样的 ![输入图片说明](https://images.gitee.com/uploads/images/2021/0403/230213_c6194c9b_1039484.png "屏幕截图.png") HTTP 服务器接收到请求之后把请求交给Servlet容器来处理,Servlet 容器通过Servlet接⼝调⽤业务 类。Servlet接⼝和Servlet容器这⼀整套内容叫作Servlet规范。 注意:Tomcat既按照Servlet规范的要求去实现了Servlet容器,同时它也具有HTTP服务器的功能。 Tomcat的两个重要身份 1)http服务器 2)Tomcat是一个Servlet容器 功能 1)和客户端浏览器进行交互,进行socket通信,将字节流和Request/Response等对象进行转换 2)Servlet容器处理业务逻辑 ![输入图片说明](https://images.gitee.com/uploads/images/2021/0403/230231_abb3dfc3_1039484.png "屏幕截图.png")