`
刘琛颖
  • 浏览: 50238 次
  • 性别: Icon_minigender_1
  • 来自: 成都
最近访客 更多访客>>
社区版块
存档分类
最新评论

Tomcat启动部分源代码分析(一) -- 概览

阅读更多
一. 概览

本文所涉及的Tomcat为6.0版本。

Tomcat的启动始于org.apache.catalina.startup.Bootstrap#main(),下面来列举一下相关的源代码:
	public static void main(String args[]) {

		if (daemon == null) {
			daemon = new Bootstrap();
			try {
				/* 初始化 */
				daemon.init();
			} catch (Throwable t) {
				t.printStackTrace();
				return;
			}
		}

		try {
			String command = "start";
			if (args.length > 0) {
				/* 最后一个命令行参数赋给command */
				command = args[args.length - 1];
			}

			if (command.equals("startd")) {
				args[0] = "start";
				daemon.load(args);
				daemon.start();
			} else if (command.equals("stopd")) {
				args[0] = "stop";
				daemon.stop();
			} else if (command.equals("start")) {
				daemon.setAwait(true);// 使用await
				daemon.load(args);// 载入守护线程
				daemon.start();// 开启容器
			} else if (command.equals("stop")) {
				daemon.stopServer(args);
			} else {
				log.warn("Bootstrap: command \"" + command + "\" does not exist.");
			}
		} catch (Throwable t) {
			t.printStackTrace();
		}

	}


从整个main方法可以大致看出tomcat的启动过程,首先生成一个Bootstrap单例,然后调用它的init()方法,然后判断命令行参数,最后调用start()开启容器。

下面来逐一的研究下每一部分的具体行为。
分享到:
评论
1 楼 2022228 2009-07-20  
写得很好
学习了

相关推荐

    tomcat 源码分析系列文档

    9. "Tomcat启动源代码分析.pdf":深入到启动脚本和Java代码,解释了从启动脚本开始,如何初始化和启动Tomcat服务的全过程。 10. "tomcat类加载机制.pdf":再次聚焦于Tomcat的类加载机制,可能深入到更多细节和技巧...

    tomcat6源码分析

    Tomcat6作为Apache软件基金会的Jakarta项目的一部分,是一款广泛使用的Java Servlet容器,它实现了Java Servlet和JavaServer Pages(JSP)规范,为开发和部署Java Web应用程序提供了基础。深入理解Tomcat6的源码,有...

    Tomcat源码研究.pdf

    ### Tomcat源码研究知识点概览 #### 1.1 Catalina.bat脚本解析 - **脚本功能**:`catalina.bat`是Tomcat启动过程中的关键脚本之一,其主要作用在于构建合适的Java命令行参数,进而启动Tomcat服务。此脚本根据环境...

    TOMCAT源码分析(启动框架).pdf

    ### TOMCAT源码分析——启动框架详解 #### 一、前言 TOMCAT作为一款广泛使用的开源Java Servlet容器,其内部实现复杂且强大。本文旨在深入剖析TOMCAT的启动框架及其整体架构,帮助读者更好地理解其工作原理。...

    tomcat源码解析

    ### tomcat源码解析 #### 简介与概览 Tomcat作为一款开源的Servlet容器,被广泛应用于Java ...通过对Tomcat源码的深入分析,我们可以更好地理解它是如何工作的,以及如何利用其强大的功能来构建高效、稳定的Web应用。

    Tomcat6源码下载

    《深入剖析Tomcat 6.0源码》 Tomcat,作为开源的Java Servlet容器,是许多Web开发者和系统管理员的首选。Tomcat 6.0版本是它的一个经典版本,提供了对Servlet 2.5和JSP 2.1规范的支持。本文将围绕Tomcat 6.0源码...

    HowTomcatWorks-master.zip

    "HowTomcatWorks"项目,正如其名,旨在帮助开发者了解Tomcat的工作原理,通过源代码分享,使我们有机会深入探究这个强大的服务器内部机制。 1. **Tomcat架构概览** Tomcat的架构设计分为几个主要部分:Catalina...

    Tomcat源码解析.pdf

    ### Tomcat源码解析知识点概览 #### 一、Tomcat概述 - **定义**:Apache Tomcat是一款开源的Servlet容器,它实现了Servlet规范,并且提供了作为Web服务器的一些特性,但其提供的性能远不及专业的Web服务器,如...

    Tomcat原码研究

    深入研究Tomcat的源代码不仅有助于理解其工作原理,还能够提升Web应用的开发效率和故障排查能力。通过对`Catalina.bat`脚本的解析、Tomcat架构的探讨以及JMX在Tomcat中的应用等知识点的学习,开发者可以更有效地利用...

    how-tomcat-works中文 doc文档

    #### 一、简介与概览 Tomcat作为一款开源的Servlet容器,被广泛应用于Java Web开发之中。它不仅能够运行Java Servlet,还支持JSP技术,是学习Java Web开发的理想平台之一。本文档将对Tomcat的工作原理进行深入探讨...

    看透springMvc源代码分析与实践

    8.3 关联spring源代码87 8.4 小结89 第9章 创建Spring MVC之器90 9.1 整体结构介绍90 9.2 HttpServletBean93 9.3 FrameworkServlet95 9.4 DispatcherServlet100 9.5 小结107 第10章 Spring MVC之用108 10.1...

    Tomcat源码研究

    ### Tomcat源码研究知识点概览 #### 1. 启动内存参数的配置 - **配置文件**:`tomcat/bin/catalina.bat`(Linux环境下为`catalina.sh`) - **配置示例**:通过在`set JAVA_OPTS=`后面添加参数来设置JVM启动时的内存...

    Jetty源码分析.pdf

    ### Jetty源码分析知识点概览 #### 一、Jetty简介与特点 - **Jetty**是一款**100%纯Java编写**的轻量级Web服务器与Servlet容器,与Tomcat等其他流行的Web服务器相比,Jetty以其**体积小、启动快**而著称。 - **...

    Tomcat 5 Unleashed

    ### Tomcat 5 Unleashed:关键知识点概览 #### 一、背景介绍与书籍概述 《Tomcat 5 Unleashed》是一本全面指导如何使用Apache Tomcat 5.x的书籍,出版于2004年8月26日。作者Lajos Moczar在开放源代码软件领域有着...

    pinpoint安装部署、监控tomcat、weblogic、webSphere手册

    - **字节码增强技术**:采用字节码增强的方式,无需修改源代码即可添加新的监控功能。 #### 二、Pinpoint 架构与组件 Pinpoint 的核心架构主要包括三个主要组件:Collector、Agent 和 WebUI。 1. **Collector**:...

    Tomcat的架构和设计

    3. **观察者模式**:在Tomcat中,组件间通过事件监听机制(即观察者模式)进行通信,例如,当Server启动时,会触发一系列事件,通知所有注册的组件进行相应的初始化操作。 4. **责任链模式**:处理HTTP请求时,多个...

    tomcatsrc:tomcat源码分析

    本文将通过对"tomcatsrc:tomcat源码分析"这一主题的探讨,帮助读者深入理解Tomcat的核心机制,提升在系统开源领域的专业素养。 一、Tomcat架构概览 Tomcat的架构分为几个主要部分,包括Catalina(核心引擎)、 ...

    WEB服务器工作机制由浅至深(9):【How Tomcat Works】第16章关闭钩子以及之后的章节简述

    - 官方文档、Apache Tomcat的源代码,以及社区论坛都是深入了解Tomcat工作方式的宝贵资料。 了解并掌握Tomcat的关闭钩子和生命周期管理对于优化服务器性能、提高服务稳定性以及解决故障都至关重要。通过深入研究...

    tomcat连接池

    在IT领域,特别是Java应用服务器环境中的数据库连接管理,Tomcat连接池的配置与优化是一项至关重要的技术。本文将深入探讨“Tomcat连接池”的核心概念、配置方法以及最佳实践,帮助开发者理解如何有效地设置和调整...

Global site tag (gtag.js) - Google Analytics