`

关于tomcat的class加载顺序的总结

阅读更多

下面的是我从网上总结来的关于的Tomcatde 一些知识

 

Tomcat 的文件目录

 

/bin:存放启动和关闭tomcat的脚本文件;
/conf:存放tomcat的各种配置文件,比如:server.xml
/server/lib:存放tomcat服务器所需要的各种jar文件(jar文件只可被tomcat 服务器访问)
/server/webapps:存放tomcat自带的两个web应用:admin应用和manager应用。
/common/lib:存放tomcat服务器以及所有web应用都可以访问的jar文件夹(web和tomcat服务器都可访问此jar)
/shared/lib:存放web都可访问的jar文件。(可以被所有的web访问,但不能被tomcat访问)
/logs:存放tomcat的日志文件
/webapps:当发布web应用时,默认情况下把web应用文件放于此目录下
/work:tomcat把由jsp生成的Servlet放于此目录

 

Tomcat的class加载的优先顺序一览

 

1.最先是$JAVA_HOME/jre/lib/ext/下的jar文件。
2.环境变量CLASSPATH中的jar和class文件。
3.$CATALINA_HOME/common/classes下的class文件。
4.$CATALINA_HOME/commons/endorsed下的jar文件。
5.$CATALINA_HOME/commons/i18n下的jar文件。
6.$CATALINA_HOME/common/lib 下的jar文件。(JDBC驱动之类的jar文件可以放在这里,避免配置好数据源却找不到JDBC Driver的情况。)
7.$CATALINA_HOME/server/classes下的class文件。
8.$CATALINA_HOME/server/lib/下的jar文件。
9.$CATALINA_BASE/shared/classes 下的class文件。
10.$CATALINA_BASE/shared/lib下的jar文件。
11.各自具体的webapp /WEB-INF/classes下的class文件。
12.各自具体的webapp /WEB-INF/lib下的jar文件。

 

class的搜寻顺序如下

 

/WEB-INF/classes of your web application
/WEB-INF/lib/*.jar of your web application
$CATALINA_HOME/common/classes
$CATALINA_HOME/common/endorsed/*.jar
$CATALINA_HOME/common/i18n/*.jar
$CATALINA_HOME/common/lib/*.jar
$CATALINA_BASE/shared/classes
$CATALINA_BASE/shared/lib/*.jar

 

分享到:
评论

相关推荐

    Tomcat启动时类加载顺序

    ### Tomcat启动时类加载顺序详解 #### 一、引言 Apache Tomcat是一款开源的Servlet容器,主要用于部署Java Web应用程序。它支持最新的Servlet、JSP等规范,并且以其轻量级、简单易用的特点而受到开发者的青睐。在...

    tomcat类加载器

    例如,可以通过修改`common.loader`、`shared.loader`和`context.loader`属性来改变类的加载顺序和来源。 在深入研究"DevLoader"之前,需要查看压缩包内的具体文件,例如org目录下可能包含与DevLoader相关的源代码...

    Tomcat 类加载器的实现方法及实例代码

    Tomcat 类加载器的实现主要围绕着Java的类加载机制进行,旨在确保应用之间的类隔离,并提供灵活的资源访问策略。下面我们将深入探讨这些知识点。 首先,Java的类加载机制是基于“双亲委托模型”的。当一个类加载器...

    java class reload

    3. **Tomcat自带的Class reloading** - Tomcat在开发模式下,可以通过设置`reloadable=true`在`conf/server.xml`中的`Context`元素内,启用类的热重载。但这仅适用于源代码改变后,重新编译并部署的 `.class` 文件...

    Tomcat组成及工作原理借鉴.pdf

    类加载的顺序为: 1. /Web-INF/classes 2. /Web-INF/lib/*.jar 3. Bootstrap 4. System 5. $CATALINA_HOME/common/classes 6. $CATALINA_HOME/common/endores/*.jar 7. $CATALINA_HOME/common/lib/*.jar 8. $...

    Struts2在Tomcat容器中的加载过程

    理解Struts2在Tomcat中的加载过程有助于我们更好地进行Web应用开发和故障排查。 首先,让我们深入了解一下Struts2的核心组件: 1. **Filter Dispatcher**:Struts2的核心是`FilterDispatcher`,它是一个Servlet...

    Tomcat通俗讲解

    以下是类加载器的基本层级结构及其加载顺序: - **Bootstrap ClassLoader**:加载Java核心类库,位于`$JAVA_HOME/jre/lib/ext/*.jar`。 - **System ClassLoader**:加载用户自定义的类和类路径中的类库。 - **...

    Tomcat(二) Tomcat实现:Servlet与web.xml介绍 以及 源码分析Tomcat实现细节1

    当请求匹配到过滤器映射时,Tomcat会创建一个过滤器链,并按顺序调用每个过滤器的`doFilter()`方法。过滤器可以决定是否继续调用下一个过滤器,或者直接处理请求。 ```xml <filter-name>...

    《深入剖析Tomcat》的光盘源码

    6. **Classloading机制**:Tomcat的类加载机制对于理解和定制化部署非常重要。它遵循"父子类加载器"原则,理解类加载的顺序和策略对于解决类冲突问题至关重要。 7. **JMX(Java Management Extensions)**:Tomcat...

    Tomcat研究之ClassLoader.pdf

    1. **加载顺序**:在Tomcat中,类的加载遵循特定的顺序。通常情况下,每个子类加载器会先尝试从自己的类路径中加载类,如果找不到,则会向上委托给父类加载器进行加载。这种委托模式确保了类的单一性和安全性。 2. ...

    Tomcat 5.0.18 ClassLoader source code insight

    在分析源码时,我们还需要关注类加载的策略,例如如何处理Web应用的类路径,以及类的加载顺序。Tomcat还会处理类的重命名、覆盖和热更新等问题,这些都是通过ClassLoader实现的。 在实际开发中,了解这些细节可以...

    JDK Tomcat Mysql配置大全

    - **加载顺序**:`load-on-startup`指定Servlet加载的优先级,数值越小优先级越高。 #### 五、总结 通过上述步骤,可以有效地配置JDK、Tomcat5.5、Tomcat6.0以及部署MySQL驱动程序。正确的配置是成功部署Java Web...

    Tomcat Web.xml 详解

    数字值表示加载顺序,值越小优先级越高。 通过以上解析可以看出,`web.xml` 文件在Java Web应用中扮演着非常重要的角色。合理地利用这些元素可以帮助我们更好地组织和管理Web应用,提高开发效率和应用性能。

    Tomcat详解

    Tomcat采用了一种层次化的类加载机制,确保每个类加载器只加载自己权限范围内的类,并遵循特定的加载顺序。这种机制保证了系统的稳定性和安全性。 1. **Bootstrap**:加载核心Java库,这些库通常位于`$JAVA_HOME/...

    Tomcat中web.xml文件的详细说明

    init-param 元素定义了 Servlet 的初始化参数,而 load-on-startup 元素指定了 Servlet 的加载顺序。 7. servlet-mapping 元素 servlet-mapping 元素定义了 Servlet 的映射关系,例如: ```xml <servlet-name>...

    java tomcat server应用配置

    例如,设置工作目录、指定加载顺序等。 ```xml ``` 5. **配置Tomcat的虚拟主机**:通过`<Host>`元素配置虚拟主机,使得不同的域名指向不同的Web应用。例如,在`server.xml`中添加如下配置: ```xml ``` ...

Global site tag (gtag.js) - Google Analytics