- 1、本文档共27页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
《Tomcat7核心架构PPT》.pdf
Tomcat核心架构
玄宵杨朱
1
大纲
容器启动
组件装配
部署Web应用
Connector启动
请求处理
Tomcat如何运转?
分两大块
1. 容器就绪阶段
容器启动、组件装配、部署Web应用、Connector启动
2. 请求处理阶段
接收请求、http解析、uri mapping、执行servlet
1.1 容器启动
• Tomcat 目录结构
1.1 容器启动
1.1 容器启动
• 建立ClassLoader
1. 由lib目录下的jar包组成
2. 主要用来加载Tomcat 自身的类
3. 或者加载其他共用的类,比如JDBC Driver
4. 避免与应用冲突,尽量不要放log4j这样的jar包
1.1 容器启动
• 建立Digester XML解析嚣
1. 用途: 解析conf/server.xml文件
2. 解析器实现分析
① 前缀模式匹配
② 基于规则
例:
Xml : Server port=8005 shutdown=SHUTDOWN
Java:
digester.addObjectCreate(Server,
org.apache.catalina.core.StandardServer,
className);
digester.addSetProperties(Server);
代码含义:
遇到“Server”元素时,建立一个StandardServer实例,
并把此元素的属性的值注入到此实例中。
1.1 容器启动
1.2 组件装配
• 有哪些组件?
– Server、Service
– Engine、Host、Context、Wrapper
– Pipeline、Valve
– …….
• 组件生命周期(Lifecycle)
– Init = start = stop = destroy
Tomcat7核心架构图
• 生命周期事件监听器Lifecycle Listener
– 只要是有生命周期的组件都可以注册事件监听器
• 事件流
– before_init = after_init =
– before_start = … periodic … =
– before_stop = … = after_destroy
Demo
• 实现您自己的监听器
Demo
• 监听器配置丼例:
conf/server.xml
Demo
• Server、Service两个组件都配置了MyLifecycleListener
• 运行结果
– 事件类型: before_init
– 组件类型: StandardServer
– 事件类型: before_init
– 组件类型: StandardService
– 事件类型: after_init
– 组件类型: StandardService
– 事件类型: after_init
– 组件类型: StandardServer
– 事件类型: before_start
– 组件类型: StandardServer
–
– 事件类型: befo
您可能关注的文档
- 《S-13-070004(PCB_Layout_Guideline_鹞_EMI_ESD眈燊灭秶)(Integration_LinkageTechnology_Ltd.)》.pdf
- 《SAE_J1939培训教程2:应用培训》.pdf
- 《SAN存储技术白皮书汇总》.pdf
- 《SAS银行业风险管理》.pdf
- 《SD实用电气安装技术大全》.pdf
- 《SEO优化指南-搜索引擎工作原理》.pdf
- 《Sigrity PCB PI-SI 分析工具介绍》.pdf
- 《SIMPLE SWITCHER PCB Layout Guidelines》.pdf
- 《SMT制造工艺(下)》.pdf
- 《Solidworks官方技术白皮书——简化工业机械与重型装备的设计》.pdf
文档评论(0)