zoukankan      html  css  js  c++  java
  • tomcat源码阅读之Catalina和Bootstrap解析

    一、Cataling类分析:

    1、Catalina类是启动类,用于启动或者关闭Server对象,它包含一个Digester对象,用于解析tomcat配置文件:conf/server.xml;调用process方法启动Catalina时需要传入参数,如果是start,表示要启动tomcat,如果是stop,表示要关闭tomcat;其他参数还包括-help, -config, -debug, -nonaming;

    2、start方法启动tomcat时,首先创建一个Digester实例来解析server.xml文件,在解析xml文件时根据配置信息会生成Server对象,然后调用Server对象的initialize和start方法启动Server对象,接着调用Server.await在8005端口上等待网络接收信息并阻塞,当await方法收到关闭命令并返回时,会调用Server对象的stop方法关闭tomcat;此外start方法还会利用关闭钩子,确保用户突然退出应用程序时会执行Server对象的stop方法;

    二、Bootstrap类分析:

    1、BootStrap类是一个入口点,负责创建Catalina实例,并调用其process方法;

    2、BootStrap类的main方法会创建三个ClassLoader:commonLoader、catalinaLoader、sharedLoader,这三个ClassLoader分别限制了能访问tomcat的不同目录(这样能避免servlet程序员访问了不该访问的路径);在后面实例化Catalina对象时使用的是sharedLoader作为parentClassloader,这样通过层层传递到Context后,Context应用的父类载入器就是sharedLoader;

     

    3、BootStrap类的main方法在创建三个ClassLoader后,接着创建Catalina的实例,然后调用Catalina对象的setParentClassloader和process方法来启动Server;

  • 相关阅读:
    CSS教程:div垂直居中的N种方法
    .NET中Flags枚举的使用
    C# 两种方法实现HTTP协议迷你服务器
    百度面试题:求绝对值最小的数
    单点登录
    三范式
    hibernate cascade
    debugview trace 调试
    面向模式的软件体系结构
    待研究
  • 原文地址:https://www.cnblogs.com/laoxia/p/8081784.html
Copyright © 2011-2022 走看看