地址: http://localhost:9090/demo1/lin http://localhost:9090/demo2/lin
http://localhost:9090/demo1/static/Index.html http://localhost:9090/demo2/static/Index.html
Tomcat是一个servlet容器,实现了对Servlet和JSP的支持,除此之外,tomcat还可以作为一个web应用服务器。Tomcat 核心组件包括:连接器组件(Coyote)和 容器组件(Catalina)。
Coyote: Coyote是tomcat连接功能对外接口,用于接收、响应http请求,包括:
组件 | 描述 |
---|---|
EndPonit | EndPoint是Coyote的通信端点,具体接收和处理Socket,是传输层的抽象,用于实现TCP/IP协议 |
Processor | Processor是Coyote协议处理接口,用于实现http协议,接收Endpoint的Socket,读取字节流,解析成Request、Response对象,通过Adapter提交给容器 |
ProtocolHandler | 通过Endpoint和Processor实现对具体协议的处理能力,Tomcat按照协议和I/O提供了6个实现:AjpNioProtocol、AjpAprProtocol、AjpNio2Protocol、Http11NioProtocol、Http11Nio2Protocol、Http11AprProtocol |
Adapter | 由于协议不同,客户端发送的信息也不一样,Tomcat定义了自己的Request来封装这些信息,ProtocolHandler接口负责解析请求并生成Tomcat Request对象,但是Tomcat 的Request对象不是Servlet Request对象,不能直接发送给Servlet容器,此时需要CoyoteAdapter将tomcat request转换为ServletRequest |
流程如下:
Catalina:
Tomcat是一个由一系列可配置组件构成的Web容器(在conf/server.xml中配置),本质就是一个servlet容器。Catalina是servlet容器的具体实现,和具体业务类打交道,是tomcat的核心,其它模块都是为Catalina提供支撑的。
Tomcat 启动时加载 server.xml创建Catalina实例,Catalina创建并管理一个server,一个server又有多个service,一个service又有多个Connector和一个Container。其中:
Catalina 负责解析Tomcat配置文件(server.xml),以此创建服务器server组件并进行管理;
Server 服务器:标示整个Catalina容器以及其它组件,负责启动并组装Servlet引擎、Tomcat连接器,Server通过实现Liftcyle接口,提供了一种优雅地启动和关闭系统的方式;
Service服务:Server内部组件,它将若干个Connector绑定到了一个Container; Container容器:负责处理Servlet请求,并且返回对象给用户模块;
Container下有几种具体的组件,分别是Engine、Host、Context、Wrapper,这四种组件是父子关系,Tomcat通过分层,使得Servlet容器具有更好的灵活性,四种组件作用如下:
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。