`
jiangwenfeng762
  • 浏览: 286411 次
  • 性别: Icon_minigender_1
  • 来自: 北京
文章分类
社区版块
存档分类
最新评论

Jetty源码学习

阅读更多

Jetty设计的很简洁易懂:

Jetty的核心组件及作用如下:

 

HttpListener:监听客户端请求,有请求,则构建HttpConnection对象,就像建立了一个连接

 

HttpConnection:HttpConection会构建HttpRequest和HttpResponse对象,完成用户数据的封装,然后调用HttpServer.service(HttpRequest req,HttpResponse res)方法.这个过程非常形象,一次请求的连接建立好之后就触发HttpServer的service方法处理本次请求。

 

HttpServer:HttpServer可以有多个HttpContext,每个HttpContext代表一个web application,这个也很好理解:一台服务器可以部署多个web application,每个web application可以指定一个端口监听请求,因此HttpServer也就可以对应多个HttpListener。HttpServer.service方法会调用HttpContext.handle方法,也很好理解:HttpServer分析出当前请求属于哪个具体的HttpContext,然后就把请求交给目标HttpContext来处理。

 

HttpContext:代表一个web application,其核心方法是handler

 

HttpRequest

HttpResponse

 

HttpHandler:每个HttpContext(一个web application)可以有多个HttpHandler,比如Jetty默认的HttpHandler实现包括

1)ReourceHandler:用于处理静态内容,如以扩展名为.html的文件

2)SecurityHandler:提供基本的安全验证

3)ForwardHandler:转发一个request到另一个url

4)ServletHandler:用于将request交由具体的Servlet类进行处理

 

标准web应用的配置信息在WEB-INF/web.xml中,对于Jetty服务器来说,容器启动装载web应用时,web.xml中配置由XmlConfiguration对象代表,Jetty使用java反射技术从XmlConfiguration中构建当前web应用的HttpHandler对象。

分享到:
评论
1 楼 u010681276 2015-03-09  
请问:最近准备jetty的源码,但是找不到源码,是否可以给一份,或者给出链接,十分感谢(希望是)jetty9.2.9

相关推荐

Global site tag (gtag.js) - Google Analytics