一本关于tomcat源码分析的书---How Tomcat Works,提供下载地址

Kylix_XP 2003-09-05 11:55:41
Tomcat的设计和实现处处体现着设计模式的思想,它的基本流程是首先通过解析xml格式的配置文件,获得系统的配置和应用信息,然后加载定制的组件模块提供各种系统服务。系统的各部分功能都是通过可以配置的组件模块来实现的。Tomcat实现中像Observer,Facade,Adapter,Singleton等多种设计模型在Tomcat的源码中随处可见,为我们提供了一个很好的学习设计模式的平台。我主要介绍一下Tomcat中程序流程控制所采用的设计模式,这是一个程序运行的框架。前面提到由于Sun公司的参与,Tomcat虽然基本的流程没有变化,但是Tomcat3.3和Tomcat4.0版本之间在概念上还是有很大地不同的。Tomcat3.3整体上是模块化的设计,而Tomcat4.0可以看作是采用面向组件技术进行设计的。组件是比模块更高级的一个层次。我们可以通过比较它们之间的不同来了解实现一个服务器软件可以采用的设计模式和实现方式

Tomcat不但为我们提供了设计和实现系统时的新思路,同时因为它是由组件或者模块构成的,所以它还为我们提供了大量可用的高效软件组件。这些组件都可以在我们的程序开发中使用。我简单列举一些,需要时可以直接从源码中取得。

一些特殊集合类数据结构如池、队列、缓存等可用于服务端开发。
\src\share\org\apache\tomcat\util\collections
一个简单的钩子(Hooks)机制的实现。
src\share\org\apache\tomcat\util\hooks
一个简单线程池(ThreadPool)的实现。
src\share\org\apache\tomcat\util\threads
组件Lifecycle接口的设计和实现。
\src\catalina\src\share\org\apache\Catalina
常用的日志信息的管理(Logger)的实现。
src\catalina\src\share\org\apache\catalina\logger
对xml格式的配置信息进行处理(XmlMapper)的实现。
src\catalina\src\share\org\apache\catalina\util\xml
对socket通讯的高级管理和实现(net)。
\src\catalina\src\share\org\apache\catalina\net
通过以上对Tomcat的简单的介绍,我们可以看出,作为一个开放源码的项目,Tomcat不但为我们提供了一个应用的平台,同时它还为我们提供了一个学习和研究设计模式、面向组件技术等理论的实践平台

How Tomcat Works 一书下载URL:
http://www.brainysoftware.com/

IBM developworks tomcat整体架设分析文章:
http://www-900.ibm.com/developerWorks/cn/java/l-from-tomact/index.shtml#1
...全文
1149 8 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
honest19 2003-09-08
  • 打赏
  • 举报
回复
大家可以一起探讨啊,可以发相互学习email;
email:00031082@163.com
wkliangsdqd 2003-09-08
  • 打赏
  • 举报
回复
mark
anyang_1978 2003-09-08
  • 打赏
  • 举报
回复
顶!!!!
Kylix_XP 2003-09-07
  • 打赏
  • 举报
回复
目前工作比较悠闲,有足够的时间研究一下JBOSS源码,tomcat源码,j2ee规范,想学习中间件和分布式技术的朋友交流一下!
JBOSS架构设计分析网址:
http://www.cs.usyd.edu.au/~jennyliu/jboss.html

qq: 80292980
email: yuxudong@163.com
liad 2003-09-06
  • 打赏
  • 举报
回复
thx, mark
honest19 2003-09-06
  • 打赏
  • 举报
回复
谢谢,资料不错
computersim 2003-09-06
  • 打赏
  • 举报
回复
mark
lymkelly 2003-09-06
  • 打赏
  • 举报
回复
谢谢

67,549

社区成员

发帖
与我相关
我的任务
社区描述
J2EE只是Java企业应用。我们需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本。
社区管理员
  • Java EE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧