Tomcat源码学习
夜_孤城
程序猿的自我救赎。。。
展开
-
Eclipse导入Tomcat源码
准备: 1.Tomcat源码下载 这个里下载tomcat-6.0.33源码。 2.ant安装,用于编译tomcat的源码。 ant下载解压后将其bin添加到系统环境path中。 3.IDE——选用Eclipse3.7。 ================================= 第一步: 解压Tomcat源码,例如解压到D:转载 2016-11-16 15:36:18 · 427 阅读 · 0 评论 -
Tomcat源码分析之一_Tomcat架构理解
废话少说,拉代码,导入eclipse开干,具体步骤可以参考http://hi.baidu.com/hateeyes/blog/item/7f44942a20ad8f9d023bf66d.html 下面谈谈我对Tomcat架构的理解 总体架构: 面向组件架构基于JMX事件侦听 1)面向组件架构 tomcat代码看似很庞大,但从结构上看却很清晰和简单,它主要由一堆组件组成转载 2017-06-07 10:59:10 · 398 阅读 · 0 评论 -
Tomcat源码分析之二_ 一次完整请求
前几天分析了一下Tomcat的架构和启动过程,今天开始研究它的运转机制。Tomcat最本质就是个能运行JSP/Servlet的Web服务器 , 因此最典型的应用就是用户通过浏览器访问服务器,Tomcat接收到请求后转发给Servlet,由Servlet处理完后,把结果返回给客户端。今天就专门解析一下这么一个完整的请求的内部机理。 通过DEBUG,一路跟下来,发现Tomcat处理请求的核心转载 2017-06-07 15:10:20 · 403 阅读 · 0 评论 -
Tomcat源码分析之三_ 可携带状态的线程池
最近想实现一个可携带状态的线程池,具体需求就是池中的线程被用来处理某种信息,而此信息可视为线程所依赖的外部状态。如果用简单的线程池来实现,线程初始化时就得赋予某些信息,使得线程无法被再次利用。在看老版Tomcat的源码时,找到了答案,其实现思路主要是利用了线程的等待和唤起,HttpProcessor的实现正好基于此思路,时序图如下所示: 初始化HttpProcessor线程时,没法赋转载 2017-06-07 15:13:08 · 329 阅读 · 0 评论 -
Tomcat源码分析之四_Request和Response处理的全过程
从Tomcat源码分析(二)可知,用户的一个请求会经过n个环节的处理,最后到达开发人员写的Servlet,传给Servlet也就是HttpServletRequest和HttpServletResponse,因此可以认为这一路走下来无非就是把最原始的Socket包装成Servlet里用到的HttpServletRequest和HttpServletResponse,只不过每个环节完成的包装功能和部转载 2017-06-07 15:18:23 · 750 阅读 · 0 评论