随笔分类 - servlet服务器从简单到完全的演进(草记)
还是较潦草的笔记,最后还是希望能够以UML的方式优雅地,形式化Tomcat的体系结构,当然对现在来说是个奢望,先潦草的笔记起来。之后会创建一个新的分类以UML语言完成tomcat的形式化描述!虽然代码本身是比其他语言形式更优雅自动化的其实是。【到现在为止使用源码移植方式的演进工作暂告一段落,工程目录使用专用D:\MyWork存储已完成的进度,源码资料在桌面右上角三个文件夹,以后将采用水滴石穿的方式,慢慢来学,等演进工作结束后,将使用debug方式有机地去解答该演进过程中解答不了的疑惑,并争取UML形式化描述该Tomcat源码】
摘要:背景: Tomcat通过启动连接器之前给连接器填充container容器实现了解耦(静态关系),本篇的连接器完全使用Tomcat的源代码org.apache.catalina中的通用接口。org.apache.catalina.connector包,而container相关代码自编写,并且作者利用j
阅读全文
摘要:背景:连接器模块由此已经完整,Tomcat中连接器已经有完善的线程、异常处理和Http处理(res/req解析),只是之前的servlet处理器还是很简单,现在作为学习Container的一个预热,写一个简单的container取代servlet,由主程序初始化并启动Tomcat连接器,创建cont
阅读全文
摘要:说明:本篇强调分析对象关系,而不是类关系,主要分析为何HttpProcessor还需要依赖上篇中的连接器?为何res/对象交由链接器创建且res/req本身也依赖连接器? org.apache.catalina.connector.http.HttpProcessor 1 package org.a
阅读全文
摘要:背景:本篇的内容主体是Connector连接器,暂不明确其在Tomcat中与其他容器的关系,但可以前述案例为标的物,把Connector理解为运行在多线程下,等待获取客户端socket并交由HttpProcessor进行处理的Object。那么关注点就是在Tomcat中完整的Connector及其所
阅读全文
摘要:代码分析: 类关系: BootStrap主程序负责服务器的启动,控制HttpConnector组件; HttpConnector类负责Http链接和线程管理,控制HttpProcessor组件; HttpProcessor类负责Http协议的解析和res/req的创建,同包下的其他类是为解析req解
阅读全文
摘要:代码结构: 该目录未能显示项目根下的webroot文件夹,此文件夹存放servlet程序员编译的servlet.class文件和静态资源。 BootStrap package sub.startup; import sub.connector.http.HttpConnector; public f
阅读全文
摘要:说明与前提:服务主程序并没有把浏览器传递进来的数据全部解析给request对象的诸属性,仅仅是解析了uri请求路径。不关注具体的解析算法!另外response也没有对应的生命周 期,供主程序控制,比如init方法等初始化response的所有属性。 代码结构: 截图工具不好用,该项目不包含划黑线的类
阅读全文
摘要:声明:资料来自Tomcat剖析一书,该程序是基于java socket的,socket和stream类作为概念背景,现在仅仅是使用其作为基础类,并不关注其本身,关注点在一个服务器的外部功能和体系结构! 代码目录 HttpServer package simpleserver; import java
阅读全文

浙公网安备 33010602011771号