目錄
一:本項目是什麼
本項目是站長帶着大家自己寫一個 Tomcat,基本具備 Tomcat 的核心功能, 如:
Html 文件
純文本文件
日誌功能
多線程
多應用
404響應
500響應
歡迎文件
mime-type
二進制文件
Servlet
公共類加載
批處理 bat
Web應用類加載
jar 文件
動態熱加載
Servlet 的單例
Servlet 的生命週期
Servlet 的自啓動
Request 獲參
Request 獲取頭信息
Request 常見方法
Cookie
Session
gzip 壓縮
jsp 轉譯與編譯
jspClassLoader
客戶端跳轉
服務端跳轉
服務端傳參
責任鏈模式
Filter
war 靜態部署
war 動態部署
監聽器模式
Context 監聽器
二:爲什麼要學習這個項目
1. 學完之後,能夠 "自己寫個Tomcat", 能做到這一點本身就說明技術不錯了
2. 在製作 DiyTomcat 的過程中,需要解決各種各樣稀奇古怪的問題,最後能夠做出來,功力就會有大大的提升
3. 在簡歷裏會成爲亮點, 對面試官很有吸引力, 爲爭取高薪崗位提供了重要的砝碼
要完成這個項目,需要有相當堅實的基礎纔行。
三:技術準備:
首先是階段教
JAVA 基礎 所有內容
JAVA 中級 所有內容
J2EE 所有內容
其次是系列教程:
Java反射機制教程
log4j 入門教程
junit 入門教程
hutool 系列教程
jsoup 入門教程
HTML 系列教程
然後是項目教程:
至少完成一個 J2EE 項目 ,建議是 JAVA WEB 項目教程-模仿天貓整站 J2EE版
尤其是項目,必須要有至少一個J2EE 項目開發經驗,才能對 J2EE 的各項技術有較爲到位的理解,也才能夠理解 DiyTomcat 到底在做什麼。
四:與 Tomcat 的區別
本項目是參考 Tomcat 的源碼,自己做了一個 具備 Servlet 容器功能的 web 服務器,但是並不是和 Tomcat 源碼一樣。
Tomcat 本身的功能十分豐富,而且系統架構也比較複雜,站長個人覺得並不適合直接通過完全仿照來學習。
在研習了 Tomcat 源碼的基礎之上, 站長 去繁化簡, 從0開始,步步深入帶着大家做出一個同樣具備核心功能的 tomcat 出來。
參與制作 DiyTomcat , 更加容易消化理解,學習曲線更加平滑。
五:開發工具:Eclipse 還是 IDEA
目前的主流 IDE (集成開發環境) 是Eclipse 和 IDEA。
站長平時工作都是習慣用 Eclipse,在開發這個 diy tomcat 項目期間,用的也是 Eclipse, 可以說 diytomcat是用 eclipse開發的。
而考慮到不少同學使用的是 idea, 於是做教材就會用 idea 來做,這樣可以客觀上自然就驗證了本項目既可以在 eclipse 也可以在 idea 上運行了。
其實,diytomcat 本身就是個 普通的 java 程序,本質上自然可以在所有的 IDE 上運行