1. TOMCAT学习——TOMCAT的主要组件

本文深入解析了Tomcat服务器的架构组成,包括Server、Service、Connector、Engine、Host和Context等核心组件的功能与关系,以及Wrapper组件如何由Servlet应用定义。
  • TOMCAT的主要组件

如图:
在这里插入图片描述

  1. Server

    Server 组件是最外层的容器组件。包含了整个Servlet引擎的所有组件。当TOMCAT启动时,会由Server来启动所有组件,关闭时也是由Server来关闭所有组件。

  2. Service

    ServiceServer的内部,一个Server可以有多个Service,但是默认情况下只有一个。每个Service都包含了一个Servlet容器和连接器(Connector)。

  3. Connector

    Connector连接器,每一个连接器对应一种协议,类似HTTP,HTTPS,AJP等。随着TOMCAT的启动,每个连接器都会启动一个Socket服务端,接收请求。

  4. Engine

    EngineServlet引擎。整个Servlet容器的顶层元素。

  5. Host

    Host对应的是域名,他的父容器是Engine。一个Host下面可以存在多个Servlet应用,Host会去解析和部署在指定路径下Servlet应用。一般只会有一个Host

  6. Context

    每一个Context对应一个Servlet应用。除了名为ROOT的应用,其他应用都必须有一个应用名。

  7. Wrapper

    Wrapper对应一个具体的Servlet处理过程。

我们可以从TOMCAT的默认配置文件Server.xml中印证组件之间的关系。

<!--这里剔除了一些无关的组件内容-->
<Server port="8005" shutdown="SHUTDOWN">
  <Service name="Catalina">
    <Connector port="8080" protocol="HTTP/1.1" redirectPort="8443" />
    <Connector port="8009" protocol="AJP/1.3" redirectPort="8443" />
    <Engine name="Catalina" defaultHost="localhost">
      <Host name="localhost"  appBase="webapps"
            unpackWARs="true" autoDeploy="true"
            xmlValidation="false" xmlNamespaceAware="false">
        <Context path="/test" docBase="test"/>
      </Host>
    </Engine>
  </Service>
</Server>

这里的每一个标签都对应了一个组件实例。从文件可以看到,Server.xml中已经包含了

1. Server 2. Service 3. Connector 4. Engine 5. Host 6.Context 六个组件。

那么剩余的Wrapper组件在哪里呢?

Wrapper比较特别,他并不由TOMCAT自身来定义,而是由Servlet应用开发者来定义。
每个Servlet应用都会有一个Web.xml文件。

<web-app xmlns="http://java.sun.com/xml/ns/javaee"
           xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
           xsi:schemaLocation="http://java.sun.com/xml/ns/javaee
		  http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"
           version="2.5">
    <servlet>
        <servlet-name>Login</servlet-name>
        <servlet-class>Login</servlet-class>
    </servlet>
    <servlet-mapping>
        <servlet-name>Login</servlet-name>
        <url-pattern>Login</url-pattern>
    </servlet-mapping>
</web-app>

文件中的 标签和 标签就对应了一个Wrapper

最后需要说明的是:以上的7个组件只是TOMCAT的比较重要或者说比较基础的组件。其余的组件还有Session管理器,部署器,日志组件等等很多。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值