Tomcat通过连接器和容器这两个核心组件完成整体工作,连接器负责处理socket连接和网络字节流与Request和Response对象的转化;容器负责加载和管理Servlet,以及具体处理Request请求。

在学习Tomcat整体架构前需要知道,Tomcat 支持的多种 I/O 模型和应用层协议。

Tomcat 支持的多种 I/O 模型和应用层协议

Tomcat 支持的 I/O 模型有:

  • NIO:非阻塞 I/O,采用 Java NIO 类库实现。
  • NIO.2:异步 I/O,采用 JDK 7 最新的 NIO.2 类库实现。
  • APR:采用 Apache 可移植运行库实现,是 C/C++ 编写的本地库。

Tomcat 支持的应用层协议有:

  • HTTP/1.1:这是大部分 Web 应用采用的访问协议。
  • AJP:用于和 Web 服务器集成(如 Apache)。
  • HTTP/2:HTTP 2.0 大幅度的提升了 Web 性能。

  Tomcat 为了实现支持多种 I/O 模型和应用层协议,一个容器可能对接多个连接器。

  在一个Tomcat中由多个Service,每个Service里面包含多个连接器和一个容器。通过在 Tomcat 中配置多个 Service,可以实现通过不同的端口号来访问同一台机器上部署的不同应用。连接器与容器之间通过标准的 ServletRequest 和 ServletResponse 通信。

Tomcat整体工作流程

  1.浏览器对服务器发起请求

  2.连接器接收到请求并处理,将其转化成ServletRequest

  3.将ServletRequest转交给容器处理

  4.容器通过这个ServeletRequest来定位Servlet,如果Servlet没有被加载,就需要加载这个Servelet

  5.执行Servlet中的方法

  6.响应给连接器一个ServletResponse对象

  7.连接器解析ServeletResponse对象

  8.将解析后的对象响应给前端。

最新文章

  1. web报表工具Stimulsoft Reports.Web在mvc项目中使用
  2. IT人可以关注的站
  3. 第 23 章 CSS3 边框图片效果
  4. Java中的查找算法之顺序查找(Sequential Search)
  5. js实现登陆页面的拖拽功能
  6. hdu 1556:Color the ball(线段树,区间更新,经典题)
  7. Sublime Text 2安装汉化破解、插件包安装教程
  8. Linux下安装MySQL数据库以及用C语言编程存取数据库
  9. linux创建线程之pthread_create
  10. CSS3/jQuery自己定义弹出窗体
  11. Node.js学习笔记(四): 全局对象
  12. WIN2016安装织梦没写入权限怎么办听语音
  13. Sharing The Application Tier File System in Oracle E-Business Suite Release 12.2
  14. Vasya and Binary String(来自codeforces
  15. Spring Cloud 入门教程(六): 用声明式REST客户端Feign调用远端HTTP服务
  16. josn的格式化
  17. 分布式系列 - dubbo服务telnet命令【转】
  18. mysql DISTINCT的用法
  19. 2.python函数编程-filter函数
  20. elasticsearch系列二:索引详解(快速入门、索引管理、映射详解、索引别名)

热门文章

  1. 傲视Kubernetes(二):Docker镜像搭建与本地Kubernetes环境搭建
  2. uniapp云打包配置讲解
  3. 要你命3000会员版v20.03_全球抖音模式
  4. C# 海量数据瞬间插入到数据库的方法
  5. Oracle数据导入Mysql中
  6. react第十五单元(react路由的封装,以及路由数据的提取)
  7. Raft算法系列教程1:Leader选举
  8. mysqldump 导出命令
  9. 单身狗福利!利用java实现每天给对象发情话,脱单指日可待!
  10. 【原创】Linux PCI驱动框架分析(一)