真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

TomcatNIO中數(shù)據(jù)處理類是怎么樣的

這篇文章主要介紹了Tomcat NIO中數(shù)據(jù)處理類是怎么樣的,具有一定借鑒價值,感興趣的朋友可以參考下,希望大家閱讀完這篇文章之后大有收獲,下面讓小編帶著大家一起了解一下。

網(wǎng)站建設(shè)哪家好,找創(chuàng)新互聯(lián)!專注于網(wǎng)頁設(shè)計、網(wǎng)站建設(shè)、微信開發(fā)、小程序制作、集團企業(yè)網(wǎng)站建設(shè)等服務(wù)項目。為回饋新老客戶創(chuàng)新互聯(lián)還提供了海城免費建站歡迎大家使用!

在 tomcat NIO 的實現(xiàn)里,會有一系列處理數(shù)據(jù)讀寫的類。并且 tomcat 也實現(xiàn)了servlet 標準,是 servlet 容器。所以會把處理數(shù)據(jù)讀寫的類封裝成標準的HttpServletRequest 和HttpServletResponse 實現(xiàn),從而完成從原始 socket 連接請求到 servlet API 的調(diào)用。對于請求 Request 相關(guān)的類,展示如下圖:

Tomcat NIO中數(shù)據(jù)處理類是怎么樣的

  • HttpServletRequest 類,代表標準 servlet API 中對于 Request 的具體的定義,其實現(xiàn)類為org.apache.catalina.connector.Request 。
  • HttpServletResponse ,是HttpServletRequest的實例,代表標準 servlet API 中對于 Response 的具體的定義,其中具體的實現(xiàn)類為org.apache.catalina.connector.Response 。
  • Connector 類,屬于 HttpServletRequest 類的實例,是對上一篇文章中介紹的頂層框架類 Connector 引用。
  • CoyoteRequest ,屬于HttpServletRequest 類的實例,同時也是屬于InputBuffer 類和 Http11InputBuffer 類的實例,是 tomcat 對連接請求的封裝,同時里面也包含 http method ,uri ,querystring ,host ,port 等 items 的封裝。
  • CoyoteInputStream,是 HttpServletRequest 類的實例,是 tomcat 對于輸入流的包裝。
  • InputBuffer 類,屬于 HttpServletRequest 類的實例,也屬于 CoyoteInputStream 類的實例,用來完成請求數(shù)據(jù)的讀取。其中包含 Bytebuffer 和 CharBuffer 作為字節(jié)和字符讀取緩沖區(qū),默認大小為1028*8 bit ,即8KB。
  • CoyoteResponse 類,屬于 CoyoteRequest 類的實例,是 tomcat 對于對連接響應(yīng)的封裝。
  • Http11InputBuffer 類,主要用于完成請求數(shù)據(jù)的讀取,其中包含 Bytebuffer 作為字節(jié)讀取緩沖區(qū),包含 SocketInputBuffer 輔助類用于完成到 Bytebuffer 字節(jié)緩沖區(qū)的讀操作。
  • NioSocketWrapper 類,是 Http11InputBuffer 類的實例,封裝了原始的 scoket ,提供封裝的 socket 讀寫操作。
  • NioSelectorPool 類,屬于 NioSocketWrapper 類的實例,當數(shù)據(jù)需要多次讀寫的時候,監(jiān)測注冊在原始 scoket 上的讀寫事件是否發(fā)生。
  • CountDownLatch 類,這里有 readLatch 實例和 writeLatch 兩個實例,而這兩個均是屬于 NioSocketWrapper 類的實例。用于當數(shù)據(jù)不可讀,或者不可寫的時候?qū)?tomcat io 線程的阻塞,即如果數(shù)據(jù)不可讀寫,tomcat io 線程會分別在 readLatch 實例和 writeLatch 實例上等待。
  • Poller 類,是屬于 NioSocketWrapper 類的實例,主要監(jiān)測 epoll 模型里注冊原始 scoket 上的讀寫事件是否發(fā)生。里面包含事件隊列SynchronizedQueue ,java NIO 事件輪詢對象 selector,同時還包含了并發(fā)事件計數(shù)器 weakupCounter。
  • NioChannel 類,是屬于 NioSocketWrapper 類的實例,對原始 java NIO 對象 ScoketChannel 的封裝,同時它的內(nèi)部也引用了其所從屬的NioSocketWrapper 類的實例。
  • SocketBufferHandler 類,屬于 NioChannel 類的實例,主要是用于進行封裝原始 java NIO ScoketChannel 對象的讀寫 buffer 。其內(nèi)部有 DirectBuffer 類型的讀緩沖與寫緩存,這里的 DirectBuffer 是堆外內(nèi)存,而不是 jvm 內(nèi)存,從而提高了讀寫效率。

對于請求 Reponse 相關(guān)的類,展示如下圖:

Tomcat NIO中數(shù)據(jù)處理類是怎么樣的

  • HttpServletReponse 類,代表標準 servlet API中對于Reponse 的定義,其具體實現(xiàn)類為 org.apache.catalina.connector.Reponse。
  • HttpServletRequest,是HttpServletReponse的實例,代表標準 servlet API 中對于 Request 的具體的定義,其中的具體的實現(xiàn)類為org.apache.catalina.connector.Request 。

  • CoyoteOutputStream,是 HttpServletReponse 類的實例,是 tomcat 對于輸出流的包裝。
  • OutputBuffer 類,是屬于 CoyoteOutputStream 類的實例,也屬于 HttpServletReponse 類的實例,用來完成響應(yīng)數(shù)據(jù)的寫操作。其中包含Bytebuffer 和 CharBuffer 作為字節(jié)和字符寫操作緩沖區(qū),默認大小為1024*8 bit,即8KB。
  • CoyoteResponse 類,即是屬于 CoyoteRequest 類的實例,也屬于 OutputBuffer 類的實例,是 tomcat 對于對連接響應(yīng)的封裝。
  • Http11OutputBuffer 類,主要用于完成響應(yīng)數(shù)據(jù)的寫操作,其中包含 Bytebuffer 作為 header 字節(jié)寫緩沖區(qū),包含 SocketOutputBuffer 輔助類完寫操作。
  • NioSocketWrapper,屬于Http11OutputBuffer類的實例,封裝了原始的 scoket ,提供封裝的 socket 讀寫操作。

感謝你能夠認真閱讀完這篇文章,希望小編分享的“Tomcat NIO中數(shù)據(jù)處理類是怎么樣的”這篇文章對大家有幫助,同時也希望大家多多支持創(chuàng)新互聯(lián),關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道,更多相關(guān)知識等著你來學習!


網(wǎng)頁標題:TomcatNIO中數(shù)據(jù)處理類是怎么樣的
URL地址:http://weahome.cn/article/ipieie.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部