Jetty总体设计框架图

其实读jetty的代码到现在,对整个jetty服务器的运行以及实现概况都已经有了大体的了解,这篇文章就先对整个jetty的实现设计做一个简单的概述吧。。。。

先来一张图来描述一下整个jetty服务器的整体结构。。。



这里只是只是将一些重要的主线部分给画了出来。。并没有描述一些细节,例如contextListener,sessionHandler什么的。。。


接下来来叙述一下整个http的处理流程。。。。。由于实在不知道该怎么画图。。那就用文字描述一下吧:

(1)首先外部的建立tcp连接的请求被serversocketchannel接收到,然后获取到远程链接,并将其注册到selector上面去(这里就直说nio的了)

(2)selector发现了某个注册的chanel可读了,那么激活这个httpconnection的http处理流程

(3)当一个httpconnection接收到一个完整的http请求之后,会将这个请求交给server来处理

(4)server会将http请求交给内部的handler来处理。。反正最后肯定会交给contextHandlerCollection来处理(同时部署多个web程序),

(5)contextHandlerCollection对请求的路径进行判断,将其路由给对应的WebAppContext来处理。。。

(6)WebAppContext再交由内部的servlethandler来处理(这里一般在前面还有一层sessionHandler,用于处理关联的session)。。。然后servlethandler在将在内部对请求的path再做一些路由,交给对应的servlet来处理。。。(到此为止,请求的处理jetty要做的事情就完成了,剩下的事情就是用户定义的代码做的事情了。。。)


好了,那么到这里整个jetty的大的方面的框框也是我最开始最想要搞懂的东西都算是差不多了。。

那么剩下的可能就是一些细节部分的代码的分析了。。。

  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值