前言:tomcat类加载器的文章网上很多,坛子里也有很多,就不重复造轮子了
分享两篇相关好问地址:http://www.ibm.com/developerworks/cn/java/j-lo-classloader/index.html
http://blogold.chinaunix.net/u2/83532/showart_1418390.html
看东西前,为自己提几个问题
tomcat为什么需要类加载器,已有的jvm设计的加载器为何满足不了,类加载器都为tomcat做了什么呢,?
资料上说
引用
比如您的应用通过网络来传输 Java 类的字节代码,为了保证安全性,这些字节代码经过了加密处理。这个时候您就需要自己的类加载器来从某个网络地址上读取加密后的字节代码,接着进行解密和验证,最后定义出要在 Java 虚拟机中运行的类来
那么tomcat是为啥子呢?没怎么想通,goole了几次找到相关的说法
引用
container中需要一个自定义的loader,不能简单的直接使用系统的loader,因为所要运行的servlet是不可信任的。假如像使用之前章节一样使用系统中的loader,则该loader载入的servlet和其他类就能访问当前jvm实例中CLASSPATH环境变量下所有的类了,这非常不安全。servlet应该仅仅被允许从WEB-INF/classes及其子目录,和WEB-INF/lib下部署额lib中载入类。因此,servlet容器需要一个自定义的loader。每一个web一样(对应context容器)都有一个自定义的loader。在catalina中,loader组件要实现org.apache.catalina.Loader接口。
使用自定义loader的另一个原因是,可以支持class的自动重载。tomcat中的loader实现使用了另一个线程来检查servlet和相关类的时间戳,若是发生变化,则重新载入。为了支持class的重载,loader还要实现org.apache.catalina.loader.Reloader接口。
里面设计到线程加载器,必须要指定,不过不知道就会jvm顶层加载器去加载了。
tomcat实现里面有很多自己的策略,具体的东西大概看了下,没深入。
日志系统,在系统每个类都可以看到他的存在,但是tomcat确使用了的这个是可扩展性的吗?他可以随意替换日志输出吗?那么java本身是日志框架是怎样的,貌似这个要再java本身有一个好的支持,因为在里面看到很多java.util.log
详细资料http://tomcat.apache.org/tomcat-6.0-doc/logging.html
java日志:http://yanboy.iteye.com/blog/204436
common logging: http://commons.apache.org/logging/
这就完全解释了为什么看到
private static final String SIMPLE_FMT="org.apache.tomcat.util.log.JdkLoggerFormatter";
private static final String SIMPLE_CFG="org.apache.tomcat.util.log.JdkLoggerConfig";
分享到:
相关推荐
【如何使用Tomcat——学习笔记】 Tomcat是一款广泛使用的开源Java Servlet容器,它实现了Java EE的Web部分,包括Servlet和JSP规范。本教程将详细解释如何配置和使用Tomcat,以便于开发和测试Servlet应用。 1. **...
**SpringBoot学习笔记** SpringBoot是由Pivotal团队开发的一款基于Java的轻量级框架,旨在简化Spring应用的初始搭建以及开发过程。它通过自动配置、起步依赖和运行时嵌入式服务器,使得开发者能够快速地创建独立的...
本学习笔记主要聚焦于理解监听器的概念、作用以及如何在实际应用中使用它们。 一、监听器概述 监听器是实现了特定接口的Java类,这些接口定义了对特定事件的处理方法。例如,`HttpSessionListener`用于监听会话的...
Java Web学习笔记是深入理解Web开发技术的重要参考资料,尤其对于初学者来说,它提供了一条系统学习的路径。这份笔记的作者在学习过程中积累了丰富的知识,并将其归纳整理,旨在帮助那些希望进入Java Web领域的...
这个"JavaWeb图书管理系统视频+资料+笔记"的压缩包可能包含了上述所有知识点的学习资源,包括视频教程、文档、源码示例,可以帮助你深入理解和实践这些技术,完成一个完整的JavaWeb项目。通过学习和实践,你可以掌握...
- 配置文件加载顺序通常为:应用内配置 > 类路径下的配置 > 命令行参数 > 系统属性。 - Spring Boot默认采用SLF4J和Logback作为日志系统,支持灵活的日志配置和输出。 总的来说,Spring Boot通过简化配置和提供预...
这个入门教程和学习笔记是针对初学者设计的,帮助他们快速理解和掌握Struts2的核心概念和实践操作。 Struts2的学习首先需要理解MVC模式。MVC模式将应用逻辑分为三个部分:模型负责业务逻辑,视图负责展示数据,而...
### servlet学习笔记详解 #### Tomcat介绍 **Tomcat服务器**是基于Sun公司的JSWDK(Java Servlet and Web Development Kit)发展而来的杰出Servlet/JSP容器。作为Apache-Jakarta项目的一部分,Tomcat不仅能够执行...
【描述】"day04-Tomcat&Servlet入门-讲义.zip"暗示这是一份教学材料,可能包含第四天课程的学习笔记或讲义,专注于初学者如何开始使用Tomcat和Servlet进行Web开发。学习者将通过这份资料了解到如何配置和管理Tomcat...
动力节点老杜的Servlet学习笔记涵盖了这一关键领域的深入理解,旨在帮助开发者掌握Servlet的基本概念、工作原理以及实际应用。下面将详细阐述Servlet的相关知识点。 一、Servlet概述 Servlet是一个Java类,它遵循...
- 这种监听器在Tomcat服务器启动时自动加载。`contextInitialized()`方法在Web应用部署并初始化时被调用,可以用来进行全局的配置,如加载配置文件、初始化静态资源等。 - `contextDestroyed()`方法在Tomcat服务器...
- **FilebeatProspector:Tomcat**:在Filebeat配置中指定Tomcat日志文件路径。 - **重启filebeat**:同前。 以上就是从给定文档中的标题、描述、标签以及部分内容中提取并详细阐述的相关知识点。这些知识点覆盖了从...
笔记可能包括Tomcat的安装、部署Web应用、日志配置等内容。 以上是对"javaweb笔记"可能包含内容的详细概述,这些知识点构成了JavaWeb开发的基础,对于初学者来说,掌握这些内容将有助于深入理解和实践JavaWeb开发。...
### WebWork学习笔记知识点 #### 一、WebWork框架简介 - **定义**: WebWork是一个由OpenSymphony组织开发的MVC(Model-View-Controller)框架,专注于组件化和代码重用,适用于J2EE应用程序开发。 - **最新版本**:...
### Java学习笔记之Spring框架工作原理 #### 一、Spring框架概述 Spring框架是一个轻量级的开源框架,主要用于简化企业级应用开发。它通过提供一种简单的方式来管理对象的生命周期和依赖关系,使得开发者能够更加...
这份名为"方立勋JavaWeb视频前十一天笔记word版本(非常难得)"的资料,显然是对JavaWeb初级阶段知识的全面梳理,对于想要系统学习或复习JavaWeb技术的人来说,是一份宝贵的参考资料。通过深入学习和实践这些知识点,...
通过这份"JAVA WEB开发实战经典培训【课堂笔记】",读者可以系统地学习和掌握Java Web开发的核心概念和技术,逐步成长为一名合格的Java Web开发者。这份资料详尽地记录了课程的要点,是提升技能、巩固知识的好帮手。
7. **错误处理和日志系统**:理解Tomcat如何处理异常和记录日志,这对于调试和监控应用非常重要。 8. **JSP和Servlet的处理**:Jasper引擎如何将JSP转换为Servlet并执行,以及Servlet的生命周期和请求处理流程。 ...
总结,"狂神说JavaWeb笔记"涵盖了JavaWeb开发的各个方面,从基础的Servlet和JSP,到高级的框架应用和项目管理,为学习者提供了一个全面的学习路径。通过深入学习这些知识点,开发者能够熟练地构建和维护JavaWeb应用...