
tomcat源码分析
文章平均质量分 77
嘿哈吼哈
此人不懒,写了一点东西
展开
-
tomcat分析之container以及子容器的初始化流程
关于这一篇内容是非常多的,其中大部分都是涉及源码的剖析。由于其中所涉及到太多的细节,所以很多实现细节未能有详细的展开,不过对于其中的执行流程分析的还是相对完整的。由于作者的水平有限,如果在这些流程中有缺漏,或者有分析错误之处,请告知作者。containercontainer的结构container是一个接口,所有子容器都继承这个接口。并且container这个接口继承了Lifecycle接口,所以container,以及它的子容器 也具有生命周期。container有一个默认的实现类,Conta原创 2021-04-13 11:49:56 · 451 阅读 · 0 评论 -
tomcat分析之connector的执行
connectorConnector的主要功能,是接收连接请求,创建Request和Response对象用于和请求端交换数据;然后分配线程让Engine来处理这个请求,并把产生的Request和Response对象传给Engine。Engine是conntainer的子类,Container就是Servlet的容器,Container处理完后会把结果返回给Connector,最后Connector使用socket将处理结果返回给客户端,整个请求处理完毕。Connector的底层是使用socket进行连接原创 2021-04-12 15:29:06 · 456 阅读 · 0 评论 -
tomcat分析之Lifecycle以及LifecycleBase
Lifecycle在之前tomcat的分析中,我们通常会提到一个init(),和start(),以及initInternal()和startInternal()。至于其中的调用过程在前文只是简单提到过,没有详细讲过,通过这一篇,可以详细的了解关于tomcat生命周期的定义,以及其中方法的调用* start()* -----------------------------* | |* | init()原创 2021-04-11 15:27:54 · 623 阅读 · 0 评论 -
tomcat分析之Service
本来是准备一天一更,大致表述完tomcat的。但是,最近一直在准备考试,也就没有继续更新。今天就聊一聊tomcat中的service。Service可以说是tomcat的比较重要的部分。原因就是其中包含了两个组件,Container和Connector。Container是一个容器,负责处理请求的。Connector是负责接受请求,并且将请求提交给Container。(关于Connector和Container的执行流程,在后续的文章也会详细展开)一,关于Service的初始化时期关于service原创 2021-04-10 16:39:48 · 1234 阅读 · 0 评论 -
tomcat分析之server
分析Server的步骤在讲解catlina的时候其中说过Server.init()。但是在Server中其实是没有定义init(),这个方法其实是在他的接口中才实现的。所以原创 2021-04-07 19:55:56 · 325 阅读 · 1 评论 -
tomcat分析---catalina
根据上篇的分析,其实tomcat启动流程中,在catalina主要是执行了三个方法。setAwait(true);load();start();注:分析的源码为tomcat8.5版本关于setAwait()方法public void setAwait(boolean b) { await = b; }就是令一个标识变成 true;catalina.load()源码如下public void load() { if (loaded) {原创 2021-04-05 16:54:43 · 431 阅读 · 1 评论 -
tomcat启动的入口---Bootstrap,源码分析
上一篇说到,我们启动tomcat实质就是定位到Bootstrap中的main方法。这一篇我们来详细分析一下Bootstrap的作用吧看一波Bootstrap.main()源码 /** * Main method and entry point when starting Tomcat via the provided * scripts. * * @param args Command line arguments to be processed */原创 2021-04-05 15:23:44 · 552 阅读 · 0 评论 -
tomcat的启动流程
在上一篇中,我们是自己配置启动的路径。通过手动启动。那么,再实际的操作中,我们通常用的都是core版本来使用的,里面是没有上篇我们配置的那个路径的,那么是如何启动的呢。1,通过bin路径startup.bat(linux环境下是startup.sh)的文件来启动的。2,查看startup.batsetlocalrem Guess CATALINA_HOME if not definedset "CURRENT_DIR=%cd%"if not "%CATALINA_HOME%" == ""原创 2021-04-05 10:08:18 · 2744 阅读 · 0 评论 -
阅读tomcat源码的准备工作
最近一直在看tomcat的源码,说实话看的是眼花缭乱。自己记了很多笔记,但是感觉一次上传篇幅太大。于是准备根据每一小部分来陆续上传。在一篇先讲讲阅读tomcat的准备工作吧。首先,你要准备一个看代码的工具,idea或者vs code 都行。博主用的是idea。然后就是准备一个tomcat,我看的是tomcat8.5的版本。附上官网连接https://tomcat.apache.org/download-80.cgi然后选择src版本下载。(更容易看代码)然后就可以开始阅读源码了。-------原创 2021-04-05 08:47:02 · 216 阅读 · 1 评论