我們啟動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協議的格式進行輸...