- 974
- 0
- 约1.61万字
- 约 18页
- 2017-10-06 发布于湖北
- 举报
TOMCAT源码分析
TOMCAT 源码分析(启动框架)
前言:
本文是我阅读了TOMCAT 源码后的一些心得。 主要是讲解TOMCAT 的系统框架, 以及启
动流程。若有错漏之处,敬请批评指教!
建议:
毕竟TOMCAT 的框架还是比较复杂的, 单是从文字上理解, 是不那么容易掌握TOMCAT
的框架的。 所以得实践、实践、再实践。 建议下载一份TOMCAT 的源码, 调试通过, 然后单
步跟踪其启动过程。 如果有不明白的地方, 再来查阅本文, 看是否能得到帮助。 我相信这
样效果以及学习速度都会好很多!
1. Tomcat 的整体框架结构
Tomcat 的基本框架, 分为4 个层次。
Top Level Elements:
Server
Service
Connector
HTTP
AJP
Container
Engine
Host
Context
Component
manager
logger
loader
pipeline
valve
...
站在框架的顶层的是Server 和Service
Server: 其实就是BackGroud 程序, 在Tomcat 里面的Server 的用处是启动和监听服
务端事件(诸如重启、关闭等命令。 在tomcat 的标准配置文件:server.xml 里面, 我们可以
看到“Server port=8005 shutdown=SHUTDOWN debug=0;”这里的
SHUTDOWN就是server 在监听服务端事件的时候所使用的命令字)
Service :在tomcat 里面, service 是指一类问题的解决方案。 通常我们会默认使用
tomcat 提供的:Tomcat-Standalone 模式的service。 在这种方式下的service 既给我们
提供解析jsp 和servlet 的服务, 同时也提供给我们解析静态文本的服务。
Connector: Tomcat 都是在容器里面处理问题的, 而容器又到哪里去取得输入信息呢?
Connector 就是专干这个的。 他会把从socket 传递过来的数据, 封装成Request, 传递给
容器来处理。
通常我们会用到两种Connector,一种叫http connectoer, 用来传递http 需求的。 另一
种叫AJP, 在我们整合apache 与tomcat 工作的时候, apache 与tomcat 之间就是通过
这个协议来互动的。 (说到apache 与tomcat 的整合工作, 通常我们的目的是为了让
apache 获取静态资源, 而让tomcat 来解析动态的jsp 或者servlet。)
Container: 当http connector 把需求传递给顶级的container: Engin 的时候, 我们的
视线就应该移动到Container 这个层面来了。
在Container 这个层, 我们包含了3 种容器: Engin, Host, Context.
Engin: 收到service 传递过来的需求, 处理后, 将结果返回给service( service 是通过
connector 这个媒介来和Engin 互动的 ).
Host: Engin 收到service 传递过来的需求后,不会自己处理, 而是交给合适的Host 来处
理。
Host在这里就是虚拟主机的意思, 通常我们都只会使用一个主机,既“localhost”本地机来处
理。
Context: Host 接到了从Host 传过来的需求后, 也不会自己处理, 而是交给合适的
Context 来处理。
比如: :8080/foo/index.jsp;
http://127.0.1:8080/bar/index.jsp;
前者交给foo 这个Context 来处理, 后者交给bar 这个Context 来处理。
很明显吧! context 的意思其实就是一个web app 的意思。
我们通常都会在server.xml 里面做这样的配置
Context path=/foo docBase=D:/project/foo/web /;
这个context 容器,就是用来干我们该干的事儿的地方的。
Compenent: 接下来, 我们继续讲讲component 是干什么用的。
我们得先理解一下容器和组件的关系。
需求被传递到了容器里面, 在合适的时候,
您可能关注的文档
- TIG焊接技术.pdf
- TIS-100参考手册.pdf
- TI_线性稳压器基础知识.pdf
- TJ-CL 328-2014_动车组碳滑板暂行技术条件.pdf
- TI 模拟开关指南.pdf
- TI公司IQmath中文学习手册.pdf
- TKScope多核调试LPC4300系列操作指南.pdf
- TLB中英文对照.pdf
- TLA8安卓智能网络TV板卡Mstar6A801.pdf
- TMS320F28335核心板:Core28335软件调试指南.pdf
- 2026年及未来5年内中国液体氩气行业投资前景及策略咨询研究报告.docx
- 2026年及未来5年内中国黄铜合页行业投资前景及策略咨询研究报告.docx
- 2026年及未来5年内中国竹工艺家具行业投资前景及策略咨询研究报告.docx
- 2025年中国微机数显自动分析仪市场调查研究报告.docx
- 2026年及未来5年内中国微尘白色粉笔行业投资前景及策略咨询研究报告.docx
- 2025年中国微电脑型压胶机市场调查研究报告.docx
- 2026年及未来5年内中国数字化等功游泳训练测试系统行业投资前景及策略咨询研究报告.docx
- 2025年中国圆形花瓶市场调查研究报告.docx
- 2026年及未来5年内中国植物纤维静淀过滤器行业投资前景及策略咨询研究报告.docx
- 2025年中国超音波手套机市场调查研究报告.docx
最近下载
- 平潭澳海上风电场项目可研收口报告2018年4月版本15工程设计概算表.pdf VIP
- 2024年常州信息职业技术学院单招职业技能测试题库(历年真题).docx VIP
- 腹膜透析指南(2025年版).docx VIP
- 党的二十届四中全会PPT课件.ppt VIP
- 产品设计与实训 设计实训.ppt VIP
- 施工现场建筑垃圾减量化专项方案.pdf VIP
- 《数学史》数学的起源.pptx VIP
- 2026年信息科技课标试题及答案.doc VIP
- 本科课件-ArcGIS Engine地理信息系统开发教程(完整).ppt
- 北京通州区2022-2023学年高一下学期期末质量检测英语试卷 含解析.docx VIP
原创力文档

文档评论(0)