tomcat如何接收http请求:我记得是这样的:
Tomcat要实现2个核心功能:
因此Tomcat设计了两个核心组件连接器(Connector)和容器(Container)来分别做这两件事情。
连接器负责对外交流,容器负责内部处理。
处理Socket连接,负责网络字节流与Request和Response对象的转化。
加载和管理Servlet,以及具体处理Request请求。Tomcat与外部世界的连接器,监听固定端口接收外部请求,传递给Container,并将Container
处理的结果返回给外部。连接器对Servlet容器屏蔽了不同的应用层协议及I/O模型,无论是HTTP
还是AJP,在容器中获取到的都是一个标准的ServletRequest对象。
容器,顾名思义就是用来装载东西的器具,在Tomcat里,容器就是用来装载Servlet的。
Tomcat通过一种分层的架构,使得Servlet容器具有很好的灵活性。Tomcat设计了4种容器,分别
是Engine、Host、Context和Wrapper。这4种容器不是平行关系,而是父子关系。
连接器Connector组件
容器Container组件
Engine:引擎,Servlet的顶层容器,用来管理多个虚拟站点,一个Service最多只能有一个Engine;
Host:虚拟主机,负责web应用的部署和Context的创建。可以给Tomcat配置多个虚拟主机地址,
而一个虚拟主机下可以部署多个Web应用程序;
Context:Web应用上下文,包含多个Wrapper,负责web配置的解析、管理所有的Web资源。一
个Context对应一个Web应用程序。
Wrapper:表示一个Servlet,最底层的容器,是对Servlet的封装,负责Servlet实例的创建、执行
和销毁。