Tomcat源码解析系列
文章平均质量分 74
夜尽丶天明
这个作者很懒,什么都没留下…
展开
-
Tomcat源码解析(一)下载源码与导入eclipse
自从写web程序以来,web程序是如何在Tomcat中运行的一直困惑着我,不知道底层的运行机制是无法真正理解web的,所以就开始研究Tomcat源码,Tomcat是一个轻量级的java服务器,再结合《How Tomcat works》和网上大牛博客之后,也算知道了内部的运行架构。 首先去官网下载Tomcat源码,我下载的是apache-tomcat-7.0.63-src(在这里下载),因原创 2015-08-09 11:46:56 · 4130 阅读 · 2 评论 -
Tomcat总体架构(Tomcat源码解析系列二)
Tomcat即是一个HTTP服务器,也是一个servlet容器,主要目的就是包装servlet,并对请求响应相应的servlet,纯servlet的web应用似乎很好理解Tomcat是如何装载servlet的,但,当使用一些MVC框架时,如spring MVC、strusts2,可能就找不出servlet在哪里?其实spring MVC框架就是一整个servlet,在web.xml中配置如下:原创 2015-08-10 09:56:48 · 10263 阅读 · 0 评论 -
tomcat的启动过程(Tomcat源码解析(三))
Tomcat组件生命周期管理在Tomcat总体结构 (Tomcat源代码解析之二)中,我们列出了Tomcat中Server,Service,Connector,Engine,Host,Context的继承关系图,你会发现它们都实现了org.apache.catalina.Lifecycle接口,而org.apache.catalina.util.LifecycleBase采用了模板方法模式原创 2015-08-10 17:49:35 · 9918 阅读 · 6 评论 -
Tomcat 设计模式总结(Tomcat源代码阅读系列之八)
本篇我们将来分析一下Tomcat中所涉及到设计模式,本文我们将主要来分析外观模式,观察者模式,责任链模式,模板方法模式,命令模式。 在开始本文之前,笔者先说明一下对于设计模式的一点看法。笔者曾经经常看到网上有人讨论设计模式,也偶尔会遇到有人非要严格按照GOF设计模式的类图以及其中的角色去套用别人的设计,只要类图不一样,或者角色多了或者少了就会觉得怎么和官方定义的模式不一样,其实这都是对设计模式原创 2015-08-11 20:55:13 · 5907 阅读 · 2 评论 -
Tomcat源码解析系列
学web也有一段时间了,为了从底层了解web应用在Tomcat中的运行,决定看一下Tomcat的源码参见《How Tomcat works》 和大牛博客,对大体架构有了一定的了解,但是具体细节还是不大清楚,以后随着对这方面的深入再具体看吧。下面是解析的Tomcat系列:Tomcat源码解析(一)下载源码与导入eclipseTomcat总体架构(Tomcat源码解析系列原创 2015-08-11 21:06:21 · 3795 阅读 · 0 评论 -
Tomcat请求处理过程(Tomcat源码解析五)
前面已经分析完了Tomcat的启动和关闭过程,本篇就来接着分析一下Tomcat中请求的处理过程。在开始本文之前,咋们首先来看看一个Http请求处理的过程,一般情况下是浏览器发送http请求->建立Socket连接->通过Socket读取数据->根据http协议解析数据->调用后台服务完成响应,详细的流程图如上图所示,等读者读完本篇,应该就清楚了上图所表达的意思。Tomcat既是一个Http原创 2015-08-11 09:25:31 · 8101 阅读 · 3 评论 -
Tomcat类加载器机制(Tomcat源码解析六)
要说Tomcat的Classloader机制,我们还得从Bootstrap开始。在BootStrap初始化的时候,调用了org.apache.catalina.startup.Bootstrap#initClassLoaders方法,这个方法里面创建了3个ClassLoader,它们分别是commonLoader,catalinaLoader,sharedLoader,其中catalinaLoad原创 2015-08-11 10:28:48 · 4950 阅读 · 2 评论 -
Tomcat Session管理机制(Tomcat源码解析七)
前面几篇我们分析了Tomcat的启动,关闭,请求处理的流程,tomcat的classloader机制,本篇将接着分析Tomcat的session管理方面的内容。在开始之前,我们先来看一下总体上的结构,熟悉了总体结构以后,我们在一步步的去分析源代码。Tomcat session相光的类图如下:通过上图,我们可以看出每一个StandardContext会关联一个Manager,原创 2015-08-11 11:22:18 · 3912 阅读 · 0 评论 -
Tomcat关闭过程(Tomcat源码解析四)
我们在Tomcat启动过程(Tomcat源代码阅读系列之三)一文中已经知道Tomcat启动以后,会启动6条线程,他们分别如下:"ajp-bio-8009-AsyncTimeout" daemon prio=5 tid=7f8738afe000 nid=0x115ad6000 waiting on condition [115ad5000]"ajp-bio-8009-Acceptor-0"原创 2015-08-10 20:31:52 · 4572 阅读 · 0 评论