一. 概览
本文所涉及的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()开启容器。
下面来逐一的研究下每一部分的具体行为。
分享到:
相关推荐
9. "Tomcat启动源代码分析.pdf":深入到启动脚本和Java代码,解释了从启动脚本开始,如何初始化和启动Tomcat服务的全过程。 10. "tomcat类加载机制.pdf":再次聚焦于Tomcat的类加载机制,可能深入到更多细节和技巧...
Tomcat6作为Apache软件基金会的Jakarta项目的一部分,是一款广泛使用的Java Servlet容器,它实现了Java Servlet和JavaServer Pages(JSP)规范,为开发和部署Java Web应用程序提供了基础。深入理解Tomcat6的源码,有...
### Tomcat源码研究知识点概览 #### 1.1 Catalina.bat脚本解析 - **脚本功能**:`catalina.bat`是Tomcat启动过程中的关键脚本之一,其主要作用在于构建合适的Java命令行参数,进而启动Tomcat服务。此脚本根据环境...
### TOMCAT源码分析——启动框架详解 #### 一、前言 TOMCAT作为一款广泛使用的开源Java Servlet容器,其内部实现复杂且强大。本文旨在深入剖析TOMCAT的启动框架及其整体架构,帮助读者更好地理解其工作原理。...
### tomcat源码解析 #### 简介与概览 Tomcat作为一款开源的Servlet容器,被广泛应用于Java ...通过对Tomcat源码的深入分析,我们可以更好地理解它是如何工作的,以及如何利用其强大的功能来构建高效、稳定的Web应用。
《深入剖析Tomcat 6.0源码》 Tomcat,作为开源的Java Servlet容器,是许多Web开发者和系统管理员的首选。Tomcat 6.0版本是它的一个经典版本,提供了对Servlet 2.5和JSP 2.1规范的支持。本文将围绕Tomcat 6.0源码...
"HowTomcatWorks"项目,正如其名,旨在帮助开发者了解Tomcat的工作原理,通过源代码分享,使我们有机会深入探究这个强大的服务器内部机制。 1. **Tomcat架构概览** Tomcat的架构设计分为几个主要部分:Catalina...
### Tomcat源码解析知识点概览 #### 一、Tomcat概述 - **定义**:Apache Tomcat是一款开源的Servlet容器,它实现了Servlet规范,并且提供了作为Web服务器的一些特性,但其提供的性能远不及专业的Web服务器,如...
深入研究Tomcat的源代码不仅有助于理解其工作原理,还能够提升Web应用的开发效率和故障排查能力。通过对`Catalina.bat`脚本的解析、Tomcat架构的探讨以及JMX在Tomcat中的应用等知识点的学习,开发者可以更有效地利用...
#### 一、简介与概览 Tomcat作为一款开源的Servlet容器,被广泛应用于Java Web开发之中。它不仅能够运行Java Servlet,还支持JSP技术,是学习Java Web开发的理想平台之一。本文档将对Tomcat的工作原理进行深入探讨...
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源码研究知识点概览 #### 1. 启动内存参数的配置 - **配置文件**:`tomcat/bin/catalina.bat`(Linux环境下为`catalina.sh`) - **配置示例**:通过在`set JAVA_OPTS=`后面添加参数来设置JVM启动时的内存...
### Jetty源码分析知识点概览 #### 一、Jetty简介与特点 - **Jetty**是一款**100%纯Java编写**的轻量级Web服务器与Servlet容器,与Tomcat等其他流行的Web服务器相比,Jetty以其**体积小、启动快**而著称。 - **...
### Tomcat 5 Unleashed:关键知识点概览 #### 一、背景介绍与书籍概述 《Tomcat 5 Unleashed》是一本全面指导如何使用Apache Tomcat 5.x的书籍,出版于2004年8月26日。作者Lajos Moczar在开放源代码软件领域有着...
- **字节码增强技术**:采用字节码增强的方式,无需修改源代码即可添加新的监控功能。 #### 二、Pinpoint 架构与组件 Pinpoint 的核心架构主要包括三个主要组件:Collector、Agent 和 WebUI。 1. **Collector**:...
3. **观察者模式**:在Tomcat中,组件间通过事件监听机制(即观察者模式)进行通信,例如,当Server启动时,会触发一系列事件,通知所有注册的组件进行相应的初始化操作。 4. **责任链模式**:处理HTTP请求时,多个...
本文将通过对"tomcatsrc:tomcat源码分析"这一主题的探讨,帮助读者深入理解Tomcat的核心机制,提升在系统开源领域的专业素养。 一、Tomcat架构概览 Tomcat的架构分为几个主要部分,包括Catalina(核心引擎)、 ...
- 官方文档、Apache Tomcat的源代码,以及社区论坛都是深入了解Tomcat工作方式的宝贵资料。 了解并掌握Tomcat的关闭钩子和生命周期管理对于优化服务器性能、提高服务稳定性以及解决故障都至关重要。通过深入研究...
在IT领域,特别是Java应用服务器环境中的数据库连接管理,Tomcat连接池的配置与优化是一项至关重要的技术。本文将深入探讨“Tomcat连接池”的核心概念、配置方法以及最佳实践,帮助开发者理解如何有效地设置和调整...