zoukankan      html  css  js  c++  java
  • Tomcat架构简述

    Tomcat架构简述

    概述

    Tomcat是一个web应用服务器,也可以称作是jsp/servlet容器,Tomcat不仅可以相应web应用而且自身集成了http服务,是一个高效的web服务器。
    Tomcat虽然本身的结构很复杂,但是同时Tomcat也高度的模块化,所以从结构图上来看Tomcat的设计非常的简洁。

    由上图可以看出来一个应用服务器(Tomcat server)可以拥有多个service服务,一个service服务中有多个Connector组件和一个Container组件以及多个其他组件,例如日志,Session,命名等,其中Connector和Container这两个组件是Tomcat的核心组件,下面将大致一一介绍每个组件的作用。

    Server服务器

    server服务器指Tomcat容器。

    Service服务

    service服务指的就是Server服务器能提供的服务,比如http服务,在Tomcat里就是指web服务。

    Jasper

    Jasper组件负责jsp页面的解析,jsp属性的验证,同时也负责将jsp页面动态转换为java代码并且编译成class文件。

    Naming

    Naming组件负责管理相关资源,包括数据库连接池,EJB,mail等通过JNDI获取的内容。

    Logging

    Logging组件负责记录相关日志,包含访问错误信息等。

    Session

    Session组件负责session的管理,序列化反序列化等。

    需要重点介绍的是Connector组件和Container组件

    可以参照一张更全面的图

    Connector

    由上面的图我们可以看出来一个Service服务可以包含多个Connector,实际上Tomcat中包含了3个Connector,分别对应HTTP请求,HTTPS请求以及AJP请求。那么Connector在Tomcat中到底扮演了什么样的角色呢?Tomcat中的Connector负责的任务就是接受请求,创建request和response,解析请求中数据,将数据封装到request中,最后将request和response作为参数传递给Container对象!

    由于不同协议规则不同,解析起来也是不一样的,所以需要多个Connector。

    Container

    Container实际上只是容器的概称。而Tomcat中包含有多个Container。那么Container的作用是什么呢?Container的作用就是接收Connector传递的request和response,对request和response进行了一些过滤封装,同时调用对应的Servlet去处理该request,最后将处理完成后的结果封装到response中返回给客户端!

    每个Container从大到小分别为Engine-->Host-->Context-->Wrapper

    1. Engine容器代表整个Catalina servlet引擎

    2. Host容器表示一个虚拟主机,Tomcat自带的是一个叫localhost的主机

    3. Context容器表示一个WEB应用程序

    4. Wrapper表示一个独立的Servlet

    对于一个Engine可以包含多个Host,Tomcat自带了一个叫做localhost的Host容器,一个Host容器可以包含多个Context,一个Context可以包含多个Wrapper。

    是不是感觉这几个单词很熟悉,是的!在Tomcat中我们可以使用Tomcat默认提供的这些容器,也可以在CATALINA_HOME/conf下的server.xml中配置,而这几个单词正是对应server.xml中的各个配置选项的名称!

    在下面的几个章节我们将逐渐深入到各个组件中去探索Tomcat是如何工作的。

  • 相关阅读:
    ASP.NET WEB开发,实现上传图片
    使用Word API打开Word文档 ASP.NET编程中常用到的27个函数集
    工资单的编辑与保存
    生成工资表
    系统设置
    空间参考
    Envelope几何对象 Curve对象几何对象 Multipatch几何对象 Geometry集合接口 IGeometryCollection接口
    Polygone对象
    Segment,Path,Ring和Polyline对象
    [Android]使用ActivityGroup来切换Activity和Layout
  • 原文地址:https://www.cnblogs.com/coldridgeValley/p/5469615.html
Copyright © 2011-2022 走看看