【Tomcat】之 总体架构(1.2)

一、请求处理大致过程




(1)原始

Tomcat 是一个 Http 服务器

能够接收并且处理 http 请求, 所以 tomcat 是一个 http 服务器

使用浏览器向某一个网站发起请求, 发出的是 Http 请求, 那么在远程, Http 服务器接收到这个请求之后, 会调用具体的程序(Java类)进行处理, 往往不同的请求由不同的 Java 类完成处理。

如图:
在这里插入图片描述

如果 HTTP 服务器(tomcat)直接调用业务处理类完成业务处理的话存在一定问题:
tomcat 和 业务类耦合在一起了。



(2)改进

如图:
在这里插入图片描述

HTTP 服务器接收到请求之后把请求交给 Servlet 容器来处理, Servlet 容器通过 Servlet 接口调用业务类。

Servlet 接口和 Servlet 容器这一整套内容叫作 Servlet 规范。

注意: Tomcat 既按照 Servlet 规范的要求去实现了 Servlet 容器, 同时它也具有 HTTP 服务器的功能。

Tomcat 的两个重要身份:

  • http 服务器
  • Tomcat 是一个 Servlet 容器


二、Servlet 容器处理流程


如图:
在这里插入图片描述

当用户请求某个 URL 资源时:

  1. HTTP 服务器会把请求信息使用 ServletRequest 对象封装起来
  2. 进一步去调用 Servlet 容器中某个具体的 Servlet
  3. 在 2 中, Servlet 容器拿到请求后, 根据 URLServlet 的映射关系, 找到相应的 Servlet
  4. 如果 Servlet 还没有被加载, 就用反射机制创建这个 Servlet , 并调用 Servletinit 方法来完成初始化
  5. 接着调用这个具体 Servletservice 方法来处理请求, 请求处理结果使用 ServletResponse 对象封装
  6. ServletResponse 对象返回给 HTTP 服务器, HTTP 服务器会把响应发送给客户端。


三、系统总体架构


通过上面发现 tomcat 有两个非常重要的功能需要完成:

  1. 和客户端浏览器进行交互, 进行 socket 通信, 将字节流和 Request/Response 等对象进行转换
  2. Servlet 容器处理业务逻辑

如图:

在这里插入图片描述

Tomcat 设计了两个核心组件连接器(Connector)和容器(Container)来完成 Tomcat 的两大核心功能。

  • 连接器, 负责对外交流

处理 Socket 连接, 负责网络字节流与 RequestResponse 对象的转化;

  • 容器, 负责内部处理

加载和管理 Servlet, 以及具体处理 Request 请求;

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值