1 Star 0 Fork 0

XingtianLiu / Lintc

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
该仓库未声明开源许可证文件(LICENSE),使用请关注具体项目描述及其代码上游依赖。
克隆/下载
贡献代码
同步代码
取消
提示: 由于 Git 不支持空文件夾,创建文件夹后会生成空的 .keep 文件
Loading...
README

作业

作业一

地址: 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

流程如下: 1.Coyote内部流程.png

Catalina:

Tomcat是一个由一系列可配置组件构成的Web容器(在conf/server.xml中配置),本质就是一个servlet容器。Catalina是servlet容器的具体实现,和具体业务类打交道,是tomcat的核心,其它模块都是为Catalina提供支撑的。

3.Catalina.png

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容器具有更好的灵活性,四种组件作用如下:

  • Engine:表示Catalina的Servlet引擎,用来管理多个虚拟站点,一个Server最多只能一个Engine,但是可以有多个Host;
  • Host:虚拟主机或者站点,可以给Tomcat配置多个虚拟地址,而一个虚拟主机可以包含多个Context;
  • Context:表示一个web应用,一个Web应用包含多个Wrapper;
  • Wrapper:表示一个Servlet,Wrapper作为容器最底层,不能包含子容器;

空文件

简介

暂无描述 展开 收起
取消

发行版

暂无发行版

贡献者

全部

近期动态

加载更多
不能加载更多了
1
https://gitee.com/liuxingtian/Lintc.git
git@gitee.com:liuxingtian/Lintc.git
liuxingtian
Lintc
Lintc
master

搜索帮助