关于java:快速入门两分钟带你从-0-开始手写一个Tomcat

1次阅读

共计 1130 个字符,预计需要花费 3 分钟才能阅读完成。

前言

Tomcat,这只 3 脚猫,大学的时候就意识了,直到现在工作中,也常会和它打交道。这是一只神奇的猫,明天让我来形象你,实现你!

Tomcat 是十分风行的 Web Server,它还是一个满足 Servlet 标准的容器。那么想一想,Tomcat 和咱们的 Web 利用是什么关系?

从理性上来说,咱们个别须要把 Web 利用打成 WAR 包部署到 Tomcat 中,在咱们的 Web 利用中,咱们要指明 URL 被哪个类的哪个办法所解决(不论是原始的 Servlet 开发,还是当初风行的 Spring MVC 都必须指明)。

因为咱们的 Web 利用是运行在 Tomcat 中,那么显然,申请必然是先达到 Tomcat 的。Tomcat 对于申请实际上会进行上面的解决:

第一:提供 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 中通过和来进行指定哪个 URL 交给哪个 servlet 进行解决。

六、启动类

这里,你可能看到 Tomcat 的解决流程:把 URL 对应解决的 Servlet 关系造成,解析 HTTP 协定,封装申请 / 响应对象,利用反射实例化具体的 Servlet 进行解决即可。

七、测试

实现一个简易版的 Tomcat 就这么 7 大步搞定,大家能够入手实现一下吧,代码最好不要复制,本人入手一个个敲,这样实现之后,对 Tomcat 就没那么生疏了。

写在最初

欢送大家关注我的公众号【 惊涛骇浪如码 】,海量 Java 相干文章,学习材料都会在外面更新,整顿的材料也会放在外面。

感觉写的还不错的就点个赞,加个关注呗!点关注,不迷路,继续更新!!!

正文完
 0