`
wataxi
  • 浏览: 212226 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

how tomcat works chinese 学习系列第三章

阅读更多

本来第三章, 在28号已经看完了, 但是觉的看的有点晕, 理解的不够,

 

就决定在看一遍, 呵呵, 坚持啊, 内容越来越多了,网上说tomcat源码有20-30万行代码

 

我不能完全看完, 但是其中的机制和核心模块还是要了解的, 坚持看下去。。。

 

 

第三章-- 连接器

 

书中继续改造第二章的代码和继续扩展功能, 并且功能开始划分模块

 

connector 连接器

连接器和它的支撑类(HttpConnector和HttpProcessor)。
指代HTTP请求的类(HttpRequest)和它的辅助类。
指代HTTP响应的类(HttpResponse)和它的辅助类。
Facade类(HttpRequestFacade和HttpResponseFacade)。
Constant类

 

startup 启动应用

Bootstrap

 

core

由这两个类组成:  ServletProcessor和StaticResourceProcessor

 

 

流程是: 

1.启动程序 Bootstrap创建一个HttpConnector对象,侦听http请求,然后HttpConnector对象获取socket套接字对 象

2. 创建一个HttpProcessor对象,调用它的process方法 请求通过SocketInputStream获取输入流和socket的outputStream输出流创建Http的Request对象和Respon对象。

 

3. 获取请求行和请求头, 初始化到httpRequest,HttpResponse属性, 便于客户端调用

 

 

4.判断uri资源,找到处理servlet处理

 

5. 在异常处理时, 通过配置文件放到异常里面,StringManager类来获取指定包的配置文件的异常key,返回一个value给调用者。

 

 

所用使用的类的列表如下:

core

 

ServletProcessor              动态资源请求处理servlet

StaticResourceProcessor  静态资源请求处理servlet

 

connector

 

RequestStream

ResponseStream

ResponseWriter

Constants                       静态公共final公共资源

HttpConnector                连接器提供入口给容器启动,线程类, 监听请求

HttpHeader                     在解析请求头时,对象封装类

HttpProcessor                 有点像控制器,调用资源封装请求对象和响应对象, 调用处理servlet处理

HttpRequest                    请求对象, 实现httpServletRequest接口

HttpRequestFacade         跟上面一个实现相同接口

HttpRequestLine             请求行封装类

HttpResponse                 响应对象,底层都是通过流实现的, 但是响应给客户端通过这个类实现。

HttpResponseFacade      和上面一样, 实现HttpServletResponse接口

SocketInputStream        有两个重要的方法

                                      readRequestLine和readHeader。readRequestLine返回一个HTTP请求的第一行

                                      readHeader的返回值是一个HttpHeader对象

 

LocalStrings.properties  异常key-value 文件。

 

 

 

 

 

 

 

 

 

 

 

分享到:
评论

相关推荐

    How Tomcat Works(chinese).pdf

    通过对《How Tomcat Works》中文版的学习,我们可以了解到Tomcat是一个复杂但设计精巧的系统。它通过连接器和容器的协同工作,实现了高效、稳定的Web服务。无论是对于初学者还是有经验的开发者来说,《How Tomcat ...

    how tomcat works chinese

    NULL 博文链接:https://jun-zhou.iteye.com/blog/854456

    How+Tomcat+Works(chinese)

    ### How Tomcat Works(中文版) #### 一、引言 Tomcat作为一款免费且开源的Servlet容器,因其稳定性和可扩展性而受到广大开发者们的青睐。本文将深入剖析Tomcat的工作原理及其内部机制,帮助读者更好地理解这款...

    Learning materials

    本文将基于标题"Learning materials",结合描述中的博文链接以及标签"源码"和"工具",详细探讨《How Tomcat Works (chinese).pdf》这份学习资料中所涵盖的关键知识点,帮助你深入理解Tomcat的工作原理。 1. **...

    3 Android SqliteManager 源码.zip

    3 Android SqliteManager 源码.zip

    基于S7-200 PLC的煤矿排水系统智能控制:三台水泵联动与备援策略

    内容概要:本文详细介绍了基于S7-200 PLC的煤矿排水系统智能控制方案,重点讨论了三台水泵(两台工作水泵和一台备用水泵)的联动与备援策略。系统通过超声波液位传感器实时监测水位,根据不同水位情况自动控制水泵的启停。具体而言,水位低时不启动水泵,水位介于中水位和高水位之间时启动1号水泵,水位超过高水位则启动1号和2号水泵共同工作。若1号或2号水泵出现故障,系统会自动启用3号备用水泵。此外,MCGS6.2组态画面用于实时监控水位和水泵状态,帮助操作员及时应对异常情况,确保矿井安全。 适合人群:从事煤矿自动化控制领域的技术人员、矿业工程管理人员及相关研究人员。 使用场景及目标:适用于需要提高煤矿排水系统自动化水平的场合,旨在提升矿井排水效率和安全性,减少人工干预,确保矿井生产安全。 其他说明:文中提到的技术方案不仅提高了排水系统的可靠性,还为未来的智能化矿山建设提供了有益借鉴。

    scratch少儿编程逻辑思维游戏源码-灌篮之王.zip

    scratch少儿编程逻辑思维游戏源码-灌篮之王.zip

    scratch少儿编程逻辑思维游戏源码-飞翔马里奥(2).zip

    scratch少儿编程逻辑思维游戏源码-飞翔马里奥(2).zip

    scratch少儿编程逻辑思维游戏源码-火柴人大战 中世纪战争.zip

    scratch少儿编程逻辑思维游戏源码-火柴人大战 中世纪战争.zip

    scratch少儿编程逻辑思维游戏源码-几何冲刺(2).zip

    scratch少儿编程逻辑思维游戏源码-几何冲刺(2).zip

    南京证券-低轨卫星互联网启动,天地一体通信迈向6G.pdf

    南京证券-低轨卫星互联网启动,天地一体通信迈向6G

    nginx-1.20.1

    nginx-1.20.1

    sshpass-1.06-8.ky10.aarch

    sshpass-1.06-8.ky10.aarch

    少儿编程scratch项目源代码文件案例素材-我的世界2D(更新北极).zip

    少儿编程scratch项目源代码文件案例素材-我的世界2D(更新北极).zip

    通信行业专题研究:车载全息数字人——AI+Agent新场景,全息投影新方向-20231121-国盛证券-13页.pdf

    通信行业专题研究:车载全息数字人——AI+Agent新场景,全息投影新方向-20231121-国盛证券-13页

    基于S7-200 PLC与组态王的邮件分拣系统设计——智能化控制技术与实践应用研究

    内容概要:本文详细介绍了利用西门子S7-200 PLC和组态王软件构建的邮件分拣系统的具体设计方案和技术细节。首先,文中阐述了硬件部分的设计,包括光电传感器、传送带电机以及分拣机械臂的连接方式,特别是旋转编码器用于精确测量包裹位移的技术要点。接着,展示了PLC编程中的关键代码段,如初始化分拣计数器、读取编码器数据并进行位置跟踪等。然后,描述了组态王作为上位机软件的作用,它不仅提供了直观的人机交互界面,还允许通过简单的下拉菜单选择不同的分拣规则(按省份、按重量或加急件)。此外,针对可能出现的通信问题提出了有效的解决方案,比如采用心跳包机制确保稳定的数据传输,并解决了因电磁干扰导致的问题。最后,分享了一些现场调试的经验教训,例如为减少编码器安装误差对分拣精度的影响而引入的位移补偿算法。 适合人群:从事自动化控制领域的工程师或者对此感兴趣的初学者。 使用场景及目标:适用于需要提高邮件或其他物品自动分拣效率的企业或机构,旨在降低人工成本、提升工作效率和准确性。 其他说明:文中提到的实际案例表明,经过优化后的系统能够显著改善分拣性能,将分拣错误率大幅降至0.3%,并且日均处理量可达2万件包裹。

    scratch少儿编程逻辑思维游戏源码-机械汽车.zip

    scratch少儿编程逻辑思维游戏源码-机械汽车.zip

    光学领域:基于束缚态驱动的手征超表面实现可调谐手征光学响应的研究及其应用

    内容概要:本文详细探讨了在连续介质中利用束缚态驱动设计并实现具有最大和可调谐手征光学响应的平面手征超表面的方法。文中首先介绍了comsol三次谐波和本征手性BIC(束缚态诱导的透明)两种重要光学现象,随后阐述了具体的手征超表面结构设计,包括远场偏振图、手性透射曲线、二维能带图、Q因子图和电场图的分析。最后,通过大子刊nc复现实验验证了设计方案的有效性,并对未来的研究方向进行了展望。 适合人群:从事光学研究的专业人士、高校物理系师生、对光与物质相互作用感兴趣的科研工作者。 使用场景及目标:适用于希望深入了解手征超表面设计原理及其光学响应机制的研究人员,旨在推动新型光学器件的研发和技术进步。 其他说明:本文不仅展示了理论分析和模拟计算,还通过实验证明了设计方法的可行性,为后续研究奠定了坚实的基础。

    少儿编程scratch项目源代码文件案例素材-位图冒险.zip

    少儿编程scratch项目源代码文件案例素材-位图冒险.zip

    少儿编程scratch项目源代码文件案例素材-校园困境2.zip

    少儿编程scratch项目源代码文件案例素材-校园困境2.zip

Global site tag (gtag.js) - Google Analytics