阿里云-云小站(无限量代金券发放中)
【腾讯云】云服务器、云数据库、COS、CDN、短信等热卖云产品特惠抢购

手动实现一个简易版 Tomcat

104次阅读
没有评论

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

Tomcat 简介

Tomcat 是 Apache 软件基金会(Apache Software Foundation)的 Jakarta 项目中的一个核心项目,由 Apache、Sun 和其他一些公司及个人共同开发而成。由于有了 Sun 的参与和支持,最新的 Servlet 和 JSP 规范总是能在 Tomcat 中得到体现,Tomcat 5 支持最新的 Servlet 2.4 和 JSP 2.0 规范。因为 Tomcat 技术先进、性能稳定,而且免费,因而深受 Java 爱好者的喜爱并得到了部分软件开发商的认可,成为目前比较流行的 Web 应用服务器。

手动实现一个简易版 Tomcat 

手动实现

项目结构如下图所示

 手动实现一个简易版 Tomcat 

接下来我们就开始一步步实现,有 servlet 开发经验的对于 Request 和 Response 一定不陌生,所以就先实现自己的 Request 和 Response。首先实现 Response 如下所示。

手动实现一个简易版 Tomcat 

接着来实现自己的 Reponse,如下图所示。

手动实现一个简易版 Tomcat 

有了自己的请求信息和响应信息,那接下来就要写 servlet 了。通常写自己的 Servlet 的时候要继承一个 Servlet 的父类 HttpServlet,所以首先要写一个 Servlet 的父类,代码如下。

手动实现一个简易版 Tomcat

 那么接下来就要写自己业务相关的 Servlet,这里写一个和学生相关的 Servlet,叫 StudentServlet,还有一个和老师相关的 Servlet,叫 TeacherServlet。具体的代码分别如下。

手动实现一个简易版 Tomcat

 和老师相关的 Servlet 如下:

手动实现一个简易版 Tomcat 

因为浏览器在请求的时候还会请求浏览器上面显示的 favicon.ico,所以要编写一个相关的 servlet 来处理请求,代码如下。

手动实现一个简易版 Tomcat 

以上就是写的跟具体实际当中业务相关的代码,还记得在 Servlet 的时候要在项目 web.xml 中配置请求地址和具体的 servlet 的映射关系,所以此处要手动来实现一个映射的关系。具体代码如下。

手动实现一个简易版 Tomcat 

以上是每个具体的 Servlet 的信息,接下来要写一个存储有映射关系的类,代码如下。

 手动实现一个简易版 Tomcat 

接下来就是真正的主角登场了,那就是对于请求做分发处理的相关逻辑了,具体代码如下所示。

 手动实现一个简易版 Tomcat 

手动实现一个简易版 Tomcat

 如果没有问题的话,启动 main 函数之后,在浏览器发起具体的请求会看到如下显示内容。

手动实现一个简易版 Tomcat 

手动实现一个简易版 Tomcat 

总结

实际的 tomcat 要比这复杂的多,这里只是简单了实现了 tomcat 的一个处理逻辑的 demo,比如 tomcat 多端口的配置,数据源的配置,热部署等相关功能,当然只要了解了主要思想,相信全部深入的了解也就没有那么难了。

正文完
星哥说事-微信公众号
post-qrcode
 0
星锅
版权声明:本站原创文章,由 星锅 于2022-01-21发表,共计1010字。
转载说明:除特殊说明外本站文章皆由CC-4.0协议发布,转载请注明出处。
【腾讯云】推广者专属福利,新客户无门槛领取总价值高达2860元代金券,每种代金券限量500张,先到先得。
阿里云-最新活动爆款每日限量供应
评论(没有评论)
验证码
【腾讯云】云服务器、云数据库、COS、CDN、短信等云产品特惠热卖中