开头说两句
小刀博客: https://www.lixiang.red 小刀公众号: 程序员学习大本营
学习背景
学习还要啥背景,技多不压身,Come on 上篇我们讲到了tomat的目录结构: https://www.lixiang.red/articles/2019/08/04/1564907616303.html
学习准备
server.xml Tomcat本质上是一个Servlet容器,Catalina就是Servlet容器,如上文我们提到的Coyote, Jasper,EL , Naming, Juli等等都是为了Catalina服务,而catalina的初始就是我们常用的server.xml,所以我们今天就从server.xml来进入catalina的学习
server.xml
以前我们可能只改过connector中的端口,如果做部署的话,也会修改host下面的东东
通过server.xml 我们可以看到这么一个层级关系
server包含service
service 包含 connector 和 engine engine 包含有realm 和 host host 包含 context(默认的server.xml里面没有)但是我们在实际发布时会配置上这个 context 包含wrapper
组件基本解释
-
Server
表示整个Servlet容器,Tomcat运行时,只有唯一一个Server实例
-
Service
一个或多个connector的集合,这些connector 共享同一个container来处理其请求. 在同一个tomcat实例中可以包含多个service , service之间彼此独立.
-
Connector
Tomcat链接器,用于临听转化socket请求,将socket请求转交给Container来处理
-
Engine
Engine 是指整个的servlet引擎, Engine 是最高级的Container,虽然不是直接处理请求的位置,但是它是请求处理的入口
-
Host
虚拟主机,与一个服务器的网络名有关,客户端可以用这个名称去连接服务器. 这个名称必须要在DNS上注册.
-
Context
从字面上来就是上下文,放tomcat中,上下文就代表着一个完整的web应用
-
Wrapper
Wrapper 作为一类容器,用于表示web 应用中定义的servlet
最后说两句
server.xml 是我们能够与tomcat服务直接交互的地方,我们可以通过server.xml配置tomcat的绝大多数属性. 本文只是讲了一些基础的组件和功能,更多的还需要自己去学习. 大家在学习过程中遇到什么问题?