`

Tomcat源代码解析

 
阅读更多
详细: http://imtiger.net/blog/2013/10/08/tomcat-source-code-study/

1.
Tomcat中的main入口是org.apache.catalina.startup.Bootstrap#main

public void init()throws Exception{

    // Set Catalina path
    setCatalinaHome();
    setCatalinaBase();

    initClassLoaders();

    Thread.currentThread().setContextClassLoader(catalinaLoader);

    SecurityClassLoad.securityClassLoad(catalinaLoader);

    // Load our startup class and call its process() method
    if (log.isDebugEnabled())
        log.debug("Loading startup class");
    // 1
    Class<?> startupClass =
        catalinaLoader.loadClass
        ("org.apache.catalina.startup.Catalina");
    Object startupInstance = startupClass.newInstance();

    // Set the shared extensions class loader
    if (log.isDebugEnabled())
        log.debug("Setting startup class properties");
    String methodName = "setParentClassLoader";
    Class<?> paramTypes[] = new Class[1];
    paramTypes[0] = Class.forName("java.lang.ClassLoader");
    Object paramValues[] = new Object[1];
    paramValues[0] = sharedLoader;
    Method method =
        startupInstance.getClass().getMethod(methodName, paramTypes);
    // 2
    method.invoke(startupInstance, paramValues);
    // 3
    catalinaDaemon = startupInstance;

}

2.
ContainerBase的initInternal方法
protected void initInternal() throws LifecycleException {
    BlockingQueue<Runnable> startStopQueue =
        new LinkedBlockingQueue<Runnable>();
    startStopExecutor = new ThreadPoolExecutor(
            getStartStopThreadsInternal(),
            getStartStopThreadsInternal(), 10, TimeUnit.SECONDS,
            startStopQueue,
            new StartStopThreadFactory(getName() + "-startStop-"));
    startStopExecutor.allowCoreThreadTimeOut(true);
    super.initInternal();
}
分享到:
评论

相关推荐

    Tomcat源代码学习研究

    《深入剖析Tomcat源代码:探索底层实现原理》 Tomcat作为开源的Java Servlet容器,是许多Web开发者和系统管理员的首选。它以其轻量级、高效和稳定性著称,而深入理解其源代码,有助于我们更好地优化应用性能,解决...

    tomcat源代码

    《深入剖析Tomcat源代码:...总结起来,这份Tomcat源代码是学习Java Web技术的宝贵资料,它涵盖了Servlet和JSP的核心概念,通过实践和分析,开发者能够提升自己的技能水平,为日后的项目开发和问题解决打下坚实基础。

    apache-tomcat 源代码

    在这个"apache-tomcat源代码"压缩包中,我们主要可以探索Tomcat的核心工作原理以及与Servlet和JSP相关的源代码。 1. **Tomcat架构**: - Tomcat由多个组件构成,如Catalina(核心Servlet容器)、Jasper(JSP引擎)...

    tomcat 源代码

    【Tomcat源代码详解】 Tomcat,作为Apache软件基金会的旗艦项目,是一个开源的Java Servlet容器,广泛用于部署和管理Web应用程序。它遵循Java EE规范,尤其是Servlet和JSP标准,是许多开发者和企业的首选服务器平台...

    Tomcat 源代码调试笔记 - 看不见的 Shell1

    笔记作者在深入Tomcat源代码时发现,请求处理过程中,过滤器链的组装是在`StandardWrapperValve`中进行的,具体实现位于`org.apache.catalina.core.ApplicationFilterFactory.createFilterChain`方法。作者尝试复制...

    查看Tomcat源代码

    本文将围绕"查看Tomcat源代码"这一主题,详细介绍如何查看和学习Tomcat的源码,以及它能带给我们的技术启示。 首先,我们需要获取Tomcat的源代码。Tomcat是开源的,它的源码托管在Apache Software Foundation的Git...

    TOMCAT源代码,包括转载得别人的分析

    它的源代码是公开的,这使得开发者能够深入理解其内部工作原理,优化性能,或者为它添加自定义功能。以下是对Tomcat源码及其分析的一些关键知识点: 1. **Servlet与JSP**: Tomcat的核心在于Servlet容器,它负责...

    Tomcat8源代码

    **Apache Tomcat 8源代码解析** Apache Tomcat是一款开源的Java Servlet容器,它实现了Java Servlet和JavaServer Pages(JSP)规范,是许多Web应用开发者的重要工具。Tomcat 8是其发展的一个重要版本,引入了许多新...

    在eclipse当中运行tomcat源代码需要的jar包

    当你在Eclipse中运行Tomcat源代码时,需要这个库来解析和编译Java源文件。Eclipse JDT允许开发者进行语法检查、自动完成、错误检测等功能,使得开发过程更为高效。 2. **ant.jar**: Apache Ant是一个Java库和...

    tomcat6 源代码

    这个源代码压缩包提供了Tomcat6的完整源码,对于开发者来说,深入理解其内部工作原理、优化性能或者定制功能都具有极大的价值。下面将详细介绍Tomcat6的一些关键知识点。 1. **Servlet容器**: Tomcat作为一个...

    tomcat7源代码

    《深入剖析Tomcat7源代码》 Tomcat7是一款广泛使用的开源Java Servlet容器,它实现了Java EE中的Web应用规范,包括Servlet、JSP和EL(Expression Language)等。本资源包含Tomcat7的源代码以及运行所需的jar包,...

    tomcat源码分析

    tomcat源码分析,tomcat原理分析,底层机制,一些源代码等等

    深入剖析Tomcat源代码

    《深入剖析Tomcat源代码》是一本专注于揭示Tomcat内部工作原理的专业书籍,它通过详细的源代码分析,帮助读者理解这个流行的开源Java Servlet容器的工作机制。Tomcat是Apache软件基金会的项目,作为轻量级应用服务器...

    Tomcat 8源代码 Servlet源代码

    **Tomcat 8源代码解析:** 1. **结构与目录**:Tomcat的源码结构分为几个主要部分,如`common`、`catalina`、`jdbc`、`jsp`等,分别对应了公共库、核心服务器逻辑、数据库连接池和JSP支持。`conf`目录包含配置文件,...

    Tomcat5.0.28源代码

    《深入剖析Tomcat 5.0.28源代码》 Tomcat,作为Apache软件基金会下的一个开源项目,是Java Servlet和JavaServer Pages...因此,无论是初学者还是经验丰富的开发者,对Tomcat源代码的探索都是一项极其有价值的任务。

    Tomcat 7 源代码

    Apache Tomcat 7 是一个广泛...通过分析和学习Tomcat 7的源代码,开发者可以提升对Web服务器运行机制的理解,进而更好地优化应用程序,解决性能问题,或者开发新的功能。同时,这也是向高级Java EE开发迈进的重要一步。

    Tomcat6源代码学习(运行源代码及调试)

    《深入剖析Tomcat6源代码:运行与调试指南》 Tomcat6作为一款经典的开源Java Servlet容器,其源代码的学习对于理解Java Web应用的运行机制、优化服务器性能以及解决实际问题具有重大价值。本篇文章将从以下几个方面...

    Tomcat6.0.41源代码,可直接导入Eclipse

    这个源代码版本提供了深入理解Tomcat工作原理的机会,对于开发者来说是一份宝贵的资源。下面将详细介绍Tomcat 6.0.41源代码中的关键组件、功能以及如何在Eclipse中进行编译和运行。 一、Tomcat架构 Tomcat由几个...

    tomcat5.5源代码

    在深入研究Tomcat 5.5的源代码时,我们可以学习到以下几个关键知识点: 1. **Servlet和JSP规范**: Tomcat 5.5遵循Servlet 2.4和JSP 2.0规范。源代码中包含了实现这些规范的类和接口,例如`org.apache.catalina....

Global site tag (gtag.js) - Google Analytics