`
刘琛颖
  • 浏览: 48165 次
  • 性别: 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  
写得很好
学习了

相关推荐

    看透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...

    安卓移动端的人力资源管理系统的设计与实现(论文+源码)-kaic.doc

    2.2.3 Tomcat技术 3 需求分析 3.1 系统用例图 3.2 系统功能概览 4 系统设计 4.1 系统体系架构 4.2 系统功能架构 4.3 数据存储设计 5 系统实现 5.1 系统关键功能块的实现 5.1.1 系统登录功能界面 5.1.2 更改登录密码...

    Java SSM框架集成的日志功能增强Demo源码

    本项目是一个基于Java SSM框架集成的示例应用,集成了Spring、SpringMVC、MyBatis以及thymeleaf模板引擎,运行于Tomcat8服务器之上。项目利用Java动态代理机制,通过实现InvocationHandler接口,巧妙地运用AOP(面向...

    MF00929-Java学籍管理系统源码.zip

    Java学籍管理系统源码带本地搭建教程 注意:不带技术支持,有帮助文件,虚拟商品,发货不退,看好再拍。 开发语言 : JAVA 数据库 : MySQL 开发工具 : Eclipse 源码类型 : WebForm 技术框架:ssm + layui + jsp + ...

    李兴华 Java Web 开发实战经典_带源码_高清pdf 带书签 上

    第11章 Tomcat数据源 11.1、数据源操作原理 11.2、在Tomcat中使用数据库连接池 11.3、查找数据源 11.4、本章摘要 第12章 JSP标签编程 12.1、标签编程简介 12.2、定义一个简单的标签 —— 空标签 12.3、定义...

    word源码java-freemarkerparse:前后端分离开发工具

    word源码java 前后端分离开发工具 ...由于我们是本地测试开发环境,不需要通过对应的url访问页面,直接通过实际的路径去访问,这样只需要一个controller统一处理,将url中路径的部分解析出来,处理对应的ftl即可

    1.闲一品交易平台SpringBoot项目-闲一品交易平台(可运行源码+开发说明+数据库+LW)

    完整的项目源代码 全面的项目文档 技术栈: 开发语言: Java 框架: SSM (Spring, SpringMVC, MyBatis) JDK版本: 1.8 服务器: Apache Tomcat 7 数据库: MySQL 5.7(特别推荐) 数据库工具: Navicat 11 开发环境...

    最新springboot学生综合测评系统.zip

    基于Spring Boot的学生综合测评系统是一个**针对学生信息和学习表现进行管理与评估的Web应用程序**。以下是对该系统的介绍: 1. **技术实现细节**: - 使用Java语言开发,以Spring Boot作为主要框架。 - 采用B/S...

    java web 视频、电子书、源码(李兴华老师出版)

    0100_第一部分:WEB开发前奏 0101_WEB开发简介 0102_HTML、JavaScript简介 0103_XML简介 0104_Tomcat服务器的安装及配置 0200_第二部分:WEB基础开发 0205_JSP基础语法 0206_JSP内置对象 0207_JavaBean 0208...

    java阿里云oss整合ueditor富文本编辑器编译源码

    一、本项目里面的所有阿里云配置均已禁用,因此需要修改阿里云的配置信息 OSSKey.properties 配置文件参数描述 useStatus true/false是否启用云存储, autoCreateBucket true/false是否添加新的存储仓库,默认false ...

    外文翻译 stus MVC

    1:外文原文 Struts——an open-source MVC implementation This article introduces Struts, a Model-View-Controller implementation that uses servlets and JavaServer Pages (JSP) technology....

    Java虚拟机

    第一部分从宏观的角度介绍了整个Java技术体系、Java和JVM的发展历程、模块化,以及JDK的编译,这对理解本书后面内容有重要帮助。第二部分讲解了JVM的自动内存管理,包括虚拟机内存区域的划分原理以及各种内存溢出...

    李兴华 java_web开发实战经典 源码 完整版收集共享

    第11章 Tomcat数据源 11.1、数据源操作原理 11.2、在Tomcat中使用数据库连接池 11.3、查找数据源 11.4、本章摘要 第12章 JSP标签编程 12.1、标签编程简介 12.2、定义一个简单的标签 —— 空标签 12.3、定义...

    从J2SE到J2EE知识点介绍

    (八) 复合自然主键实例(源代码hibernate_0500) 218 (九) Hibernate的类型 224 1. Java基本值类型的Hibernate映射 224 2. Java时间和日期类型的Hibernate映射类型 224 3. Java大对象类型的Hibernate映射类型 225 4....

    李兴华 Java Web 开发实战经典_带源码_高清pdf 带书签 下

    第11章 Tomcat数据源 11.1、数据源操作原理 11.2、在Tomcat中使用数据库连接池 11.3、查找数据源 11.4、本章摘要 第12章 JSP标签编程 12.1、标签编程简介 12.2、定义一个简单的标签 —— 空标签 12.3、定义...

    Java数据编程指南

    <br>目录 第一部分 软件、对象、数据设计与建模 第1章 软件开发的方法与过程 为什么我们需要方法与过程 什么是软件方法与过程 方法的内容 过程模型 源代码管理的要素 软件缺陷与修改的...

    深入理解_Java_虚拟机 JVM_高级特性与最佳实践

    前 言 致 谢 第一部分 走近Java 第1章 走近Java / 2 1.1 概述 / 2 1.2 Java技术体系 / 3 1.3 Java发展史 / 5 1.4 展望Java技术的未来 / 9 1.4.1 模块化 / 9 1.4.2 混合语言 / 9 1.4.3 多核并行 / 11 ...

    TeraC Album-JSP相册程序.rar

    概览 TeraC Album是基于JSP/MySQL的web应用程序,您可以用它在Internet上来整理和发布您的照片。 特性 多语言支持 通过浏览器上传照片 自动生成缩略图 管理面板密码保护 基于web方式的添加、删除、修改...

    网络架构师148讲视频课程

    │ 第108节:聚合框架第一部分.avi │ 第109节:聚合框架第二部分.avi │ 第110节:聚合框架第三部分.avi │ 第111节:理解文档存储机制.avi │ 第112节:MongoDB的索引一.avi │ 第113节:MongoDB的索引二.avi │ ...

    JDBC 3.0数据库开发与设计

    1.5.2 本地API部分Java驱动程序 1.5.3 JDBC网络纯Java驱动程序 1.5.4 本地协议纯Java驱动程序 1.5.5 JDBC驱动程序的比较 1.6 本章小结 第2章 JDBC开发环境及配置 2.1 数据库系统 2.1.1 SQL数据库数据库基本...

Global site tag (gtag.js) - Google Analytics