
深入理解Tomcat
文章平均质量分 96
tomcat学习,源码,运行原理
努力就好其他的不管
不积跬步无以至千里。这一秒不放弃,下一秒就有希望!坚持下去就会成功!
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
Tomcat 9 源码解析 -- 请求如何经过tomcat到达servlet
前面几篇文章讲解了Tomcat如何启动的,如何通过NIO,开启一个ServerSocket服务监听。 最后用户通过浏览器就可以直接访问到想要的资源。 下图中Connector部分: 一个Connector将在某个指定端口上侦听客户请求,并将获得的请求交给Engine来处理,从Engine处获得回应并返回客户。 Tomcat有两个典型的Connector: - 一个直接侦听来自browser的http请求 - 一个侦听来自其它WebServer的请求 Coyote Http/1.1 Connec.原创 2020-05-17 10:16:19 · 1293 阅读 · 0 评论 -
Tomcat 9 源码解析 -- 与SpringMvc如何结合在一起
Tomcat启动项目的方式下,如何加载SpringMvc 中的 DispatcherServlet SpringBootServletInitializer类 public abstract class SpringBootServletInitializer implements WebApplicationInitializer { protected Log logger; // Don't initialize early private boolean register...原创 2020-05-15 00:06:37 · 547 阅读 · 0 评论 -
Tomcat 9 源码解析 -- tomcat框架设计(源码层次解析)
Tomcat 9 源码解析 -- tomcat框架设计 前文已经从架构层次讲解了tomcat框架设计,以及tomcat使用,以及每个模块的作用,以及各功能模块之间的关系。 下面是Tomcat 9 架构的一个启用的架构流程图: ...原创 2020-05-12 23:26:57 · 680 阅读 · 0 评论 -
Tomcat 9 源码解析 -- tomcat框架设计
Tomcat整体架构与重要组件 1.Tomcat整体架构 如果你浏览过Tomcat源码相关文章,你一定对此图不陌生. Tomcat即是一个HTTP服务器,也是一个servlet容器,主要目的就是包装servlet,并对请求响应相应的servlet,纯servlet的web应用似乎很好理解Tomcat是如何装载servlet的,但,当使用一些MVC框架时,如spring MVC、strusts2,可能就找不出servlet在哪里?其实spring MVC框架就是一整个servlet,在web.xml中原创 2020-05-11 23:43:23 · 696 阅读 · 0 评论 -
Tomcat 9 源码解析 -- 环境搭建
前言 为什么要学习tomcat源码? 以我个人来说,为什么我要学习tomcat源码,之前我看过一本书《tomcat源码解析》,讲的十分详细,但是那个是以tomcat 7 为基础进行讲解的。 看到tomcat 7 --》 tomcat 9 变化还是不少的,所以自己想再重新了解一下 最新tomcat 源码的原理。 1、 学习最新tomcat源码知识。 2、了解tomcat运行原理 浏览器 --》tomcat 然后再返回给 --》浏览器 的过程。 3、了解代码设计模式。 4、性能调优。因为项目..原创 2020-05-10 18:34:14 · 493 阅读 · 0 评论 -
Tomcat 9 源码解析 -- Connector组件(2)
Tomcat 9 源码解析 -- Connector组件 上文中已经分析到了processKey()方法。 Poller #run() 在run方法最后调用了 processKey(sk, attachment); // 处理SelectKey /** processKey()这个方法主要通过调用processSocket()方法创建一个SocketProcessor,然后丢到Tomcat线程池中去执行。每个Endpoint都有自己的SocketProce...原创 2020-05-10 00:06:14 · 700 阅读 · 0 评论 -
Tomcat 9 源码解析 -- Connector组件
<Service name="Catalina"> <Connector port="8080" protocol="HTTP/1.1" connectionTimeout="20000" redirectPort="8443" /> <Connector port="8009" protocol="AJP/1.3" redirectPort="8443" /> </Service> 1、首先.原创 2020-05-08 23:30:18 · 744 阅读 · 0 评论 -
Tomcat 9 源码解析 -- StandardContext
StandardContext 类介绍 StandardContext 和其他 Container 一样,也是重写了 startInternal 方法。由于涉及到 webapp 的启动流程,需要很多准备工作,比如使用 WebResourceRoot 加载资源文件、利用 Loader 加载 class、使用 JarScanner 扫描 jar 包,等等。因此StandardContex...原创 2020-05-07 23:47:38 · 1388 阅读 · 1 评论 -
Tomcat 9 源码解析 -- ServletContainerInitializer
最近一直在死磕Tomcat 9 的源码,在此写下一些自己的学习心得,大家可以一起学习,互相讨论。 本文主要是关于 Tomcat中 ServletContainerInitializer 初始化的部分。 先看一张截图: 1. 左侧为方法调用栈信息 2.中间部分是一个loader加载器获取资源路径信息 此处贴出源码:此处的源码是说明 tomcat 加载定义的ServletContai...原创 2020-05-06 23:31:22 · 898 阅读 · 0 评论 -
深入理解Tomcat(1) ------ 超文本传输协议(HTTP)
超文本传输协议(HTTP) HTTP是一种协议,允许web服务器和浏览器通过互联网进行来发送和接受数据。它是一种请求和响应协议。 客户端请求一个文件而服务器响应请求。HTTP使用可靠的TCP连接–TCP默认使用80端口。第一个HTTP版是HTTP/0.9,然后被HTTP/1.0所替代。正在取代HTTP/1.0的是当前版本HTTP/1.1,它定义于征求意见文档(RFC) 2616,可以从http...原创 2018-03-26 14:40:26 · 449 阅读 · 0 评论