一、概念
Tomcat 服务器是一个免费的开放源代码的Web 应用服务器,属于轻量级应用服务器,在中小型系统和并发访问用户不是很多的场合下被普遍使用,是开发和调试JSP 程序的首选。
我们通常在客户端发起请求,客户端将我们的请求发送给远程的服务端,通过服务端的一系列处理接收回相关信息。而Tomcat就相当于在客户端建立了一个C/S模型,当我们需要获取某种信息时,只需将请求提供给同一个计算机上的服务端,而不用去连接远程的服务端。
二、简要介绍运行原理
Tomcat结构图,如图所示:
Tomcat主要组件有:服务器Server、服务Service(多个)、连接器Connector(多个)以及容器Container。其中,Connector和Container是Tomcat的核心组件,Service能够对外提供能力,Server为Service提供一个生存环境。
- Tomcat大体运行逻辑
当用户提出请求时,Connector将从某个端口接收请求,再将请求及参数发送给Container,Container进行一系列处理后再通过Connector返回给用户。
- Connector中的简易运行机制
当用户向Connector发送请求后,Connector内部会创建Request和Response对象,这两者再同用户交换数据,然后生成一个线程来处理请求(此为Connector的核心,由此可知Connector是多线程的),并将Request和Response对象传送给Container里的Engine。
Tomcat是有多个Connector的,其中一个Connector侦听来自Brower的HTTP请求,其余Connector侦听其他WebServer。
- Container中的简易运行机制
Contaniner是容器的父接口,Container的设计是典型的责任链,即父容器包含子容器,即如图中,Engine包含着Host,Host包含着Context,Context包含着Wrapper。
- Engine:只定义基本关联关系。
- Host:即虚拟主机,安装运行多个应用,保存一个主机应有的信息。其子容器通常是Context。(Host并不是必需的,但如果想要运行war程序,解析web.xml,就需要。)
- Context:Context具备了Servlet运行的基本环境,管理Servlet实例。Servlet在Context里是作为Wrapper出现的。
- Wrapper:最底层的子容器,即Servlet实例,负责Servlet装载,初始化,执行及资源回收。
本文参考水-滴的CSDN博客,全文链接:
https://blog.csdn.net/u014231646/article/details/79482195
此篇博客要更详细。