一:本项目是什么
本项目是站长带着大家自己写一个 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 上运行