Tomcat 启动的时候干了些啥

官方的启动说明文档位置 :Tomcat.x.x.x/webapps/docs/architecture/startup 目录下 

我这里查看的是Tomecat7 的 Tomcat 5 Startup Sequence 文档如下点击打开链接  在Eclipse中的类加载日志如下点击打开链接


核心类

1:org.apache.catalina.startup.Bootstrap 

2:org.apache.catalina.startup.Catalina

文档中显示大体分为两步

1:当接受到启动命令时 初始化类加载器 初始化核心类的 init()

2:初始化Tomcat 的信息 加载资源 等待请求的到来

当接受到启动命令时 详细动作(第一步)

在 org.apache.catalina.startup.Bootstrap 类的 init() 方法中
1:装配类加载器 commonLoader  / sharedLoader / catalinaLoader
2: 加载启动管理类 org.apache.catalina.startup.Catalina

第二步又分多小步

1:初始化Tomcat 信息
1) 设置等待参数为true
2) 初始化堆栈/读取配置/启动监听/初始化多个结果集/输出加载信息/初始化以及注册所有对象为JMX代理
(在这一步中设置了单一的入口链接 http://127.0.0.1:8080)
2:Catalina 的初始化
1)首先是加载服务StandardService -> starts Engine (ContainerBase ->Logger,Loader,Realm,Cluster etc)类的加载与初始化 / 开启线程上下文/加载需要部署的项目寻找路径是(webapps & conf/Catalina/localhost/*.xml) 然后加载处理应用的web.xml
2)启动一个线程来监听context/web.xml 如果更改就重新加载
3:当接收到请求 (会一直调用协议处理器)
1)单独开启的一个线程 等待接受请求的到来
2)获取到一个请求时分配一个TCP链接来处理请求(提供了一个容器)
(HTTP 请求在一个内部缓冲区中解析 [请求行/标头] 并将结果存储在结果集中 request )
3)解析完请求之后会将参数绑定到线程/并装载要使用的类以及实例的编译JSP
4)调用Servlet

PS:
1:以上内容简化了很多的步骤 更为详细可以参考官方的文档
2:在类加载日志中打印的是Tomcat启动后的所有类的加载 包含了JDK 中的
434行加载了类 org.apache.catalina.startup.Bootstrap
然后加载 日志相关类
498行加载了类 org.apache.catalina.startup.CatalinaProperties
819行加载了类 org.apache.catalina.startup.Catalina



  • 2
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值