7.5 Connector 分析

Connector 最底層是使用 Socket 進行連接,Request 和 Response 按照 HTTP 協議進行封裝,之后會將 Request 和 Response 交給 Container 驚醒處理,Container 就是 Servlet 的容器,Container 處理完成后返回給 Connector,最后 Connector 使用 Socket 將處理返回給客戶端

7.5.1 Connector 結構

Connector 具體是用 ProtocolHandler 處理請求,不同的 ProtocolHandler 代表不同的連接類型。Protocol有三個組件:

  • Processor:將 Endpoint 接收到的 Socket 封裝成 Request。
  • Adapter:將封裝好的 Request 交給 Container 進行處理。
  • Endpoint:處理底層 Socket 的網絡連接
    • Acceptor:用于監聽請求。
    • AsyncTimeout:異步檢查 request 的超時。
    • Handle:處理接收到的 Socket,在內部調用 Processor 進行處理。
Connector 結構圖

7.5.2 Connector 自身類

Connector 類主要是在其被創建時創建 ProtocolHandler,在生命周期中調用 ProtocolHandler 對應的方法。

Connector 的創建

Connector 的創建過程主要是初始化 ProtocolHandler。server.xml配置文件中的 protocol 屬性會設置到 Connector 構造函數的參數中,用于指定 ProtocolHandler 的類型。

Connector

Connector 生命周期處理方法

Connector 的生命周期主要調用了 ProtocolHandler 的相應的方法。

ProtocolHandler

7.5.4 處理 TCP/IP 協議的 Endpoint

7.5.5 處理 HTTP 協議的 Processor

7.5.6 適配器 Adapter

  • Processor 在其 process 方法中調用 Adapter 的 service方法來處理請求。
  • Adapter 在service 中調用 Container 管道中的 invoke 方法來處理請求。
最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容