Connector 最底層是使用 Socket 進(jìn)行連接这揣,Request 和 Response 按照 HTTP 協(xié)議進(jìn)行封裝机打,之后會將 Request 和 Response 交給 Container 驚醒處理,Container 就是 Servlet 的容器片迅,Container 處理完成后返回給 Connector残邀,最后 Connector 使用 Socket 將處理返回給客戶端
7.5.1 Connector 結(jié)構(gòu)
Connector 具體是用 ProtocolHandler 處理請求,不同的 ProtocolHandler 代表不同的連接類型柑蛇。Protocol有三個組件:
- Processor:將 Endpoint 接收到的 Socket 封裝成 Request芥挣。
- Adapter:將封裝好的 Request 交給 Container 進(jìn)行處理。
- Endpoint:處理底層 Socket 的網(wǎng)絡(luò)連接
- Acceptor:用于監(jiān)聽請求耻台。
- AsyncTimeout:異步檢查 request 的超時空免。
- Handle:處理接收到的 Socket,在內(nèi)部調(diào)用 Processor 進(jìn)行處理盆耽。
7.5.2 Connector 自身類
Connector 類主要是在其被創(chuàng)建時創(chuàng)建 ProtocolHandler蹋砚,在生命周期中調(diào)用 ProtocolHandler 對應(yīng)的方法扼菠。
Connector 的創(chuàng)建
Connector 的創(chuàng)建過程主要是初始化 ProtocolHandler。server.xml配置文件中的 protocol 屬性會設(shè)置到 Connector 構(gòu)造函數(shù)的參數(shù)中都弹,用于指定 ProtocolHandler 的類型娇豫。
Connector 生命周期處理方法
Connector 的生命周期主要調(diào)用了 ProtocolHandler 的相應(yīng)的方法。
7.5.4 處理 TCP/IP 協(xié)議的 Endpoint
7.5.5 處理 HTTP 協(xié)議的 Processor
7.5.6 適配器 Adapter
- Processor 在其 process 方法中調(diào)用 Adapter 的 service方法來處理請求畅厢。
- Adapter 在service 中調(diào)用 Container 管道中的 invoke 方法來處理請求冯痢。