Chinaunix首页 | 论坛 | 博客
  • 博客访问: 1414482
  • 博文数量: 264
  • 博客积分: 5810
  • 博客等级: 大校
  • 技术积分: 3528
  • 用 户 组: 普通用户
  • 注册时间: 2011-03-13 17:15
文章分类

全部博文(264)

文章存档

2011年(264)

分类: Java

2011-08-01 21:23:17

PPT1. Tomcat7核心架构

分两大块

1.容器就绪阶段

容器启动、组件装配、部署Web应用、Connector启动

2.请求处理阶段

接收请求、http解析、uri mapping、执行servlet

1.1  容器启动

    建立ClassLoader

1.  lib目录下的jar包组成

2.  主要用来加载Tomcat自身的类

3.  或者加载其他共用的类,比如JDBC Driver

4.  避免与应用冲突,尽量不要放log4j这样的jar

 

    建立Digester XML解析嚣

1.  用途: 解析conf/server.xml文件

2.  解析器实现分析

  前缀模式匹配

  基于规则

:

Xml : "8005" shutdown="SHUTDOWN">

Java:

        digester.addObjectCreate("Server",

                                 "org.apache.catalina.core.StandardServer",

                                 "className");

            digester.addSetProperties("Server");

代码含义:

   遇到“Server”元素时,建立一个StandardServer实例, 并把此元素的属性的值注入到此实例中。

1.2  组件装配

    有哪些组件?

  ServerService

  EngineHostContextWrapper

  PipelineValve

  …….

    组件生命周期(Lifecycle)

  Init => start => stop => destroy

核心架构 

1.3 部署web应用

    基于LifecycleListener机制

1.  HostConfig Listener

    监听Host组件的生命周期

    加载conf\Catalina\localhost目当中的xml文件

    加载webapps下的war

    加载webapps下的目录名

    生成Context组件

2. ContextConfig Listener

    监听Context组件的生命周期

    conf/context.xml文件解析

    conf/web.xml文件解析

    WEB-INF/web.xml文件解析

    合并三个文件的配置信息

1.4 Connector启动

    支持两种协议

1.  HTTP

  BIO

Blocking IO 有时也叫JIO( java.io))

2.NIO

New IO 对应java.nio)

3.APR

Apache Portable Run-time librariesApache可移植运行

2.  AJP

  BIO

  NIO

  AP

阅读(1014) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~