1. Tomcat 类加载机制 在Tomcat中,分别包含以下几个加载器: Common类加载器,用于加载Tomcat和各个Web应用共享的类 Share类加载器,用于加载各个Web共享的类 Server类加载器,用于加载Tomcat各个类 … 继续阅读 Tomcat 源码分析总结与收获
标签:Tomcat
Tomcat 源码剖析(七)Response.getOutputStream() 是如何缓存数据流的?
【问题】 在Tomcat 8以后,默认都是使用的NIO,并且内部有一定的缓存,那么 Tomcat是如何缓存Request和Response的输入输出流的? 【思路】 这个感觉比较简单,NIO的输入单位是ByteBuffer,那么直接在Res … 继续阅读 Tomcat 源码剖析(七)Response.getOutputStream() 是如何缓存数据流的?
Tomcat 源码剖析(六)Tomcat如何读取web.xml并生成ServletConfig对象
【问题】 Tomcat是如何读取web.xml并生成ServletConfig对象的 【猜想】 这个没什么思路,要是按照常规的来,结合Tomcat读取server.xml的方式来看,应该同样是是通过Degister通过规则配置生成相应的属性 … 继续阅读 Tomcat 源码剖析(六)Tomcat如何读取web.xml并生成ServletConfig对象
Tomcat源码剖析(五)Tomcat如何管理Servlet生命周期
【问题】 Servlet规范中规定Servlet生命周期只调用一次init()和distory()方法,每次请求来只调用service()方法,那么Tomcat是如何管理Servlet生命周期的? 高并发请求中,如果保证只初始化一个Serv … 继续阅读 Tomcat源码剖析(五)Tomcat如何管理Servlet生命周期
Tomcat源码剖析(四)Tomcat如何找到请求Url对应的Servlet
【分析】 在Servlet中,规定的Url组成为:ip:port/context/servlet-path 因此,想要找到对应的Servlet,必须首先解析context,然后再找到对应的servlet-path 同时,servlet协议规 … 继续阅读 Tomcat源码剖析(四)Tomcat如何找到请求Url对应的Servlet
Tomcat源码剖析(三)Connector 处理请求连接分析
Connector 处理请求连接分析 Tomcat 是如何解析Http请求协议的? 在上一章中,分析了Tomcat中的connector的初始化与启动。但是由于使用的是Tomcat 9的代码,代码中默认使用的是NIO处理的IO连接,而NIO … 继续阅读 Tomcat源码剖析(三)Connector 处理请求连接分析
Tomcat源码剖析(二)连接器
Connector: 在上一章中,分析了整个Tomcat的结构以及启动流程,在整个框架中,我们分析了StandardServer,StandardService等的初始化以及启动,但是对于连接器,却是一笔带过?为什么呢?并不是因为连接器不重 … 继续阅读 Tomcat源码剖析(二)连接器
Tomcat源码剖析(一)启动
Tomcat源码剖析(一)启动 首先需要明白的是: Tomcat以多模块划分各个各个功能点,每个模块都统一实现了生命周期的接口,并且每个模块的生命周期都由它的拥有者或父类启动。 Tomcat的整体结构如下: Server负责整个项目的关闭和 … 继续阅读 Tomcat源码剖析(一)启动
JVM双亲委派机制与Tomcat
双亲委派模型与JVM 类加载 讲个故事: 以前,爱捣鼓的小明突然灵机一动,写出了下面的代码 package java.lang; /** * @author dengchengchao * @date 2019/2/26 19:20 */ … 继续阅读 JVM双亲委派机制与Tomcat
简单了解Apache Commons Digester
Apache Commons Digester 在Tomcat,Spring等系统框架中,都会出现xml配置,在最初的Spring框架中,都是通过xml文件描述对象信息继而注入到系统中,那xml是如何转化为JavaBean的呢? Diges … 继续阅读 简单了解Apache Commons Digester