开头说两句


小刀博客: 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的绝大多数属性. 本文只是讲了一些基础的组件和功能,更多的还需要自己去学习. 大家在学习过程中遇到什么问题?