![](https://img-blog.csdnimg.cn/direct/58aacea193e74f4e80714c9c5d8fa837.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
tomcat
文章平均质量分 97
tomcat
冬天vs不冷
Java开发工程师,热衷于分享记录当下热门常用的技术,从基础使用到源码解析
展开
-
Tomcat源码解析(八):一个请求的执行流程(附Tomcat整体总结)
前文中我们介绍了NIO解析请求数据,网络字节流转化为Request和Response对象。接下来介绍拿到Req和Res之后如何走到Servelt,以及正常响应返回。回顾之前篇章,NioEndpoint通过socket服务端监听8080端口接收连接,获取到连接扔给连接池处理,SocketProcessor从NioChannel通道中读取数据到ByteBuff缓冲区再赋值给对应属性,最后通过适配器生成容器Req和Res调用容器管道的执行方法。Endpoint是连接器Connector。原创 2024-06-10 15:22:25 · 2880 阅读 · 167 评论 -
Tomcat源码解析(七):底层如何获取请求url、请求头、json数据?
前文中我们介绍了连接器的初始化和启动,实际就是EndPoint的初始化启动,EndPoint主要负责接收socket请求,然后将socket请求包装为SocketProcessor对象(实现Runnable接口)扔给线程池Executor处理。接下来介绍NIO如何解析请求数据,网络字节流与Request和Response对象的转化。Nio通过NioChannel将请求数据读取到ByteBuffer缓冲区中先解析请求行,包括请求方式、请求url、请求协议再解析请求头的name和value解析都是通过。原创 2024-05-27 09:05:14 · 1946 阅读 · 129 评论 -
Tomcat源码解析(六):Connector、ProtocolHandler、Endpoint
前文中我们介绍了容器Engine、Host、Context、Wrapper的启动,代表整个tomcat容器启动就算完成了。接下来介绍下连接器,处理Socket连接,负责网络字节流与Request和Response对象的转化。Tomcat设计了3个组件。Endpoint(网络通信)负责提供字节流给Processor;Processor(应用层协议解析)负责提供Tomcat Request对象给Adapter;Adapter(请求响应转化)负责提供ServletRequest对象给容器。原创 2024-05-20 09:12:53 · 2821 阅读 · 117 评论 -
Tomcat源码解析(五):StandardEngine、StandardHost、StandardContext、StandardWrapper
前文中我们介绍了StandServer与StandService的init与start方法,而Service的init方法和start方法则是调用顶级容器Engine、请求url映射Mapper、执行器Executor、连接器Connector的init和start方法。本文就介绍下容器的init和start及Mapper的组成。至此,整个容器的启动过程就介绍完了,可以看到整个流程是由Server起步直到Wrapper结束。原创 2024-04-01 08:58:13 · 2760 阅读 · 27 评论 -
Tomcat源码解析(四):StandardServer和StandardService
前文Tomcat源码解析(二):Bootstrap和Catalina介绍Tomcat的启动类的加载,在Catalina初始化时加载了server.xml,创建ServerServiceConnector等一些列组件,然后调用Server的init和start方法,启动tomcat。Tomcat源码解析(三):LifeCycle生命周期管理介绍了组件init、start、stop等共同生命周期方法,使用模板方法设计模式,具体的实现类由子类去实现。原创 2024-03-11 07:42:14 · 2265 阅读 · 110 评论 -
Tomcat源码解析(三):LifeCycle生命周期管理
在前文中我们介绍了tomcat的启动类加载核心内容就是getServer().init()组件的初始化和getServer().start()启动服务由于所有的组件均存在初始化启动停止等生命周期方法,拥有生命周期管理的特性基于生命周期管理抽象成了一个接口Lifecycle组件Server、Service、Container、Executor、Connector组件,都实现生命周期的接口监听器处理生命周期方法生命周期状态。原创 2024-03-05 14:33:59 · 1690 阅读 · 31 评论 -
Tomcat源码解析(二): Bootstrap和Catalina
Bootstrap是一个启动引导类,本身没有太多启动关闭细节的实现而是通过加载Catalina,对Catalina发号施令,调用start、stop等方法。原创 2024-02-29 21:42:52 · 1424 阅读 · 109 评论 -
Tomcat源码解析(一): Tomcat整体架构
来确定请求是由哪个Wrapper容器里的。Pipeline-Valve是责任链模式。Tomcat支持的I/O模型。Tomcat支持的应用层协议。Pipeline接口。原创 2024-01-09 17:53:09 · 2233 阅读 · 132 评论