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
分享到:
相关推荐
此外,对于每个Web应用程序,Tomcat还会执行Servlet的加载和初始化,包括读取`web.xml`部署描述符,实例化Servlet,并调用`init()`方法。 总结来说,Tomcat的启动顺序是一个自底向上,从核心到应用的过程,依次加载...
Apache Tomcat支持一定程度上的热部署功能,主要通过检测类文件的变化并在运行时自动加载新版本的类来实现。然而,默认情况下,此功能并未开启,需要通过特定的配置来进行启用。 #### 三、配置步骤详解 ##### 3.1 ...
Tomcat有自己的类加载器层次结构,它负责加载Web应用程序中的类,这使得不同应用间的类能够隔离,防止冲突。理解类加载器的工作方式有助于解决类加载问题。 此外,Tomcat的连接器(Connector)组件是接收和处理网络...
在Tomcat 7的源码中,`getServer().init()`方法可能位于`StandardServer`类中,这个类实现了`Lifecycle`接口,管理服务器的生命周期状态。当调用`init()`方法时,Tomcat会执行以下主要步骤: 1. 加载全局JNDI资源:...
在开发和部署基于Java的Web应用时,Tomcat作为常用的Servlet容器,有时会出现无法加载CSS、JavaScript等静态资源的问题。这种情况通常会导致网页样式混乱、交互失效,严重影响用户体验。以下是一些针对这个问题的...
Servlet和Tomcat是Java Web开发中的重要组成部分,广泛应用于服务器端程序的开发和部署。面试中,对于这两者的理解往往能反映出应聘者在Web服务领域的专业素养。以下是一些常见的Servlet和Tomcat相关的面试题及答案...
信息: 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:\...
接着,设置环境变量并在系统中创建一个启动脚本,如/etc/init.d/tomcat,以便使用service命令管理Tomcat服务。Linux下还需要通过chmod命令赋予执行权限,并使用chkconfig命令将其添加为系统服务,实现开机启动。启动...
- 在单实例环境中,这三个类加载器均指向同一个类加载器。 - **start 方法** - 调用 `catalinaDaemon` 的 `start()` 方法来启动 Tomcat。 - 该方法会先检查 `server` 对象是否为 `null`,若为 `null` 则调用 `...
在Web应用启动时,如果在web.xml文件中定义了Servlet,那么Web容器(如Tomcat)会加载并初始化这些Servlet。我们可以通过重写Servlet的`init()`方法来执行启动时的任务。 在描述中提到,我们需要在Servlet的`init()...
3. **使用jar文件**:压缩包中的"tomcat跨域jar"可能是包含CORS Filter实现的JAR文件,用于在Tomcat启动时自动加载并启用跨域支持。你需要将这个JAR文件放入Tomcat的`lib`目录,确保服务器启动时能够识别并加载。 4...
2. **加载Classpath**:在启动脚本中,通过关键字`CLASSPATH`指定`bin\bootstrap.jar`等JAR包的位置,这些JAR包包含了启动Tomcat所需的类和资源。 3. **主类加载**:脚本中通过关键字`MAINCLASS`指定了主类`org....
知识点六: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 ...
在题目中的代码中,`SchedulerFactoryBean` 被配置为非懒加载,这意味着当 Spring 上下文初始化时,Quartz 调度器就会被创建并准备好调度任务。 ```xml class="org.springframework.scheduling.quartz....
6. 装载Servlet:根据`web.xml`中的配置,Tomcat实例化Servlet类,并调用其`init()`方法进行初始化。 7. 服务器开始监听并处理请求:一旦启动完成,Tomcat就开始接受HTTP请求,将请求分发给相应的Servlet进行处理。 ...
5. 容器初探:Tomcat中的容器主要是指Servlet容器,它负责管理Servlet的生命周期,包括加载、初始化、调用以及销毁。容器设计基于责任链模式,每个容器都按照特定的顺序处理请求。深入研究容器的实现可以帮助我们...
5. **Servlet生命周期**:Tomcat会加载并实例化Servlet,调用其init()方法初始化,然后处理请求(service()方法),最后在服务器关闭或Servlet被卸载时调用destroy()方法。 6. **JSP转换与执行**:当请求到达JSP...
在Tomcat中,Servlet的生命周期由Tomcat管理,包括加载、初始化、服务、销毁等阶段。 4. **Tomcat运行Servlet的原理** - Tomcat默认从`\Catalina`\webapps目录下加载Web应用程序。可以通过修改`server.xml`中的...
在Web开发中,跨域(Cross-Origin)是一种常见的安全限制,它阻止浏览器从一个源加载资源到另一个不同的源。这主要是为了防止恶意脚本通过注入来窃取数据。然而,在进行前后端分离或者API调用时,跨域限制可能会成为...
4. **Servlet生命周期**:Servlet的init、service、destroy方法在Tomcat中的调用过程。 5. **JSP处理**:Jasper如何将JSP文件编译为Servlet,并在运行时执行。 6. **部署描述符(web.xml)**:理解部署描述符的结构...