第六章生命周期 - GOOGLE CODE.docxVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
第六章生命周期 - GOOGLE CODE

第六章生命周期----------------------译者:王法波-wangfabo1986@.时间紧迫质量低下敬请指正综述Catalina由多个组件组成,当Catalina启动的时候,这些组件也会启动。当Catalina停止的时候,这些组件也必须有机会被清除。例如,当一个容器停止工作的时候,它必须唤醒所有加载的servlet的destroy方法,而session管理器要保存session到二级存储器中。保持组件启动和停止一致的的机制通过实现org.apache.catalina.Lifecycle接口来实现。一个实现了Lifecycle接口的组件同是会触发一个或多个下列事件:BEFORE_START_EVENT, START_EVENT, AFTER_START_EVENT, BEFORE_STOP_EVENT, STOP_EVENT, and AFTER_STOP_EVENT。当组件被启动的时候前三个事件会被触发,而组件停止的时候会触发后边三个事件。另外,如果一个组件可以触发事件,那么必须存在相应的监听器来对触发的事件作出回应。监听器使用org.apache.catalina.LifecycleListener来表示。本章会对Lifecycle, LifecycleEvent, and LifecycleListener进行讨论。另外,还会解释一个公用类LifecycleSupport,它给组件提供了一个简单方式来触发生命周期事件和处理事件监听器。在本章中,会建立一个有实现了Lifecycle接口的类的工程。该程序时基于第五章的应用程序的。Lifecycle接口Catalina的设计允许一个组件包含其它的组件。例如一个容器可以包含一系列的组件如加载器、管理器等。一个父组件负责启动和停止其子组件。Catalina的设计成所有的组件被一个父组件来管理(in custody),所以启动bootstrap类只需启动一个组件即可。这种单一的启动停止机制通过继承Lifecycle来实现。看Listing6.1所示的Lifecycle接口。Listing 6.1: The Lifecycle interfacepackage org.apache.catalina;public interface Lifecycle {? public static final String START_EVENT = start;? public static final String BEFORE_START_EVENT = before_start;? public static final String AFTER_START_EVENT = after_start;? public static final String STOP_EVENT = stop;? public static final String BEFORE_STOP_EVENT = before_stop;? public static final String AFTER_STOP_EVENT = after_stop;?? public void addLifecycleListener(LifecycleListener listener);? public LifecycleListener[] findLifecycleListeners();? public void removeLifecycleListener(LifecycleListener listener);? public void start() throws LifecycleException;? public void stop() throws LifecycleException;}??Lifecycle中最重要的方法是start和stop方法。一个组件提供了这些方法的实现,所以它的父组件可以通过这些方法来启动和停止他们。另外3个方法addLifecycleListener, findLifecycleListeners, 和removeLifecycleListener事跟监听器相关的类。组件的监听器对组件可能触发的时间“感兴趣”,当一个事件被触发的时候,相应监听器会被通知。一个Lifecycle实例可以触发使用静态最终字符串定义的六个事件。LifecycleEvent类org.apache.catalina.LifecycleEvent表示一个生命周期事件,如Listing6.2所示:Listing 6.2: The org.apache.catalinaLifecycleEvent interfacepackage org.apache.catalina;import ja

文档评论(0)

baoyue + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档