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对象。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值