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

学习tomcat 小记(3)

阅读更多
1)Lifecycle
public interface Lifecycle {
   public void addLifecycleListener(LifecycleListener listener);
   public LifecycleListener[] findLifecycleListeners();
   public void removeLifecycleListener(LifecycleListener listener);

   public void start() throws LifecycleException;
   public void stop() throws LifecycleException;
}

2)LifecycleListener
public interface LifecycleListener {
   public void lifecycleEvent(LifecycleEvent event);
}

其中,当监听的事件发生时,触发lifecycleEvent方法。

*对于观察者(监听器)模式的理解:
先注册监听器,然后在某个方法中(该方法中传入了event(如一个鼠标事件))执行listeners(从注册监听器的地方拿)的handleEvent(Event e)方法。

上面addLifecycleListener 为注册监听器, 而start()方法则是触发事件的地方。
这就是为什么Lifecycle接口要上面5个方法一起的原因。



2)Logger
Logger是catalina中用于记录消息的组件。在catalina中,logger是与container相关联的,与其他组件相比,稍简单一些。在org.apache.catalina.logger包中,tomcat提供了不同类型的logger。

tomcat提供了三个logger,分别是FileLogger,SystemErrorLogger和SystemOutLogger。他们都位于org.apache.catalina.logger包下,均继承自org.apache.catalina.logger.LoggerBase类。在tomcat4中LoggerBase实现了org.apache.catalina.Logger接口,在tomcat5中,它还实现了Lifecycle和MBeanRegistration接口。


3)Loader接口
tomcat的loader指的是web应用loader,而不是类loader。
tomcat的loader组件通常使用getContainer方法和setContainer方法与某个context容器相关联。若是context中的某个类修改了之后,loader可以进行重载。

Reloader接口
为了支持类的自动重载功能,类载入器需要实现org.apache.catalina.loader.Reloader接口。该接口定义如下:
package org.apache.catalina.loader;
public interface Reloader {
   public void addRepository(String repository);
   public String[] findRepositories ();

   public boolean modified();
}

其中最重要的方法是modified方法,该方法返回web应用中类是否被修改了。


WebappLoader类
org.apache.catalina.loader.WebappLoader类实现了Loader接口,表示一个web应用中的loader,负责为web应用载入需要的类。WebappLoader会创建一个org.apache.catalina.loader.WebappClassLoader的实例作为其类载入器。像其他catalina组件一样,WebappLoader类要实现org.apache.catalina.Lifecycle接口,由其container负责启动/关闭。WebappLoader类还是先了java.lang.Runnable接口,这样就可以使用另一个线程来重复调用其类载入器的modified方法来检查是否有类被修改了。若modified方法返回true,WebappLoader实例会通知其container来重新载入类(注意,不是WebappLoader执行类的重载)。(此处的多线程实现值得研究)
调用WebappLoader类的start方法后要执行的重要任务包括:
(1)创建一个类载入器
(2)设置repository
(3)设置类路径
(4)设置访问权限
(5)为类的自动重载打开一个新线程



下一个总结将是session管理

分享到:
评论

相关推荐

    windows下部署tomcat项目小记

    在Windows环境下部署Apache Tomcat服务器是一项常见的任务,尤其对于开发和测试环境来说。在这个过程中,可能会遇到各种问题,本文将详细解析如何在Windows系统中部署Tomcat项目,并着重解决两个常见问题:数据库不...

    Tomcat学习总结.zip

    《Tomcat学习总结》 Tomcat,作为Java Web应用程序的开源服务器,是Apache软件基金会Jakarta项目的一个核心组件。在本文中,我们将深入探讨Tomcat 8.5版本的学习要点,包括其工作原理、配置与优化,以及在实际开发...

    Tomcat学习资料1

    【标题】:“Tomcat学习资料1”所涵盖的知识点包括了Tomcat服务器的使用、配置以及Web项目的部署。Tomcat是Apache软件基金会的Jakarta项目中的一个核心项目,是一款开源的Java Servlet容器,广泛用于搭建Java Web...

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

    【标题】"Tomcat源码学习:一个最简单的‘Tomcat’",这篇博客主要探讨的是如何通过学习Tomcat的源代码来理解这个流行的开源Java Servlet容器的工作原理。Tomcat是Apache软件基金会的一个项目,它是Java Web应用...

    tomcat官网版本Tomcat+Java学习资源

    【标题】:“Tomcat官网版本Tomcat+Java学习资源”是一个综合的学习资料包,主要针对的是Java开发中的关键工具——Apache Tomcat服务器以及相关的Java技术。Apache Tomcat是一款开源的Servlet容器,它实现了Java ...

    学习tomcat源码+英文《How Tomcat Work》和每一章的相关项目+tomcat6源码依赖jar

    总之,学习Tomcat源码不仅能够提升你对Web服务器底层工作的理解,还能够提高你在Java Web开发中的问题排查能力,让你成为一名更出色的开发者。通过阅读《How Tomcat Works》并结合实际项目实践,你将能够逐步揭开...

    tomcat7tomcat8tomcat9

    Tomcat是Apache软件基金会下的一个开源项目,是一个广泛使用的Java Servlet容器,特别因为其轻量级、高效能和稳定性而闻名。它实现了Java Servlet和JavaServer Pages(JSP)规范,使得开发者能够用Java语言来编写...

    tomcat源码学习之环境搭建

    在深入探讨Tomcat源码学习之前,我们首先要理解Tomcat是什么。Tomcat是一款开源的、免费的Web服务器和Servlet容器,由Apache软件基金会维护。它实现了Java Servlet和JavaServer Pages(JSP)规范,是Java EE应用...

    tomcat学习资料整理(不断更新)

    【标题】"Tomcat学习资料整理(不断更新)"揭示了这个压缩包文件是关于Tomcat服务器的深入学习资源,特别是关注其源码和使用的工具。Tomcat是Apache软件基金会的Jakarta项目中的一个核心项目,它是一个开源的、免费的...

    tomcat7,tomcat8,tomcat9

    3. 配置服务器运行时环境,设置JRE版本和服务器端口等。 4. 创建或导入Web项目,将项目部署到Tomcat服务器上。 5. 右键点击服务器实例,选择"Start"启动Tomcat,通过浏览器访问应用。 总的来说,Tomcat7、Tomcat8和...

    tomcat3源码包

    《深入剖析Tomcat3:源码解析与运行机制》 Tomcat3作为Apache Tomcat的早期版本,虽然相比后来的6、7、8等版本...尽管它可能无法满足现代复杂Web应用的需求,但作为基础教学和学习的工具,Tomcat3仍然具有很高的价值。

    tomcat学习笔记

    【标题】:Tomcat学习笔记 【正文】: Tomcat是一款广泛应用的开源Web服务器和Java Servlet容器,由Apache软件基金会的Jakarta项目开发。它实现了Java Servlet和JavaServer Pages(JSP)规范,并且作为轻量级应用...

    tomcat5.5tomcat最新客户端

    tomcat最新客户端tomcat最新客户端tomcat最新客户端tomcat最新客户端tomcat最新客户端tomcat最新客户端tomcat最新客户端tomcat最新客户端tomcat最新客户端tomcat最新客户端tomcat最新客户端tomcat最新客户端tomcat...

    tomcat9 源码学习

    3. **容器概念**:在Tomcat中,容器是一个可以包含其他容器或Web应用程序的对象。主要的容器有Engine(引擎)、Host(主机)、Context(上下文)和Wrapper(Servlet包装器)。每个级别都负责处理特定层次的Web应用...

    tomcat学习精华笔记

    3. 应用服务器与Tomcat的区别 - 应用服务器如WebLogic提供了完整的J2EE功能,包括EJB、JMS、JAAS等,而Tomcat则不支持这些高级特性。 - 通过与像JBoss这样的开源应用服务器集成,Tomcat可以实现J2EE的全部功能。 ...

    tomcat 学习与分析总结资料

    《Tomcat学习与分析总结资料》是一份涵盖了Tomcat服务器核心知识的综合资源,适合对Java Web应用服务器感兴趣的开发者深入学习。Tomcat是Apache软件基金会的项目,是世界上最流行的开源Servlet容器,它实现了Java ...

    tomcat 7 和 tomcat 8

    3. NIO(非阻塞I/O)改进:Tomcat 7增强了NIO连接器,提高了服务器处理并发请求的能力,提升了性能。 4. 配置简化:引入了web.xml的注解配置,使得部署描述符的编写更为简洁。 5. 新的安全特性:增加了Secure ...

    Tomcat培训学习资料

    Apache Tomcat是一款广泛使用的开源Servlet容器,它实现了Java Servlet和JavaServer Pages (JSP)技术,并在...通过本课程的学习,可以提升他们对于Tomcat服务器的管理和应用能力,有效地应对实际工作中的各种挑战。

    Tomcat学习资料

    ### Tomcat学习资料知识点梳理 #### 一、Tomcat简介 **Tomcat** 是一个开源的轻量级Web应用服务器,适用于中小型系统和并发访问用户不是很多的场合。它由Apache Software Foundation(ASF)的Jakarta项目开发,因...

Global site tag (gtag.js) - Google Analytics