现在的位置: 首页 > 综合 > 正文

jetty总体设计框架图

2014年07月04日 ⁄ 综合 ⁄ 共 826字 ⁄ 字号 评论关闭

其实读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的大的方面的框框也是我最开始最想要搞懂的东西都算是差不多了。。

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

抱歉!评论已关闭.