Tomcat的核心是Connector和Container,多个Connector和一个Engine Container构成了一个service(Tomcat实现了一个名字为Catalina的service),有了service,就可以对外提供服务,service存活在server下,整个tomcat的生命周期都由server来控制。
不同的Connector用于接收不同协议的外部请求,Connector会将接收到的请求转换为相同的格式,传递给Engine容器做具体的处理。
Engine容器下面可以包含多个虚拟主机(Host Container),每个虚拟主机作为一个独立的站点,对外提供服务。
每台虚拟主机可以包含多个应用,我们可以为这些应用配置相应的虚拟子目录
不同的Connector用于接收不同协议的外部请求,Connector会将接收到的请求转换为相同的格式,传递给Engine容器做具体的处理。
Engine容器下面可以包含多个虚拟主机(Host Container),每个虚拟主机作为一个独立的站点,对外提供服务。
每台虚拟主机可以包含多个应用,我们可以为这些应用配置相应的虚拟子目录
<Engine name="Catalina" defaultHost="localhost">
需要为Engine指定一台默认主机,如果客户端提供的主机名找不到,就会找当前这台默认的主机
<Host name="localhost" appBase="webapps"
name属性唯一的标志了主机的名称,appBase表示这台主机对应的基准文件系统目录
Context的docBase为相对路径时,就是相对于appBase
<Context path="" docBase="E:\TOMCAT\lesson"/>
将lesson映射为虚拟根目录,我们可以通过/+资源名访问这个应用
<Context path="/book/xxx" docBase="E:\TOMCAT\lesson2"/>
将应用lesson2映射为虚拟子目录/book/xx,可以通过这个虚拟子目录+资源名访问这个应用下的资源