本文以tomcat6源码为基础,主要分享如下内容:

  1. tomcat总体架构
  2. tomcat核心模块分析

本文主要目的是梳理清楚tomcat有哪些核心模块以及这些模块之间的关系。文章使用类图阐述这些内容。

总体架构

Tomcat是目前非常流行的web容器,tomcat总体架构见下图。

图1 Tomcat总体架构图

  • Tomcat最外层是一个Server模块,它控制整个tomcat的生命周期。
  • Server由多个Service组成,一个Service是一个对外服务的实体。
  • Service由多个Connector、一个Container、一个Executor和其它基础服务模块组成。
  • 其中Connector和Container是tomcat的核心模块,也是本文要重点剖析的模块。Executor是提供一个线程池,如果在Server.xml中没有配置,则tomcat启动时候会分配一个默认的线程池。

Connector好比酒店前台接待人员,Container好比一个酒店房间、床铺等硬件设施,一个酒店可以有多类不同职能的接待人员。比如:有的专职为vip客户服务,有的专职为普通用户服务,有的为领导干部服务等。同样在Server.xml中也可以配置不同类型的Connector,比

tomcat6源码分析一(核心模块分析)相关推荐

  1. php企业黄页源码,PHPCMS 企业黄页模块分析 倾向于b2b电子商务

    7月5日,phpcms 企业黄页模块测试版发布,官方演示站点:http://demo.phpcms.cn/yp/. 今年来,国内各大建站软件都在b2b电子商务这块投入研发力量,推出了企业黄页等功能模块 ...

  2. mybatis源码之执行insert代码分析

    系列文档: mybatis源码之创建SqlSessionFactory代码分析 mybatis源码之创建SqlSessionFactory代码分析 - mapper xml解析 mybatis源码之执 ...

  3. Android 源码 Camera2 预览流程分析四

    <Android 源码 Camera2 预览流程分析二>中进行了流启动,这是调用 QCamera3Channel start() 方法实现的,对应于 HAL_PIXEL_FORMAT_YC ...

  4. 老李推荐:第5章5节《MonkeyRunner源码剖析》Monkey原理分析-启动运行: 获取系统服务引用 1...

    老李推荐:第5章5节<MonkeyRunner源码剖析>Monkey原理分析-启动运行: 获取系统服务引用 上一节我们描述了monkey的命令处理入口函数run是如何调用optionPro ...

  5. 老李推荐:第6章1节《MonkeyRunner源码剖析》Monkey原理分析-事件源-事件源概览 1...

    老李推荐:第6章1节<MonkeyRunner源码剖析>Monkey原理分析-事件源-事件源概览 在上一章中我们有简要的介绍了事件源是怎么一回事,但是并没有进行详细的描述.那么往下的这几个 ...

  6. 老李推荐:第6章6节《MonkeyRunner源码剖析》Monkey原理分析-事件源-事件源概览-命令队列...

    老李推荐:第6章6节<MonkeyRunner源码剖析>Monkey原理分析-事件源-事件源概览-命令队列 事件源在获得字串命令并把它翻译成对应的MonkeyEvent事件后,会把这些事件 ...

  7. Unity3D RPG角色扮演游戏源码(上下)-----源代码分析----01-----主角人物动画

    在源代码的里面有fbx格式的模型文件,发现有2个文件,一个是骨骼动画文件,可以分割为多个动画片段,还有一个是模型文件,但是没有动画,但是可以导入分割好的动画片段到动画元素里面, 按照下面的说明,分割了 ...

  8. Unity3D RPG角色扮演游戏源码(上下)-----源代码分析----04--修改菜单窗口

    Unity3D RPG角色扮演游戏源码(上下)-----源代码分析----04--修改菜单Shop窗口 此脚本用于创建商店以销售商品 --------------------------------- ...

  9. 直播开篇——电商直播系统源码直播场景和技术分析

    一.直播场景和技术分析 好吧,既然你们非要搞什么直播,我就开始写写直播吧,怪不得WebRTC是下一代关键技术,直播的一些业务页必须要用WebRTC来实现 1. 电商直播系统源码场景分析 秀场直播 这个 ...

最新文章

  1. .html(),.text()和.val()的差异总结
  2. memcached的认识
  3. 宁波医院计算机试题及答案,(宁波市第25届小学生计算机程序设计竞赛试题及答案.doc...
  4. 通过Dapr实现一个简单的基于.net的微服务电商系统(十)——一步一步教你如何撸Dapr之绑定...
  5. [转]【分布式系统】唯一ID生成策略总结
  6. javascript学习系列(2):数组中的filter方法
  7. python--list
  8. 力扣908.最小差值Ⅰ
  9. ssh user@host command 与login host运行shell的区别
  10. .vue文件怎么使用_Vue使用ifream遇到的问题?怎么处理跨域呢?
  11. 开始使用windows live writer写博客。
  12. tensorflow学习笔记(2)张量与计算图
  13. mybaitis List入参
  14. 【cf585-div2: B】 The Number of Products(dp/推导)
  15. 机器学习练习 6 - Support Vector Machines(支持向量机)
  16. Cortex-M0核芯片bootloader调试过程
  17. 深信服校园招聘安全攻防A卷
  18. 牛客网直通BAT面试算法精讲课优惠码
  19. JAVA的if结构单分支结构简单易懂
  20. 何为数据库连接池?其工作原理是什么?

热门文章

  1. 软件测试学习——判定表法
  2. 关于数据工厂平台 的俩种设计路线
  3. 用子查询的方法查找研发部比财务部所有雇员收入都高的雇员的姓名
  4. 三、Python零基础安装教程,用Eclipse编写Python程序
  5. 线缆认证测试仪基础应用及各种网线应用
  6. Python字符串格式化,%和format函数
  7. 在python中定义类时实例方法的第一个参数名称_第7.5节 揭开Python类中self的面纱...
  8. 直播App中Android酷炫礼物动画实现方案(上篇)
  9. WDF----PCI设备初始化
  10. windows下安装java adb_windows ADB配置java adk / Android adk