加入收藏 | 设为首页 | 会员中心 | 我要投稿 应用网_丽江站长网 (http://www.0888zz.com/)- 科技、建站、数据工具、云上网络、机器学习!
当前位置: 首页 > 站长资讯 > 外闻 > 正文

查漏补缺:连接器在Tomcat中是如何设计的

发布时间:2019-09-24 16:26:56 所属栏目:外闻 来源:今日头条
导读:副标题#e# 从连接器(Connector)源码说起 既然是来解析连接器(Connector),那么我们直接从源码入手,后面所有源码我会剔除不重要部分,所以会忽略大部分源码细节,只关注流程。源码如下(高能预警,大量代码): publicclassConnectorextendsLifecycleMBeanBas

这里出现了一个新的对象,endpoint,根据注释我们可以知道endpoint是用来处理网络IO的,而且必须匹配到指定的子类(比如Nio,就是NioEndPoint处理)。endpoint.init()实际上就是做一些网络的配置,然后就是初始化完毕了。根据我们上面的周期管理,我们知道init()后就是start(),所以我们查看Connector的start()源码:

  1. protected void startInternal() throws LifecycleException { 
  2. // Validate settings before starting 
  3. if (getPortWithOffset() < 0) { 
  4. throw new LifecycleException(sm.getString( 
  5. "coyoteConnector.invalidPort", Integer.valueOf(getPortWithOffset()))); 
  6. setState(LifecycleState.STARTING); 
  7. try { 
  8. protocolHandler.start(); 
  9. } catch (Exception e) { 
  10. throw new LifecycleException( 
  11. sm.getString("coyoteConnector.protocolHandlerStartFailed"), e); 

(编辑:应用网_丽江站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

热点阅读