`
JackyCheng2007
  • 浏览: 253627 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

Tomcat 6 启动过程分析 (5) - Digester

阅读更多
Digester 在tomcat启动的时候利用SAX2来解析server.xml. SAX - Simple API for XML, 是一种基于java的xml API。可以看篇文章了解更多:[url]http://www.iteye.com/topic/181865 [/url]
引用

SAX解析器采用了基于事件的模型,它在解析XML文档的时候可以触发一系列的事件,当发现给定的tag的时候,它可以激活一个回调方法,告诉该方法制定的标签已经找到。SAX对内存的要求通常会比较低,因为它让开发人员自己来决定所要处理的tag.特别是当开发人员只需要处理文档中所包含的部分数据时, SAX这种扩展能力得到了更好的体现。但用SAX解析器的时候编码工作会比较困难,而且很难同时访问同一个文档中的多处不同数据。

 
典型的事件有:
    start document,  end document
    start element, end element  
    characters 
  
举例说明一下:
比如这样一个xml文件

    <?xml version="1.0"?>
    <doc>
    <para>Hello, world!</para>
    </doc>

SAX接口在解析的时候会依次出发一系列的事件:

    start document
    start element: doc
    start element: para
    characters: Hello, world!
    end element: para
    end element: doc
    end document

好了,下面开始分析一下Digest类。

Digest类处理一个XML输入流,它根据一系列的嵌入的模式匹配在parse之前加入的rules来执行解析工作。

Catalina 最终利用 createStartDigester方法创建一个解析Server的digester来生成一个org.apache.catalina.core.StandardServer 的实例。





3
3
分享到:
评论

相关推荐

    Tomcat7启动分析(三)Digester的使用

    在Tomcat7的启动过程中,涉及到很多内部组件的初始化,其中`Digester`是一个重要的工具,用于解析XML配置文件,将XML结构映射为Java对象。本篇文章将深入剖析`Digester`的使用以及它在Tomcat7启动过程中的作用。 `...

    Tomcat 6 启动过程分析.doc

    总结来说,Tomcat 6的启动过程涉及到Bootstrap类的初始化、Catalina类的加载和配置解析,以及Digester的XML解析功能。这个过程保证了Tomcat能够正确地加载和应用配置,启动并运行Java Web应用程序。理解这一过程对于...

    tomcat启动的时序图

    本文将基于提供的“tomcat启动的时序图”,详细解析Tomcat 5 的启动流程,旨在帮助读者深入理解Tomcat的工作机制。 #### 二、Tomcat 启动流程分析 ##### 1. 初始化阶段 - **Bootstrap 类**:启动过程始于`...

    tomcat不能启动的原因总结

    **问题描述**:系统环境变量配置不当导致Tomcat启动失败。 **解决方法**:检查并确认`JAVA_HOME`和`CATALINA_HOME`等环境变量是否正确配置。确保指向正确的JDK和Tomcat安装路径。 ##### 4. 多个Tomcat版本共存 **...

    tomcat6的源码

    解析过程在`org.apache.tomcat.util.digester`包下,你可以研究这些类来理解配置的处理方式。 7. **连接器(Connector)**:Tomcat支持多种协议,如HTTP/1.1、AJP等。`Coyote`组件负责处理这些协议,其中` ...

    我的tomcat7源码手撕过程

    这个类是Tomcat启动的入口点。 4. **Bootstrap类解析**: - `main`方法中,“start”关键字引导程序进入`start`方法,进而调用`load`方法。 - `load`方法通过反射机制加载`org.apache.catalina.startup.Catalina`...

    Tomcat源码研究.pdf

    2. Tomcat启动遇到的常见问题:在研究Tomcat源码的过程中,我们会遇到许多启动时常见的问题。这些问题可能包括端口被占用、配置文件错误、类加载器相关问题等。通过对这些问题的分析,我们可以更加深入地理解Tomcat...

    Tomcat源码分析_v4 完整版1

    【Tomcat源码分析_v4 完整版1】这篇文档主要探讨了Tomcat源码中的部分核心概念,包括XML解析框架Digester的工作原理及其在Java对象映射中的应用。以下是对这些知识点的详细说明: **Java对象创建与管理:** 在...

    Tomcat7核心架构

    在启动过程中,Tomcat首先进行必要的初始化工作,包括建立类加载器(ClassLoader)以及构建用于解析配置文件的**Digester XML解析器**。 - **建立ClassLoader** - 类加载器由`lib`目录下的多个jar包组成。 - 主要...

    tomcat排错经典案例之404.docx

    6. **IDE 与 Tomcat 版本不匹配**:不同的 IDE 和 Tomcat 版本之间可能存在兼容性问题。 7. **Jar 包冲突**:在框架整合过程中,若不同库之间存在版本冲突,也可能导致问题。 8. **Jar 包缺失或版本问题**:确保所有...

    tomcat6.0.39源代码

    2. **生命周期管理**:在Catalina模块中,容器的启动、停止、加载和卸载过程是关键。例如,`StandardServer`和`StandardService`类负责管理Tomcat服务器和服务的生命周期,而`Context`和`Host`类则处理Web应用的生命...

    tomcat8 源码

    2. **生命周期管理**:在Catalina模块中,`Container`接口和`LifeCycle`接口代表了Tomcat中的组件和它们的生命周期方法,如`start()`、`stop()`等,这对于理解和控制服务器启动和停止过程至关重要。 3. **部署与...

    Struts-2.1.6整合Tiles2全攻略

    其中特别需要注意的是,`commons-fileupload`, `commons-beanutils` 和 `commons-collections` 这三个包在2.1和2.0版本之间存在差异,必须正确导入对应的版本,否则可能会导致Tomcat启动时报错。 ##### 2. 配置web...

Global site tag (gtag.js) - Google Analytics