jetty学习笔记-jetty全局

jetty全局

上篇文章入口看到server,下面看下server的结构

jetty里面几个主要的概念:

  • connector:接收连接
  • handler:处理请求
  • threadpool:线程池,线程的统一管理

Server将这几个重要概念联系到了一起,从继承结构来看,server本身算是一个可以包含其他handler(也就是个container)的handler,其中又包含了connenctor和threadpool,在内部把这几个部分连到了一起。

Server.doStart()方法:

第一步:新建threadpool,并add到container中,方便后面使用

setThreadPool(new QueuedThreadPool());
第二步:执行handlers的doStart();
super.doStart(); 

第三步:执行connector的初始化,打开端口,接收请求

_connectors[i].start();

connector

  • SslConnector:Secure Sockets Layer,提供一些认证等安全控制的方法
  • BlockingChannelConnector:This connector uses efficient NIO buffers with a traditional blocking thread model
  • SelectChannelConnector:This connector uses efficient NIO buffers with a non blocking threading model. 
  • Ajp13SocketConnector:ajp协议通信的时候使用
  • NetworkTrafficSelectChannelConnector:支持NetworkTrafficListener(NetworkTrafficListener:A listener for raw network traffic within Jetty.)
  • InheritedChannelConnector:首先获取继承自启动虚拟机(VM)的某个进程的channel

handler

主要三大类handler

  • 简单的handler:直接继承自AbstractHandler,实现handler功能
  • handlerWrapper:装饰模式,在handler外面做一层代理,做一些handler之外的事情
  • handlerCollection: handler的容器

lifecycle

jetty中的所有组件都实现LifeCycle接口,组件的每一个动作都会调用对应lifeCycle中的方法(start、stop等),通知_listeners执行对应的方法。


connector初始化流程

以socketConnect为例,清晰一点。

接收请求处理流程

最后进入到connection的handler


忘了把目录结构列一下了

目录名称作用
bin启动等脚本
contexts热部署相关文件
contexts-availablepre-context
libjar 包
etc各种配置文件
javadocapi文档
logs默认日志目录
resources其他资源目录
webapps存放web应用
start.jar启动jetty所需类等

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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值