`
gogole_09
  • 浏览: 206015 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

tomcat init中加载哪些类?

阅读更多

tomcat初始化过程中,会加载一些安全的类。

 那到底会有哪些类在启动tomcat的时候被加载的呢?

 

 简单罗列一下代码和图片, 可以有一个大致的了解。

 

 初始化的时候,SecurityClassLoad类的静态方法,sercurityClassLoad方法会被调用, 加载进一些满足安全规则的类:

 public static void securityClassLoad(ClassLoader loader) throws Exception {
        if (System.getSecurityManager() == null) {
            return;
        }
        //
        loadCorePackage(loader);
        loadLoaderPackage(loader);
        loadSessionPackage(loader);
        loadUtilPackage(loader);
        loadJavaxPackage(loader);
        loadCoyotePackage(loader);
        loadHttp11Package(loader);
        loadTomcatPackage(loader);
    }

 


  那每个方法中,都会加载哪些类呢?

 

 首先是加载核心的一些类,包括有:

 

再是加载web应用的资源加载类:


之后是关于Session的一些类:

 

再就是tomcat内部的一些工具类:


 

然后将Cookie相关的类加载进来:


接着要加载入连接器的相关类:

 

加载HTTP1.1协议的处理类:

 

  最后是tomcat中用于处理SSL的类:

 


PS:

//java中类$后面跟数字是匿名类编译出来的
//java中类$后面加字母是内部类编译出来的

 

 

 

  这里先简单罗列一下, 至于每个包下相关的类的作用,后续再找时间作介绍,或者有兴趣的朋友可以去查看相关的代码了解。

  • 大小: 80 KB
  • 大小: 94.8 KB
  • 大小: 203 KB
  • 大小: 55 KB
  • 大小: 24.2 KB
  • 大小: 31.8 KB
  • 大小: 49.1 KB
  • 大小: 36 KB
  • 大小: 63.6 KB
分享到:
评论
4 楼 javatozhang 2013-11-01  
楼主真是良苦用心,很可惜我现在才对Tomcat感兴趣并有时间来研究它,恨不能喝lz同时……
3 楼 zxlsky1314 2010-09-24  
学习了,希望楼主能补充得细致点,大致说下每个包的用处和load的时间点
2 楼 gogole_09 2010-09-24  
polaris1119 写道
比较感兴趣这些图用什么画的?

思维导图软件 xmind.
1 楼 polaris1119 2010-09-23  
比较感兴趣这些图用什么画的?

相关推荐

    Tomcat启动顺序

    此外,对于每个Web应用程序,Tomcat还会执行Servlet的加载和初始化,包括读取`web.xml`部署描述符,实例化Servlet,并调用`init()`方法。 总结来说,Tomcat的启动顺序是一个自底向上,从核心到应用的过程,依次加载...

    修改java代码以及js无需重启tomcat

    Apache Tomcat支持一定程度上的热部署功能,主要通过检测类文件的变化并在运行时自动加载新版本的类来实现。然而,默认情况下,此功能并未开启,需要通过特定的配置来进行启用。 #### 三、配置步骤详解 ##### 3.1 ...

    how tomcat works中英文版

    Tomcat有自己的类加载器层次结构,它负责加载Web应用程序中的类,这使得不同应用间的类能够隔离,防止冲突。理解类加载器的工作方式有助于解决类加载问题。 此外,Tomcat的连接器(Connector)组件是接收和处理网络...

    tomcat 7 源码分析-4 server初始化背后getServer().init()

    在Tomcat 7的源码中,`getServer().init()`方法可能位于`StandardServer`类中,这个类实现了`Lifecycle`接口,管理服务器的生命周期状态。当调用`init()`方法时,Tomcat会执行以下主要步骤: 1. 加载全局JNDI资源:...

    Tomcat无法加载css和js等静态资源文件的解决思路

    在开发和部署基于Java的Web应用时,Tomcat作为常用的Servlet容器,有时会出现无法加载CSS、JavaScript等静态资源的问题。这种情况通常会导致网页样式混乱、交互失效,严重影响用户体验。以下是一些针对这个问题的...

    servlet+tomcat面试题及答案解析.rar

    Servlet和Tomcat是Java Web开发中的重要组成部分,广泛应用于服务器端程序的开发和部署。面试中,对于这两者的理解往往能反映出应聘者在Web服务领域的专业素养。以下是一些常见的Servlet和Tomcat相关的面试题及答案...

    tomcat启动的问题--apr

    信息: The Apache Tomcat Native library which allows optimal performance in production environments was not found on the java.library.path: D:\Java\jre1.5.0_11\bin;.;C:\WINDOWS\system32;C:\WINDOWS;C:\...

    tomcat8安装包(含windows和linux版本).zip

    接着,设置环境变量并在系统中创建一个启动脚本,如/etc/init.d/tomcat,以便使用service命令管理Tomcat服务。Linux下还需要通过chmod命令赋予执行权限,并使用chkconfig命令将其添加为系统服务,实现开机启动。启动...

    Tomcat 6.0启动过程分析

    - 在单实例环境中,这三个类加载器均指向同一个类加载器。 - **start 方法** - 调用 `catalinaDaemon` 的 `start()` 方法来启动 Tomcat。 - 该方法会先检查 `server` 对象是否为 `null`,若为 `null` 则调用 `...

    Web服务启动时自动加载Servlet,并读取数据库内容

    在Web应用启动时,如果在web.xml文件中定义了Servlet,那么Web容器(如Tomcat)会加载并初始化这些Servlet。我们可以通过重写Servlet的`init()`方法来执行启动时的任务。 在描述中提到,我们需要在Servlet的`init()...

    tomcat支持跨域jar.zip

    3. **使用jar文件**:压缩包中的"tomcat跨域jar"可能是包含CORS Filter实现的JAR文件,用于在Tomcat启动时自动加载并启用跨域支持。你需要将这个JAR文件放入Tomcat的`lib`目录,确保服务器启动时能够识别并加载。 4...

    我的tomcat7源码手撕过程

    2. **加载Classpath**:在启动脚本中,通过关键字`CLASSPATH`指定`bin\bootstrap.jar`等JAR包的位置,这些JAR包包含了启动Tomcat所需的类和资源。 3. **主类加载**:脚本中通过关键字`MAINCLASS`指定了主类`org....

    linux环境Tomcat安装配置手册

    知识点六:Tomcat 开机自动加载 使用 vi 命令编辑 /etc/rc.d/rc.local 文件,添加以下内容: #!/bin/sh # This script will be executed *after* all the other init scripts. # You can put your own ...

    quartz 随tomcat启动执行一次

    在题目中的代码中,`SchedulerFactoryBean` 被配置为非懒加载,这意味着当 Spring 上下文初始化时,Quartz 调度器就会被创建并准备好调度任务。 ```xml class="org.springframework.scheduling.quartz....

    tomcat启动服务运行servlet

    6. 装载Servlet:根据`web.xml`中的配置,Tomcat实例化Servlet类,并调用其`init()`方法进行初始化。 7. 服务器开始监听并处理请求:一旦启动完成,Tomcat就开始接受HTTP请求,将请求分发给相应的Servlet进行处理。 ...

    Tomcat源码研究.pdf

    5. 容器初探:Tomcat中的容器主要是指Servlet容器,它负责管理Servlet的生命周期,包括加载、初始化、调用以及销毁。容器设计基于责任链模式,每个容器都按照特定的顺序处理请求。深入研究容器的实现可以帮助我们...

    How Tomcat Work 电子书+源码

    5. **Servlet生命周期**:Tomcat会加载并实例化Servlet,调用其init()方法初始化,然后处理请求(service()方法),最后在服务器关闭或Servlet被卸载时调用destroy()方法。 6. **JSP转换与执行**:当请求到达JSP...

    Tomcat基本知识精华

    在Tomcat中,Servlet的生命周期由Tomcat管理,包括加载、初始化、服务、销毁等阶段。 4. **Tomcat运行Servlet的原理** - Tomcat默认从`\Catalina`\webapps目录下加载Web应用程序。可以通过修改`server.xml`中的...

    Tomcat配置解决跨域问题

    在Web开发中,跨域(Cross-Origin)是一种常见的安全限制,它阻止浏览器从一个源加载资源到另一个不同的源。这主要是为了防止恶意脚本通过注入来窃取数据。然而,在进行前后端分离或者API调用时,跨域限制可能会成为...

    Tomcat源码学习:一个最简单的“Tomcat”

    4. **Servlet生命周期**:Servlet的init、service、destroy方法在Tomcat中的调用过程。 5. **JSP处理**:Jasper如何将JSP文件编译为Servlet,并在运行时执行。 6. **部署描述符(web.xml)**:理解部署描述符的结构...

Global site tag (gtag.js) - Google Analytics