How tomcat works——序言

How Tomcat Works 深入剖析Tomcat (英文版) 立即下载

一、在路上


2006年的暑假,抱着早点接触社会的心态,从合肥坐24小时绿皮车跑到广州打暑假工。当时感触到:学电气自动化的似乎天天要和那些油乎乎的机械打交道;哪一天如果自己想干点什么,初期投入买个设备都要很多钱。
广州回来后,一天下午我在家里菜园马路边的草丛中捡了一部摩托罗拉手机。手机里面的游戏启动屏是冒着热气的茶杯,还有着JAVA4个字母,第一眼就甚是喜欢那个图案——与君初相识,犹如故人归。

2007年,一次在同学的宿舍里发现一本封面带有Java字样的书,煞有一种“这妹妹我曾见过”的感觉。后来问单片机老师:从事软件好,还是硬件好。老师推荐走软件路线。如果自己想干点什么,有台电脑就可以了~~也这就这样,我选择了偏软件,选择了似有一见钟情的Java切入。那会觉得Java比C有意思多了:C天天只会在DOS下面打印输出,一点也没Java可以用Swing做个贪吃蛇、做个象棋好玩。

2008年,正式工作,尤其是用Java找到的饭碗,甭说多爱死Java了!从我当年注册优快云的ID可见LoveJavaYDJ。如今看,觉得多俗气O(∩_∩)O哈!

2009年,工作以来,一直默默用Java使用着Tomcat做着Web开发,慢慢慢慢觉得好无趣:天天就是Action -> Service -> Dao流水线式业务开发。一时以为Java只能做做Web开发,还觉得学Java没出息。还是C或C++牛掰,你看我们Java程序员整天用着他们用C或C++写的Tomcat~

2010年,偶尔一次在网上发现《How tomcat works》这本英文电子书,当时还没中文版实物书卖。我靠,原来Tomcat是用Java写的!原来是自己的无知,是自己的功力太浅!然后就满血复活般地啃噬一把。

2013年,我参考Tomcat体系结构,使用Netty开发搭建了公司使用的PushServer推送服务器。算是个人开发的第一个纯Java而非Web的中间件~当时还挺有成就感。

在公司面试中,遇到培训速成出来或工作2/3年的对Servlet规范、HTTP协议、HTTP请求过程这些基础几乎都不了解;也遇到过不乏有很多使用Java五六年以上的同学,在谈及很熟悉Tomcat时,往往也只是停留在基本配置,调调内存参数上面。加之,QQ群或社区中也经常有同学问如何学习设计模式,如何看源码(其实,我在学校时也问过老师,上班后也请教过老大)。我想到了自己学习看的《How tomcat works》,所以整理推荐给大家(推荐看原版)。

Tomcat中有不少设计模式值得借鉴学习,如门面、观察者。还比如,作为Servlet程序员都知道Filter,但我们知道Filter在Tomcat的哪一环节出现当然更好了。

那,Tomcat4/5版本老吗?是老,但,我不觉得这会影响我们学习、演练。因为我们应该先从大处着手——先学习方法。再者,Tomcat大的体系架构基本没变,如共有4种容器:Engine(引擎)、Host(主机)、Context(上下文)和 Wrapper(包装器)。后面版本更多是优化如NIO、线程池,以及遵循新的HTTP协议和Servlet规范。

我觉得:写代码,犹如我们学习写文章一样,想写出好的文章,那就得先学习、分析已经存在的好文章——先积累输入再会有良好地输出。共勉!


二、本书简介


本书以Tomcat4和5为基础,从最基本的HTTP请求和一个最简单的web服务器例子开始,循序渐进,分解介绍Tomcat中各个容器和组件如Engine、Host、Context和Wrapper。另,还详细介绍了如何管理Session,以及如何在分布式环境下扩展Session;Tomcat如何处理配制文件server.xml,以及又是如何通过Digester库将XML元素转换Java对象;如何通过使用”关闭钩子”Runtime.getRuntime().addShutdownHook()优雅地停止服务器。层层深入直至使用JMX技术管理Tomcat中的应用程序。

  • 第1~2章,首先对HTTP协议和Socket通讯以及Servlet规范做了介绍,然后编写演示了一简单的Servlet容器。
  • 第3~4章,改进前章节中的Demo,详细介绍了Tomcat中默认连接器(Connector)的实现,讲解了如何创建请求链接,以及Tomcat中如何解析请求,如HTTP请求头Header、Cookie等。
  • 第5章,系统介绍了容器(Container),容器是一用来处理servlet请求并填充返回对象给web客户端的模块。共有4种容器:引擎(Engine), 主机(Host), 上下文(Context),包装器(Wrapper)。本章先介绍了Context和Wrapper。
  • 第6~10章,介绍了Tomcat中五个重要模块组件:生命周期管理、日志系统、类加载机制、会话管理、安全控制。
  • 第11~13章,依次详细介绍了Tomcat中核心容器标准实现:Wrapper、Context、Host、Engine。
  • 第14章,介绍了容器之上的另两个重要的管理组件Server和Service,展示了如何配置多个连接器(Connector),如何优雅地启动和停止Servlet容器。
  • 第15章,展示了Tomcat中如何借助Digester避免硬编码,使其可灵活配置。
  • 第16~17章,讲解Tomcat的启动和关闭机制,介绍了Shell和Bat脚本。
  • 第18章,讲解了Tomcat中负责部署和装载WEB应用的Deployer组件。
  • 第19~20章,分别介绍了通过ContainerServlet接口和JMX技术如何控制管理部署在Tomcat中的应用。

每一章配有相关内容的Demo代码,这既是对理论内容的具体展现,也是帮助大家更好地理解,并可以逐步动手实现自己的Java Web服务器。


三、阅读建议


首先,大家对Java基础应该有所掌握,如Thread、Socket、I/O。

大家在阅读时,应着重把握Tomcat作者的设计思想,在此基础上,再针对具体问题进行深入地学习和研究。

带着好奇心,边读书,边看源码(尤其对比Tomcat最新代码:https://github.com/apache/tomcat。对比新旧代码,可见其更替优化的场景和过程),更应该亲手画相应的UML图和流程图。

我整理的代码和UML图详见:https://github.com/Aresyi/HowTomcatWorks。最好Debug一遍每章示例Demo——实践出真知。

最后,进行知识关联梳理和整理,比如:Tomcat中用到了哪些设计模式?Tomcat中的管道(pipeline)和阀门(valve)和Servlet中的Filter以及Springmvc中拦截器对比,等等。


四、勘误&支持


由于能力有限,虽然找了些朋友帮忙校队,但书中难免会出现一些错误,也请读者朋友批评指正。大家可以留言反馈错误和建议,我会积极提供解答。

另,也欢迎加我个人QQ:369415359,进行技术&产品&管理切磋交流。

进步始于交流,收获源于分享。

电子书

how tomcat works (tomcat是怎么工作的 英文版) 。该文档已经在网络流传多年,看到csdn上还有人大言不惭的索取积分。本链接制作交流使用,不做商业用途,很遗憾无法设置积分为零 立即下载

相关推荐

how tomcat works 高清中文版,英文版和随书源码

how tomcat works 高清中文版,英文版和随书源码,英文版有目录。

Tomcat| how tomcat works总结

开篇先把关于tomcat的神图供上。 tomcat架构.png 这本书共分为20个章节,本文主要是对这本书的各个章节做一下总结。 第一章 simple web server 第一章搭建了一个最简单的web服务器,主要包括三个类,Request、Response和HttpServer,其中request类对发送来的报文做最简单的解析;response类响应一个简单的静态html页面;httpServer则是使用serversocket的accept方法来对端口进行监控。 第二章 a ..

YvesHe的专栏 899

How Tomcat Works 中文版/英文版 + 源码

How Tomcat Works 中文版/英文版 以及源码

《How Tomcat Works》学习(一)——简易web服务器的实现

前言 《How Tomcat Works》是一本老书。现在Java的同学,大概率对servlet都是随便略过即可,因为现在springmvc、springboot之类的,要上手根本不需要搞那么复杂。我之所以淘来这本书学习,一是因为我读大学的时候,javaweb还是要玩servlet那一套的,有情节在那里,二是因为想深入了解springmvc的源码,所以对servlet这块也要有一定理解才行。这个系列准备按照书中的章节,一遍敲代码一遍总结,一步一步为自己实现的web服务器添砖加瓦。 ...

sadoshi的专栏 723

how tomcat works中英文版

how tomcat works中文版 + 英文版,深入解析了tomcat的实现机制

How Tomcat Works【英文PDF+中文HTML+源码】.zip

How Tomcat Works【英文PDF+中文HTML+源码】 How Tomcat Works 主要是讲解Tomcat如何运行的一些核心资料。

How Tomcat Works 第一章 - 了解HTTP、Socket、ServerSocket构建简单的 Web 服务器

本章主要是对第一章内容进行归纳,了解一个简单的HTTP服务器是如何运行,以及尝试搭建一个简单的服务器,所需要java.net里面的Socket和类的基本运用。在了解Socket和之后,手动简单搭建一个最基础的HTTP服务器。

qq_43600166的博客 1158

How Tomcat Works 英文书及源码

How Tomcat Works 全书共20章!

How Tomcat Works -- 目录

《How Tomcat Works》这本书的读书笔记,及主要内容感想。 作为一个世界范围广泛使用的强大框架,Tomcat必然有非常多的设计思想、设计模式,让我们学习。 不看这种包含设计思想的框架,只看关于设计的书籍,只做业务应用系统的开发,比较难提高设计能力,因为,业务系统更关注业务问题,可能比较常会遇到大数据、高并发类问题的解决,但是设计思想很少。 从高层到底层,从业务应用到通用框架,最后都会回到底层上来,底层的东西,更像技术。越往高层,业务占得比重越大,越容易脱离技术本身。 底层的东西有什么呢?比如

Java之旅 4897

how tomcat works

A Guide to Developing Your Own Java Servlet Container

how tomcat works中文版.pdf百度网盘下载地址

how tomcat works中文版.pdf百度网盘下载地址

《how tomcat works》翻译开篇

《how tomcat work》翻译此书只为学习,有错误,不到位之处,请指出。文笔欠佳,请多海涵。简介概述欢迎来到《how tomcat works》,这本书剖析了当下免费的 ,开源的,并且是最为流行的Servlet容器Catalina(tomcat) 4.1.12和5.0.18的内部工作原理。tomcat是一个复杂的系统,由多个不同的组件构成,这些是很多刚开始接触tomcat的,希望了解它是怎么

tomcat_how_work的博客 1814

强化学习 reward 曲线可视化:从基础绘制到顶刊级对比分析

本文详细介绍了强化学习reward曲线的可视化方法,从基础绘制到顶刊级对比分析。通过matplotlib和seaborn的实战示例,展示了如何优化曲线图的视觉效果,包括多实验对比、置信区间添加和分面图应用。文章还分享了顶刊级图表的进阶技巧,如字体排版、颜色选择和关键标注,帮助研究者提升论文图表质量。

weixin_29096377的博客 270

How tomcat works——引言

排版更好的百度电子书:https://yuedu.baidu.com/ebook/ac92f0d35122aaea998fcc22bcd126fff7055d60概述欢迎阅读《How Tomcat Works》。这本书详细的剖析了Tomcat 4.1和5.0工作原理,并讲解了其代号为“Catalina” 当前免费、开源、最流行的servlet容器的内部运作机制。Tomcat是个复杂的系统,它是由许多

终日思 < 须臾学 2744

Cosmos Transfer2.5多模态AI模型部署与优化实战

多模态AI技术通过融合文本、图像、代码等不同模态数据,实现跨模态理解与生成。其核心原理基于Transformer架构的注意力机制,结合对比学习实现模态对齐。这类技术在智能内容创作、跨模态搜索等领域具有重要价值,尤其适合电商营销图文生成、UI设计转代码等场景。Cosmos Transfer2.5作为先进的多模态模型,支持8192 tokens长文本窗口和混合模态输入,实测推理速度达17.5 samples/s(T4显卡)。部署时需注意FlashAttention优化可提升3倍长文本处理效率,8-bit量化则能

weixin_29038303的博客 281

OpenCV图像去畸变实战指南:从原理到参数调优(附完整代码与效果对比)

本文详细解析了OpenCV图像去畸变的原理与实战方法,对比了三种核心函数(标准、鱼眼、全景模型)的适用场景与效果。重点提供了完整的代码示例,并深入探讨了alpha、焦距、中心点等关键参数的调优技巧,以帮助开发者有效矫正镜头畸变,提升计算机视觉任务精度。

life6的博客 553

探索 Tomcat 内核:HowTomcatWorks 项目详解

探索 Tomcat 内核:HowTomcatWorks 项目详解 是一个开源项目,旨在深入解析 Apache Tomcat 的工作原理。对于Java Web开发者,特别是那些希望理解和优化服务器性能的人来说,这是一个极具价值的学习资源。 项目简介 Apache Tomcat 是一款广泛使用的Java Servlet容器,它实现了Java EE的Web部分规范。HowTomcatWorks项目由 A...

gitblog_00057的博客 519

EtherCAT主站SOEM -- 0 -- 该EtherCAT主站SOEM专栏后续安排

SOEM(Simple Open EtherCAT Master)是一个开源的EtherCAT主站库,允许开发者构建自定义的EtherCAT主站应用程序。EtherCAT是一种实时以太网通信协议,广泛应用于工业自动化和机器控制领域。开源性质:SOEM是一个开源项目,这意味着开发者可以自由地查看、修改和分发代码。这使其成为工业自动化领域的一个强大工具,可以根据具体需求进行定制。EtherCAT主站实现:SOEM库提供了一个完整的EtherCAT主站实现,允许主站与多个EtherCAT从站设备进行通信。

常驻客栈的博客--嵌入式EtherCAT 6667

How Tomcat works - tomcat发布webapp

目录 什么叫发布 webapp发布方式 reload 总结 什么叫发布 发布就是让tomcat知道我们的程序在哪里,并根据我们的配置创建Context,进行初始化、启动,如下: 程序所在的位置 创建Context,添加到Host 初始化(创建解析webxml的digester) 启动(初始化filter、listener、servlet) webapp发布方式 在tomcat ...

z69183787的专栏 836

网络速度的极致:800G & 1.6T 以太网的突破!

你好,这里是网络技术联盟站。在我们进入数据驱动的世界时,以太网的重要性日益突出。从根本上说,以太网是一种连接计算机的技术,旨在形成一个本地网,通过它,设备可以与其他设备进行通信。然而,随着时间的推移,以太网已经发展成为一种全球的数据通信系统,其速度从初始的10Mbit/s发展到现在的800G,甚至1.6T。这种巨大的进步并不是没有挑战的,但每一次的突破都代表了技术的巨大飞跃。本文将探讨800G和1.6T以太网的创新与挑战。

网络技术联盟站 1773

SerDes系列之如何选择AC耦合电容

交流耦合电容用于隔离PCB互连时的直流分量(Common-mode voltage),同时传递交流分量(Voltage swing),其作用类似于一个高通滤波器,但是,如果电容容值选取不当,使用过程中会产生信号质量问题,典型的应用场景:当包含相同的长串1或0的NRZ数据应用于该高通滤波器时,会发生低频电压跌落,导致低频模式相关抖动(PDJ)。

一只豌豆象的博客 2351

Spring transaction事务之roll back回滚

试验方法: 写一个单元测试,调用一个service层方法(发生对数据库进行写操作的方法--insert、update、delete)即可. 试验过程: 定义一个service方法如下: public SMSTiming createSMSTiming(SMSTiming smsTiming){

终日思 < 须臾学 4万+

数据分析案例-2024 年全电动汽车数据集可视化分析

本数据集来源于Kaggle,原始数据集共有177866条数据,17个变量。该数据集显示了目前通过华盛顿州许可部 (DOL) 注册的电池电动汽车 (BEV) 和插电式混合动力电动汽车 (PHEV)。电池电动汽车 (BEV) 是一种全电动汽车,使用一个或多个电池来存储电能,为电机提供动力,并通过将车辆插入电源进行充电。插电式混合动力汽车 (PHEV) 是一种使用一个或多个电池为电动机提供动力的车辆;使用另一种燃料,例如汽油或柴油,为内燃机或其他推进源提供动力;并通过将车辆插入电源来充电。

m0_64336780的博客 1万+
上一篇: 使用HttpClient和Jsoup定向抓取数据
下一篇: Markdown编辑器editor.md的使用
易德军
博客等级 码龄19年 134粉丝 74原创
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值