徒手开发一个Tomcat,给简历添加一点色彩
一:本项目是什么
本项目是站长带着大家自己写一个 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 上运行