Tomcat 包含多个很多个组件, Tomcat 内部使用一个观察者模式来组织这些组件之间的关系,做到同时启动与停止 。
引用
cmd /c D:\tomcat-8080\bin\catalina.bat run
Using CATALINA_BASE: C:\Documents and Settings\liuwentao\.IntelliJIdea10\system\tomcat\Unnamed_newclass2009_3
Using CATALINA_HOME: D:\tomcat-8080
Using CATALINA_TMPDIR: D:\tomcat-8080\temp
Using JRE_HOME: D:\Java\jdk1.6.0_03
Connected to the target VM, address: '127.0.0.1:1958', transport: 'socket'
2011-8-3 13:13:06 org.apache.catalina.core.AprLifecycleListener init
信息: The Apache Tomcat Native library which allows optimal performance in production environments was not found on the java.library.path: D:\Java\jdk1.6.0_03\bin;.;C:\WINDOWS\Sun\Java\bin;C:\WINDOWS\system32;C:\WINDOWS;D:\Program Files\JetBrains\IntelliJ IDEA 10.5\bin\..\.\bin;D:\Java\jdk1.6.0_03\bin;E:\oracle\product\10.2.0\db_1\bin;C:\WINDOWS\system32;C:\WINDOWS;C:\WINDOWS\System32\Wbem;C:\Program Files\ATI Technologies\ATI.ACE\Core-Static;C:\Program Files\Common Files\Thunder Network\KanKan\Codecs;D:\Program Files\TortoiseSVN\bin;C:\Program Files\CVSNT\;d:\program files\jetbrains\intellij idea 10.5\jre\jre\bin
2011-8-3 13:13:06 org.apache.coyote.http11.Http11Protocol init
信息: Initializing Coyote HTTP/1.1 on http-8080
2011-8-3 13:13:06 org.apache.catalina.startup.Catalina load
信息: Initialization processed in 541 ms
2011-8-3 13:13:06 org.apache.catalina.core.StandardService start
信息: Starting service Catalina
2011-8-3 13:13:06 org.apache.catalina.core.StandardEngine start
信息: Starting Servlet Engine: Apache Tomcat/6.0.14
2011-08-03 13:13:16,632 WARN [com.koolearn.security.client.core.BeforeContextLoaderListener.dealSysGlobal(BeforeContextLoaderListener.java:79)] - <******file = SystemGlobals_liuwentao.properties>
2011-08-03 13:13:16,679 WARN [com.koolearn.security.client.core.BeforeContextLoaderListener.contextInitialized(BeforeContextLoaderListener.java:45)] - <SystemGlobals.getPreference("2 hosts.security") = http://liuwentao:81>
2011-08-03 13:13:16,679 WARN [com.koolearn.security.client.core.BeforeContextLoaderListener.contextInitialized(BeforeContextLoaderListener.java:46)] - <SystemGlobals.getPreference("2 hosts.domain") = http://liuwentao:8080>
2011-08-03 13:13:26,023 WARN [org.springframework.security.intercept.AbstractSecurityInterceptor.afterPropertiesSet(AbstractSecurityInterceptor.java:190)] - <Could not validate configuration attributes as the ObjectDefinitionSource did not return a ConfigAttributeDefinition collection>
2011-08-03 13:13:26,038 WARN [org.springframework.security.config.FilterChainProxyPostProcessor.checkForDuplicates(FilterChainProxyPostProcessor.java:117)] - <Possible error: Filters at position 11 and 12 are both instances of org.springframework.security.intercept.web.FilterSecurityInterceptor>
2011-08-03 13:13:27,632 ERROR [com.koolearn.eclass.product.utils.ChannelUtils.parseXml(ChannelUtils.java:123)] - <this.getRootElement(D:\project\koolearn2010\newclass2009\WebRoot\channel\channel_book.xml)=null>
2011-08-03 13:13:28,038 WARN [org.springframework.security.intercept.AbstractSecurityInterceptor.afterPropertiesSet(AbstractSecurityInterceptor.java:190)] - <Could not validate configuration attributes as the ObjectDefinitionSource did not return a ConfigAttributeDefinition collection>
2011-08-03 13:13:28,038 WARN [org.springframework.security.config.FilterChainProxyPostProcessor.checkForDuplicates(FilterChainProxyPostProcessor.java:117)] - <Possible error: Filters at position 11 and 12 are both instances of org.springframework.security.intercept.web.FilterSecurityInterceptor>
you must set sso.loginURL!
finished init
2011-8-3 13:13:29 net.fckeditor.connector.ConnectorServlet init
信息: ConnectorServlet successfully initialized!
2011-8-3 13:13:30 org.apache.coyote.http11.Http11Protocol start
信息: Starting Coyote HTTP/1.1 on http-8080
2011-8-3 13:13:30 org.apache.jk.common.ChannelSocket init
信息: JK: ajp13 listening on /0.0.0.0:8009
2011-8-3 13:13:30 org.apache.jk.server.JkMain start
信息: Jk running ID=0 time=0/31 config=null
2011-8-3 13:13:30 org.apache.catalina.startup.Catalina start
信息: Server startup in 23950 ms
Connected to server
它的启动顺序:
引用
StandardService --> StandardEngine-->Http11Protocol-->JkMain-->Catalina
tomcat 是点火式引擎,由org.apache.catalina.startup.Bootstrap 这个类来点燃整个系统的启动。
启动顺序为:
引用
Server{init()-->start()} --> Service{start()} --> Connector(start()) --> Engine{start()} --> Host{start()} --> Context{start()}
Tomcat Server的结构图
- 大小: 4.4 KB
分享到:
相关推荐
本文将深入探讨Tomcat的生命周期管理和事件管理,这两个概念是理解和优化Tomcat应用程序性能的关键。 首先,让我们关注Tomcat的生命周期。每个在Tomcat中部署的应用程序都有一个特定的生命周期,它由一系列的阶段...
Tomcat的架构设计中使用了多个设计模式,例如上述生命周期管理的实现运用了状态模式,事件监听机制则运用了观察者模式。这些设计模式的使用大大增强了Tomcat的扩展性、灵活性和可维护性。 总结来说,Tomcat的架构...
使用JAVA语言写的项目管理软件,可以跟踪任务和bug的进度,实现对任务和bug全生命周期管理。 这个项目是很早之前开发的(大约在2008年前后),所以使用的技术是传统的JSP/Servlet+JDBC方式。虽然技术比较老了,但是...
Servlet生命周期是Java Web开发中一个关键的概念,它描述了Servlet从创建到销毁的整个过程,这个过程由Servlet容器(如Tomcat)进行管理。Servlet生命周期主要分为三个阶段:初始化阶段、运行阶段和销毁阶段。 1. ...
3. **生命周期管理**:每个Tomcat组件都有自己的生命周期,包括初始化、启动、停止和销毁。源码中,这些生命周期方法的实现有助于理解Tomcat的内部工作流程。 4. **部署与加载**:Tomcat可以自动或手动部署Web应用...
Servlet生命周期是Java Web开发中的核心概念,它涵盖了Servlet从创建到销毁的整个过程,主要分为初始化...理解并掌握Servlet的生命周期对于优化性能和管理资源至关重要,尤其是在处理高并发和长时间运行的Web应用中。
3. **Servlet生命周期**:Servlet在Tomcat中的生命周期包括加载、初始化、服务、销毁四个阶段。Tomcat通过Servlet容器管理Servlet实例,确保其正确地创建、初始化和销毁。 4. **请求处理**:当一个HTTP请求到达时,...
3. **生命周期管理**:Tomcat按照一定的生命周期管理Servlet,包括加载、初始化、服务、销毁等阶段。每个Servlet实例都有自己的生命周期,Tomcat会根据需要创建和销毁它们。 4. **连接器(Connector)**:Tomcat...
6. **Lifecycle Interfaces**: Tomcat API包含一系列生命周期接口,如Lifecycle、LifecycleListener、LifecycleState等,用于管理组件的创建、启动、停止和销毁过程。开发者可以通过实现这些接口,监控和干预Tomcat...
Tomcat 系统架构与设计模式,第 1 部分:工作原理 本文将从 Tomcat 系统架构与设计模式的角度,...在下一部分中,我们将继续探讨 Tomcat 的工作原理,包括请求处理、Servlet 生命周期管理和生命周期事件处理等方面。
StandardService类除了实现Service接口外,还实现了Lifecycle接口,这使得StandardService可以对下属组件进行生命周期管理,包括启动、停止、重启等。Lifecycle接口的引入是Tomcat设计中的一个重要决策,它提供了一...
生命周期管理: Servlet容器负责管理Servlet的生命周期,包括初始化、服务处理和销毁。 当Servlet容器启动时,它会加载并初始化配置中指定的Servlet类。在Servlet的生命周期中,容器负责调用相应的生命周期方法,...
### Servlet 生命周期详解 #### 一、概述 ...了解 Servlet 的生命周期对于更好地控制和优化 Web 应用程序至关重要...通过深入了解 Servlet 的生命周期,开发者可以更有效地管理和优化 Web 应用程序,提高其性能和稳定性。
### Servlet执行过程与生命周期详解 在探讨Servlet的执行...理解Servlet的执行过程与生命周期对Java Web开发至关重要,它不仅帮助开发者设计出更高效、更健壮的Web应用,还为解决常见的Web开发问题提供了理论基础。
在实际开发中,理解Servlet的生命周期对于优化性能和管理资源至关重要。例如,可以通过控制Servlet的实例化次数来减少内存消耗,或者在`init()`方法中初始化一次性的资源,在`destroy()`方法中及时释放,以确保...
Servlet容器负责创建Servlet的实例,管理其生命周期,并处理来自客户端的请求。 3. **.war文件**:WAR(Web Application Archive)文件是Java Web应用程序的标准打包格式,包含了所有必要的资源,如HTML、CSS、...
1. **Catalina**:这是Tomcat的核心组件,负责Servlet容器的主要功能,如容器管理、生命周期管理和请求处理。Catalina包含Context、Host和Engine等层次结构,它们分别对应于Web应用、虚拟主机和整个服务器。 2. **...
4. **生命周期管理**:Tomcat管理Web应用程序的生命周期,包括加载、初始化、服务、停止和卸载等阶段。 5. **安全性**:Tomcat支持各种安全机制,如SSL/TLS加密、基本认证、digest认证和Form认证等。 6. **配置...