CTOCIO IT专家网

天极传媒 比特网 | 天极网 | IT专家网 | IT商网 | 52PK游戏网 | 手机天极 | IT分众 |
IT专家网搜索

您现在的位置: IT专家网 > Web服务子站 > Java技术

TOMCAT源码分析(启动框架)

作者: zhengsheng ,  出处:IT专家网论坛, 责任编辑: 包春林, 
2008-05-15 04:00
  本文是我阅读了TOMCAT源码后的一些心得。 主要是讲解TOMCAT的系统框架, 以及启动流程。若有错漏之处,敬请批评指教!

  通常我们会用到两种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来处理。

  比如: < http://127.0.0.1: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是干什么用的。

  我们得先理解一下容器和组件的关系。

  需求被传递到了容器里面, 在合适的时候, 会传递给下一个容器处理。

  而容器里面又盛装着各种各样的组件, 我们可以理解为提供各种各样的增值服务。

  manager: 当一个容器里面装了manager组件后,这个容器就支持session管理了, 事实上在tomcat里面的session管理, 就是靠的在context里面装的manager component.

  logger: 当一个容器里面装了logger组件后, 这个容器里所发生的事情, 就被该组件记录下来啦! 我们通常会在logs/ 这个目录下看见 catalina_log.time.txt 以及 localhost.time.txt 和localhost_examples_log.time.txt。 这就是因为我们分别为:engin, host以及context(examples)这三个容器安装了logger组件, 这也是默认安装, 又叫做标配。

  loader: loader这个组件通常只会给我们的context容器使用, loader是用来启动context以及管理这个context的classloader用的。

共5页。 9 1 2 3 4 5 :

网友评论

笔名 
请您注意:遵守国家有关法律、法规,尊重网上道德,承担一切因您的行为而直接或间接引起的法律责任。    IT专家网友拥有管理笔名和留言的一切权利。
  • 周排行榜
  • 月排行榜

邮件订阅

       
天极服务 | 关于我们 | 网站律师 | 加入我们 | 联系我们 | 广告业务 | 友情链接 | 我要挑错
All Rights Reserved, Copyright 2004-2008, Ctocio.com.cn
渝ICP证B2-20030003号 如有意见请与我们联系 powered by 天极内容管理平台CMS4i