container 元件 -catalina
總體架構預覽
核心功能: http伺服器和servlet 容器
剛才說了tomcat核心功能有兩個 : http伺服器和servlet 容器。 那tomcat為了實現如上兩個核心功能又是怎樣架構的呢?
為了實現上面的功能,tomcat封裝出了很多元件 ,這些元件共同組成了tomcat的架構。
進一步分析一下
我們既然說了tomcat的兩個核心功能,http和servlet , 具體在架構中對應的部分是哪些呢?
connector 元件 在tomcat中,有個專門的名稱,叫 coyote ,專門處理http伺服器功能
我們把connector元件放大來看一下
這兩個元件被稱為 protocolhandler
http請求 都是處理的request, 而 catalina 實現了servlet規範,主要處理的是servletrequest請求,所以這倆沒法直接互動,因此才有了adapter 元件,用來轉換request 和 servletrequest
順便說一下 ajp,這個是早期tomcat為了繼承apache的靜態資源服務 的時候使用的協議,(tomcat更擅長處理動態資源)
container 元件的主要功能是完成servlet容器功能, 也有個專門的名稱叫 catalina
除了connector元件和container元件,tomcat其實還定義了很多元件來工作
這些元件採用一層一層的設計方式(套娃式) 。 如果乙個元件包含了其他元件,那麼這個元件也稱之為容器。
瞅一瞅俄羅斯套娃 哈哈
說了這多,彙總如下
簡單的套娃
最簡單的那種套娃 include flag.php highlight file file error reporting 0 ia index.php query server query string var dump get if preg match xisfun get x get x x...
俄羅斯套娃信封
給一定數量的信封,帶有整數對 w,h 分別代表信封寬度和高度。乙個信封的寬高均大於另乙個信封時可以放下另乙個信封。求最大的信封巢狀層數。樣例 1 輸入 5,4 6,4 6,7 2,3 輸出 3 解釋 最大的信封巢狀層數是 3 2,3 5,4 6,7 樣例 2 輸入 4,5 4,6 6,7 2,3 1...
俄羅斯套娃問題
給定一些標記了寬度和高度的信封,寬度和高度以整數對形式 w,h 出現。當另乙個信封的寬度和高度都比這個信封大的時候,這個信封就可以放進另乙個信封裡,如同俄羅斯套娃一樣。請計算最多能有多少個信封能組成一組 俄羅斯套娃 信封 即可以把乙個信封放到另乙個信封裡面 說明 不允許旋轉信封。示例 輸入 enve...