如何用Java实现Web服务器?

如题所述

WEB容器工作原理

市面上的javaweb容器常见的有两种,一种是jetty,一种是tomcat。要想用java实现web容器,首先要知道其工作原理。

以Tomcat为例,我们通常开发出来的war包,会放在tomcat中的webapp下面,tomcat会自动解压war包。解压完成后,其实就是一个servlet应用!换句话说,我们写的war包中的servlet应用只需要关注业务层面的,处理http等网络链接的事情交给都交给tomcat了,一个请求到达tomcat的流程:

所以其实我们也可以手写一个web容器,只要能接收请求并转发给相应的servlet请求即可。

手写一个小的web容器

整体结构大致如下

1、写一个处理网络请求连接请求实体类、一个和网络请求连接响应实体类

2、写一个容器主类,包括启动监听端口等

3、写容器的接口,以及注解相关的url附加类便于让应用servlet

4、写一个app测试servlet,类似tomcat中跑的war包

如果你监听的端口是8888,那么就可以访问localhost:8888/app,就可以测试了

结语

java写web容器,其实没什么难的,简单的写一下了解一下原理即可,真实工作中是不建议自己写的,有很多问题会考虑不周的。关于web容器网上也有很多例子,可以借鉴了解一下。祝你学习愉快。

温馨提示:答案为网友推荐,仅供参考
相似回答