首页 > 其他分享 >Tomcat架构学习

Tomcat架构学习

时间:2023-09-08 10:46:51浏览次数:40  
标签:容器 架构 Tomcat Request 学习 连接器 组件 负责

1、Tomcat的两个核心功能:

处理Socket连接,负责负责网络字节流与Request和Response对象的转化。

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

Tomct设计了两个核心组件连接器(Connector)和容器(Container)来分别做这两件事情。连接器负责对外交流,容器负责对内处理。

单独的连接器或者容器都不能对外提供服务,需要把他们组装起来才能工作,组装后这个整体叫做Service组件。

2、连接器需要完成3个功能:

网络通信。

应用层协议解析。

Tomcat Request/Response与Servlet Request/Response转换。

Tomcat分别提供了3个组件来完成对应功能,EndPoint、Processor、Adapter。

组件之间通过抽象接口交互。这样做的一个好处就是封装变化。

EndPoint负责提供字节流给Processor,Processor负责提供Tomcat Request给Adapter,Adapter负责提供Servlet Request给容器。

由于I/O模型和应用层协议可以自由组合,比如NIO+HTTP,NIO2+AJP。Tomcat将网络通信和引用层协议解析放在一起考虑,设计了ProtocolHandler接口封装这两种变化。

 连接器详细组件图:

3、容器

 

标签:容器,架构,Tomcat,Request,学习,连接器,组件,负责
From: https://www.cnblogs.com/gaoshikenan/p/17686903.html

相关文章

  • 学习使用双指针(leetcode)
    一、K和数对的最大数目(JAVA)给你一个整数数组nums和一个整数k。每一步操作中,你需要从数组中选出和为k的两个整数,并将它们移出数组。返回你可以对数组执行的最大操作数。示例1:输入:nums=[1,2,3,4],k=5输出:2解释:开始时nums=[1,2,3,4]:-移出1和4,......
  • Go学习笔记3
    九、错误处理1.defer+recover机制处理异常错误展示错误:发现:程序中出现错误/恐慌以后,程序被中断,无法继续执行。错误处理/捕获机制:内置函数recover:2.自定义错误需要调用errors包下的New函数:函数返回error类型3.panic有一种情况:程序出现错误以后,后续代码就没有必要执......
  • Tomcat7+ 弱口令 && 后台getshell漏洞
    目录Tomcat7+弱口令&&后台getshell漏洞1.1、漏洞描述1.2、漏洞等级1.3、影响版本1.4、漏洞复现1、基础环境2、漏洞扫描3、漏洞验证Tomcat7+弱口令&&后台getshell漏洞说明内容漏洞编号漏洞名称Tomcat7+弱口令&&后台getshell漏洞漏洞评级高危影响范......
  • Tomcat_PUT方法任意写文件(CVE-2017-12615)
    目录Tomcat_PUT方法任意写文件(CVE-2017-12615)1.1、漏洞描述1.2、漏洞等级1.3、影响版本1.4、漏洞复现1、基础环境2、漏洞扫描3、漏洞验证工具扫描验证POC1.6、修复建议Tomcat_PUT方法任意写文件(CVE-2017-12615)说明内容漏洞编号CVE-2017-12615漏洞名称Tomcat_P......
  • Qemu源码分析(1)—Apple的学习笔记
    一,前言开始qemu源码学习之路。从简书切换到此,真的是一键导入,太快了。二,从某个点开始分析源码Type_new函数就是把TypeInfo内容复制到TypeImpl。1.总的来说type_register_internal就是创建一个TypeImpl类,然后添加到hash表中。staticTypeImpl*type_register_internal(constTypeInfo......
  • 《Linux从入门到精通》(第2版 刘忆智 等著) 学习感受
    这本书确实是一本非常基础的入门书籍,网上评价比较高,但是它的内容是否真的有那么好,我感觉也就那样了,毕竟是非常基础的书籍,怎么写也很难写出花来。对于基本的使用不同的书籍描述应该也差不多(我没有认真看过其他书籍......
  • 关于传统迁移学习的一点概念
    (来源于一位学姐的口述)迁移学习的目标:训练数据集A迁移到测试数据集B,它们的数据分布不一样。方法1:特征空间的对齐。比如重要性采样,强行让两个分布比较接近。方法2:把特征分为领域无关、领域相关的部分,把这两部分提取出来。领域就是图片风格之类的东西,一些可能会影响数据......
  • Java后端学习路线经验分享--全网最靠谱
    ​简介本文是Java自学的经验分享,5个月即可入职Java后端开发岗位。我之前是自学的Java,Java零基础,用了5个月的时间,拿到了6家offer:恒生电子(12K)、九翊科技(13K)、良业科技(12K),九慧科技(9K),还有一家忘记名字了。有的东西不能复制,但学习Java的方法是可以复制的。在本站学习,你将能复制站长......
  • C++学习笔记
    练习打印金字塔goto跳转语句for循环for(表达式1;表达式2;表达式3)------外层循环{循环语句块1;for(表达式4;表达式;表达式6)-------内层循环{循环语句块2}//循环语句块1;}表达式1----->赋值语句---->用来初始化----->可......
  • 网络编程学习大纲&&网络编程1.1
    网络编程的学习大纲计算机网络体系结构模型,网络编程专业术语(socket/IP/端口号),通信时序图传输协议:TCP协议/UDP协议多进程并发服务器,多线程并发服务器网络编程IO模型:阻塞IO/非阻塞IO/多路复用/信号驱动超时接收数据方法回顾系统编程中进程的通信方式管道无名管道(只能亲......