导引
Tomcat,这只3脚猫,大学的时候就认识了,直到现在工作中,也常会和它打交道。这是一只神奇的猫,今天让我来抽象你,实现你!
Tomcat 是非常流行的 Web Server,它还是一个满足 Servlet 规范的容器。那么想一想,Tomcat 和我们的 Web 应用是什么关系?
从感性上来说,我们一般需要把 Web 应用打成 WAR 包部署到 Tomcat 中,在我们的 Web 应用中,我们要指明 URL 被哪个类的哪个方法所处理「不论是原始的 Servlet 开发,还是现在流行的 Spring MVC 都必须指明」。
由于我们的 Web 应用是运行在 Tomcat 中,那么显然,请求必定是先到达Tomcat 的。Tomcat 对于请求实际上会进行如下的处理。具体还可参考这篇:后端须知:Tomcat服务器的 Server.xml 配置文件详解!
总体结构
***,提供 Socket 服务
Tomcat 的启动,必然是 Socket 服务,只不过它支持 HTTP 协议而已!
这里其实可以扩展思考下,Tomcat 既然是基于 Socket,那么是基于BIO or NIO or AIO 呢?
第二,进行请求的分发
要知道一个 Tomcat 可以为多个 Web 应用提供服务,那么很显然,Tomcat 可以把 URL 下发到不同的Web应用。
第三,需要把请求和响应封装成 request / response
我们在 Web 应用这一层,可从来没有封装过 request/response 的,我们都是直接使用的,这就是因为 Tomcat 已经为你做好了!
话不多说,先来看一眼工程截图。
七步成诗
一、封装请求对象
这里,你可以清楚的看到,我们通过输入流,对 HTTP 协议进行解析,拿到了 HTTP 请求头的方法以及 URL。
二、封装响应对象
基于HTTP协议的格式进行输出写入。
三、Servlet 请求处理基类
前文说Tomcat是满足Servlet规范的容器,那么自然Tomcat需要提供API。这里你看到了Servlet常见的doGet/doPost/service方法。
四、Servlet 实现类
提供这2个具体的Servlet实现,只是为了后续的测试!
五、Servlet 配置
你应该有些感觉了吧?
我们在servlet开发中,会在 web.xml 中通过
六、启动类
这里,你能够看到 Tomcat 的处理流程,即把 URL 对应处理的 Servlet 关系形成,解析 HTTP 协议,封装请求/响应对象,利用反射实例化具体的 Servlet 进行处理即可。
七、测试
实现一个简易版的 Tomcat 就这么 7 大步搞定,大家都来动手实现一下吧,代码***不要复制,自己动手一个个敲,这样实现之后,对 Tomcat 就没那么陌生了。
好了,就简单写这些了,记得自己动手撸一边代码,夯实你的感觉体验。
参考来源:
http://tomcat.apache.org/
www.jianshu.com/p/dce1ee01fb90
有时候就是需要一个火热的平台,对吧? Twilio最近对2569名企业决策者进行了关于...
娓娓道来的一篇好文章,贴合实际的运用场景,关于死信和延时队列的分析,我觉得...
很多朋友们在选择日本服务器租用时,纠结于该选择日本云服务器还是日本VPS,不管...
在互联网这个大染缸中,充斥着各种非法行为,比如说网络攻击,其中又以流量攻击...
6月22日,国内信息技术产业领军企业中科曙光发布全新Slogan曙光很近,理想不远,...
香港高防服务器哪里的好 ?站长朋友们都知道,香港的高防服务器不仅网速快、免备...
伴随网络时代的迅速发展趋势,服务器一直占有着关键的人物角色,它能确保网站一...
本文转载自微信公众号「云巅论剑」,作者费曼 。转载本文请联系云巅论剑公众号。...
1.数据中心是什么 数据中心,指用于安置计算机系统及相关部件的设施,例如电信和...
随着能源成本和能源消耗的持续增长,企业为了应对这些挑战,致力寻求更高效的数...