如何用java实现web服务器?
市面上的Java web容器常见的有两种,一种是jetty,一种是tomcat。要想用j***a实现web容器,首先要知道其工作原理。
以Tomcat为例,我们通常开发出来的war包,会放在tomcat中的webapp下面,tomcat会自动解压war包。解压完成后,其实就是一个servlet应用!换句话说,我们写的war包中的servlet应用只需要关注业务层面的,处理http等网络链接的事情交给都交给tomcat了, 一个请求到达tomcat的流程如下图:
所以其实我们也可以手写一个web容器,只要能接收请求并转发给相应的servlet请求即可。
手写一个小的web容器
整体结构大致如下
(图片来源网络,侵删)
1、写一个处理网络请求连接请求实体类、一个和网络请求连接响应实体类
(图片来源网络,侵删)