**Tomcat既是一个HTTP服务器,也是一个servlet容器,主要目的就是包装servlet,并对请求响应相应的servlet,**①纯servlet的web应用很好;理解Tomcat时如何装在servlet 的,②但,当使用一些MVC框架时,如spring MVC、strusts2,可能就找不出servlet在哪里?
其实spring mvc框架就是一整个servlet
**Tomcat技术先进、性能稳定、而且免费,**因此深受java爱好者的喜爱并得到了部分软件开发商的认可,成为目前比较流行的Web应用服务器
Tomcat
目录:
1.bin目录:存放启动和关闭的tomcat脚本
2.conf目录:存放不同的配置文件(servlet.xml和web.xml)
3.lib目录:存放Tomcat服务器的支撑jar包
4.logs目录:存放tomcat的日志文件
5.temp目录:存放tomcat运行时产生的临时文件
6.webapps目录:web应用所在的目录,即供外界访问的web资源的存放目录
7.work目录;tomcat的工作目录
1.为什么要学习tomcat源码?
tomcat时目前非常流行的web容器,其性能和稳定性也是非常出色的,学习其框架设计和底层的实现,不管时使用、性能调优、还是应用框架设计方面,肯定会有很大的帮助
maven
本人习惯使用maven,因此将源码转成maven工程。新建pom.xml,加入相关依赖,如附录所示
导入开发工具
导入maven项目,因为有些测试类依赖了examples目录的类,因此把apache-tomcat-8.5.24-src\webapps\examples\WEB-INF\classes目录在开发工具上面设置为java源文件,编译的class输出目录设为classes,
总体结构
通过上图我们可以看出Tomcat中主要涉及Server,Service,Engine,Connector,Host,Context组件,之前用过Tomcat的童鞋是不是觉得这些组件的名称有点似曾相识的赶脚,没赶脚?!您再想想。好吧,不用你想了,我来告诉你吧。其实在Tomcat二进制分发包解压后,在conf目录中有一个server.xml文件,你打开它瞄两眼看看,是不是发现server.xml文件中已经包含了上述的几个名称。
tomcat加载时对相应组件(容器)的配置参数都是从这个文件读进去的,这个文件是Tomcat性能优化的关键,conf/server.xml