tomcat
2018-04-19 17:03:39 0 举报
tomcat架构图,纯属个人总结,有疑点请指正
作者其他创作
大纲/内容
7.调用Server.start()启动服务
PIPELINE
1.调用init初始化环境,包含CatalinaHome和CatalinaBase
REALM
10.StandardServer循环所有解析出来的service和Listener,并依次调用起start方法
catalina
CONNECTOR
加载各种所需class
StandardEngineValve
bootstrap.初始化过程
3,通过serverLoader初始化Catalina,并设置ParentClassLoader为ClassLoader
WrapperValve
Http11AprProtocol.Http11ConnectionHandler
NIoEndpoint
WRAPPER
AbstractProtocol.AbstractConnectionHandler
PROTOCOLS
MAMANGER
StandardContextValve
PROTOCOLHANDLER
http请求,访问静态资源,已经单独成独立项目
初始化时,同时初始化Handler和EndPoint
ValveB
6,创建Digester,然后通过digester解析server.xml,加载server下的所有service
Servlet
AbstractEndpoint
8.StandardServer设置状态为LifecycleState.STARTING
9.StandardServer调用NamingResources.start()
ContextValve
CONTAINER
Http11NioProtocol.Http11ConnectionHandler
5,初始化initDirs()和initNaming()
Http11NioProtocol
默认启动
AjpAprProtocol
CLASSLOADER
Bootstrap
管理tomcat的Session
BIO
4,通过反射调用Catalina的load和start方法
SERVER
ENGINE
HOST(S)
Lifecycle
JIoEndpoint
ValveA
catalina.bat启动时,加载bootstrap.jar,执行main方法初始化ClassLoader,加载catalina对象
HOST
WRAPPER(S)
APR connector
主要用于授权认证
Http11Protocol
StandardWrapperValve
Filter chain
NIO
HostValve
Http11AprProtocol
EngineValve
interface
tomcat和http服务器的通信协议,加快通信速度和效率
http请求,包含BIO和NIO,NIO处理非阻塞IO和长链接
CONTEXT(S)
PIPELINE-Valve
用于处理tomcat的内容
责任链模式:很多对象由每个对象对一下一个对象有引用,从而形成一个链,每个请求在这个链上处理,直到某个对象处理该请求。 tomcat的pipline-valve和责任链模式有一定区别,暂时叫做管道模式,也可以将valve看做是filter,而pipline则当做filter chain。
AprEndpoint
AJP connector
Server
主要服务
CONTEXT
StandardHostValve
APR
SERVICE
HTTP connector
Http11Protocol.Http11ConnectionHandler
0 条评论
回复 删除
下一页