首页 > 其他分享 >Tomcat学习笔记

Tomcat学习笔记

时间:2024-01-31 15:11:07浏览次数:18  
标签:容器 Socket Tomcat Request 笔记 学习 连接器 Processor

1.Tomcat总体架构

Tomcat要实现2个核心功能:

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

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

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

 

 

2.连接器有三个组件组成

Endpoint负责提供字节流给Processor,Processor负责提供Tomcat Request对象给Adapter,Adapter负责提供ServletRequest对象给容器。

Endpoint是通信端点,即通信监听的接口,是具体的Socket接收和发送处理器,是对传输层的抽象,因此Endpoint是用来实现TCP/IP协议的。(有两个重要的子组件:Acceptor和SocketProcessor。其中Acceptor用于监听Socket连接请求。SocketProcessor用于处理接收到的Socket请求,它实现Runnable接口,在run方法里调用协议处理组件Processor进行处理。为了)

Processor用来实现HTTP协议,Processor接收来自Endpoint的Socket,读取字节流解析成Tomcat Request和Response对象,并通过Adapter将其提交到容器处理,Processor是对应用层协议的抽象。

ProtocolHandler接口负责解析请求并生成Tomcat Request类。但是这个Request对象不是标准的ServletRequest,也就意味着,不能用Tomcat Request作为参数来调用容器。Tomcat设计者的解决方案是引入CoyoteAdapter,这是适配器模式的经典运用,连接器调用CoyoteAdapter的sevice方法,传入的是Tomcat Request对象,CoyoteAdapter负责将Tomcat Request转成ServletRequest,再调用容器的service方法。

 

标签:容器,Socket,Tomcat,Request,笔记,学习,连接器,Processor
From: https://www.cnblogs.com/yuluoxingkong/p/17999302

相关文章

  • CMake 笔记
    cmake笔记目录cmake笔记CMake命令行选项常用CMake语法特殊变量变量常用基本测试安装其它其它基本使用FetchContentvcpkgwindowslinux及wslwindows配环境还能不能再恶心点......
  • 李宏毅《机器学习》总结 - Transformer
    前言当时老师要求我做transformer和self-attention的ppt,结果当时在训练ACM没大有时间,就弄了个质量不高的,不出意外的被喷了。。。现在回头看看当时做的整体没有大问题,但是由于知识没有连贯起来导致有些地方没有提到,也没有形成一个比较完整的架构。Transformer能做的任务......
  • tomcat启动时报错:Caused by: java.lang.IllegalArgumentException: AJP连接器配置secr
    31-Jan-202414:01:13.812信息[main]org.apache.coyote.AbstractProtocol.start开始协议处理句柄["http-nio-8080"]31-Jan-202414:01:13.818严重[main]org.apache.catalina.core.StandardService.startInternalFailedtostartconnector[Connector[AJP/1.3-8009]]......
  • Kali学习笔记-04-利用SQLmap实现SQL注入
    Kali学习笔记-04-利用SQLmap实现SQL注入KaliLinux网络安防一、SQLmap简介SQLMAP是一个自动化的SQL注入工具,其主要功能是扫描,发现并利用给定的URL和SQL注入漏洞,其广泛的功能和选项包括数据库指纹,枚举,数据库提权,访问目标文件系统,并在获取操作权限时执行任意命令。SQLMAP是开......
  • 读论文-基于自注意力机制和迁移学习的跨领域推荐算法
    前言今日要读的文章为一篇2022年4月2日发表于《计算机科学》的期刊文章;文章发现了传统的单领域推荐算法的问题:传统的单领域推荐算法受限于用户和项目的稀疏关系,存在用户/项目冷启动的问题,并且,其仅以用户对项目评分进行建模,忽略了评论文本中所蕴含的信息。基于此,文章提出了一种基......
  • Vue3.0学习(一)
    1.Vue脚手架创建通过npm命令可以创建Vue3的脚手架工程:##创建工程npminitvite-app<project-name>##进入工程目录cd<project-name>##安装依赖npminstall##运行npmrundev2.关于setupVue中支持两种Api风格:选项式、组合式。官网中解释:使用选项式API,我们可以用......
  • 阅读笔记11
    《梦断代码》讲述了技术与人性的冲突、社会变革与人际关系、对技术乌托邦的反思、游戏与现实的碰撞、人性的探索、以及如何看待科技行业这几个方面。技术与人性的冲突是将技术与人性之间的冲突作为主要主题,探讨了信息时代下技术发展对人类生活的影响。小说中提到了技术进步所带来......
  • 阅读笔记22
    《梦断代码》一书让我有很深的思考和反思。这本小说给了我一个科技发展对人类社会和个体生活产生深远影响的想象空间。它揭示了技术与人性之间的冲突和张力。尽管技术的发展带来了无数便利和可能性,但在追逐技术进步的过程中,人类也付出了很多代价,例如个人隐私的侵犯、人际关系的疏......
  • 轻松学习SQL外键约束的核心原理和实用技巧
    测试管理班是专门面向测试与质量管理人员的一门课程,通过提升从业人员的团队管理、项目管理、绩效管理、沟通管理等方面的能力,使测试管理人员可以更好的带领团队、项目以及公司获得更快的成长。提供1v1私教指导,BAT级别的测试管理大咖量身打造职业规划。SQL约束-外键约束测试管理......
  • 轻松学习SQL外键约束的核心原理和实用技巧
    测试管理班是专门面向测试与质量管理人员的一门课程,通过提升从业人员的团队管理、项目管理、绩效管理、沟通管理等方面的能力,使测试管理人员可以更好的带领团队、项目以及公司获得更快的成长。提供1v1私教指导,BAT级别的测试管理大咖量身打造职业规划。SQL约束-外键约束......