手寫乙個簡化版Tomcat

2021-09-13 01:39:16 字數 950 閱讀 5832

我們啟動tomcat時雙擊的startup.bat檔案的主要作用是找到catalina.bat,並且把引數傳遞給它,而catalina.bat中有這樣一段話:

bootstrap.class是整個tomcat 的入口,我們在tomcat原始碼裡找到這個類,其中就有我們經常使用的main方法:

這個類有兩個作用 :1.初始化乙個守護程序變數、載入類和相應引數。2.解析命令,並執行。

原始碼不過多贅述,我們在這裡只需要把握整體架構,有興趣的同學可以自己研究下原始碼。tomcat的server.xml配置檔案中可以對應構架圖中位置,多層的表示可以配置多個:

即乙個由 server->service->engine->host->context 組成的結構,從裡層向外層分別是:

實現以上效果整體思路如下:

1.serversocket占用8080埠,用while(true)迴圈等待使用者發請求。

2.拿到瀏覽器的請求,解析並返回url位址,用i/o輸入流讀取本地磁碟上相應檔案。

3.讀取檔案,不存在構建響應報文頭、html正文內容,存在則寫到瀏覽器端。

Redux自己手寫乙個簡化版全面的redux

import react from react const renderscreen screen const renderbutton button 1.全域性渲染方法 渲染螢幕 renderscreen state.screen 渲染按鈕 renderbutton state.button 2....

如何實現乙個簡化版的 jQuery

對於操作dom來說,jquery是非常方便的乙個庫,雖然如今隨著react,vue之類框架的流行,jquery用得越來越少了,但是其中很多思想還是非常值得我們學習的,這篇文章將介紹如何從零開始實現乙個簡化版jquery。在這裡,我把這個庫命名為 clus class 的諧音 下面以 符號代替。首先需...

手寫乙個Tomcat

1 工程截圖 2 封裝請求物件 通過輸入流,對http協議進行解析,拿到了http請求頭的方法和url author wangjie version 2018 11 9 封裝請求物件 通過輸入流,對http協議進行解析,拿到http請求頭的方法和url 3 封裝響應物件 基於http協議的格式進行輸...