Tomcat的组成部分
1、server
A Server element represents the entire Catalina servlet container. (Singleton)
2、service
service包括多个connector以及一个engine,其职责为处理由connector获得的客户请求。
3、connector
一个connector在某个制定的端口上监听来自客户的请求,将得到的请求交给engine进行处理,并从engine处获得响应,进而返回给用户。
connector主要包括两类:
一是Coyote Http/1.1 Connector 在8080端口侦听来自浏览器的客户http请求;
二是Coyote JK2 Connector 在8009端口侦听来自其它WebServer的请求;
4、engine
Engine下可以配置多个虚拟主机Virtual Host,每个虚拟主机都有一个域名。当Engine获得一个请求时,根据请求域名将该请求的匹配到响应的Host上,然后把该请求交给该Host来处理。
Engine有一个默认虚拟主机,当请求无法匹配到任何一个Host上的时候,将交给该默认Host来处理。
5、host
代表一个Virtual Host,虚拟主机,每个虚拟主机和某个网络域名Domain Name相匹配。每个虚拟主机下都可以部署一个或者多个Web App,每个Web App对应于一个Context,有一个Context path
当Host获得一个请求时,将把该请求匹配到某个Context上,然后把该请求交给该Context来处理。无法和其它Context的路径名匹配的请求,最终将和该默认Context匹配。而该Host的默认Context为
Context path=“”。
6、context
一个Context对应于一个Web Application,一个Web Application由一个或者多个Servlet组成。Context在创建的时候将根据配置文件$CATALINA_HOME/conf/web.xml和$WEBAPP_HOME/WEB-INF/web.xml载入Servlet类
当Context获得请求时,将在自己的映射表(mapping table)中寻找相匹配的Servlet类。如果找到,则执行该类,获得请求的回应,并返回。
7、servlet容器
- servlet容器接收客户请求解析
- servlet容器创建servletRequest对象:包含客户请求信息及关于客户的信息如请求头、请求正文、客户机的ip等。
- servlet容器创建servletResponse对象。
- 调用客户请求的service方法api,将servletRequest、servletResponse作为参数传递进去;
- 根据客户参数中的客户请求信息,利用servletResponse对象产生响应的结果
-
servlet容器将结果交给context
Tomcat运行范例
url:http://vt.ct.test.sankuai.info/api/product?contractId=9e506d54-58f1-11e3-8dea-00222822153f
- 由sankuai.info 寻址到对应的server;
- 该url端口号默认为8080,由service部分的Coyote Http/1.1 Connector侦听到来自客户的请求,并将其交付给service中的engine;
- engine根据url对应的host域名vt.ct.test.sankuai.info匹配到对应的host,同时将请求交付给对应的host;
- host由context path匹配对应的context,合同系统仅有context path=“”的默认context,则将请求交付给默认context;
- 合同系统主要存在一个servlet,将请求交付对应的servlet,由客户申请servlet生成HttpServletRequest对象,HttpServletResponse对象;
- 由controller的url/api/product寻址到对应的函数接口,将参数contractId=9e506d54-58f1-11e3-8dea-00222822153f传进去
- 将返回通过servletResponse传递给servlet;
- Context把执行完了之后的HttpServletResponse对象返回给Host
- Host把HttpServletResponse对象返回给Engine
- Engine把HttpServletResponse对象返回给Connector
- Connector把HttpServletResponse对象返回给客户
相关推荐
Tomcat容器,全称为Apache Tomcat,是一款开源且免费的Java Web应用服务器,由Apache软件基金会的Jakarta项目开发和维护。它是实现Java Servlet和JavaServer Pages(JSP)规范的主要容器之一,是Java EE(现更名为...
Java WEB 篇八 tomcat 容器是如何创建 servlet 类实例?用到了什么原 理?
【标题】:“Tomcat容器”是指Apache Tomcat,一个开源且免费的应用服务器,主要用于部署Java Servlet和JavaServer Pages(JSP)应用。Tomcat作为轻量级应用服务器,以其简单易用、性能高效而广受开发者欢迎。 ...
基于redis服务的tomcat容器session共享配置相关jar包,相关配置可参考:http://blog.csdn.net/tanghaiyang0101/article/details/77600293
Java开发案例-springboot-55-undertow替换默认tomcat容器-源代码+文档.rar Java开发案例-springboot-55-undertow替换默认tomcat容器-源代码+文档.rar Java开发案例-springboot-55-undertow替换默认tomcat容器-源代码...
idea打war包并发布到docker的tomcat容器中,包括打war包步骤和如何将打好的war包发布到docker的tomcat容器中的详细步骤,自己实操后进行的总结。后面还会将如何部署docker进行总结,上传。
在本案例中,我们将利用Redis作为中间件,来存储和共享Tomcat容器中的Session数据。 实现步骤如下: 1. **安装与配置Redis**:首先,你需要在所有服务器上安装Redis,并确保它们能够正常通信。配置Redis的持久化...
Docker 手动创建 Tomcat 容器且端口映射且磁盘对应 本文将详细介绍如何使用 Docker 手动创建 Tomcat 容器,并进行端口映射和磁盘对应。 一、创建容器 首先,我们需要使用 Docker 创建一个新的容器。我们可以使用...
本资源"springboot部署到外部tomcat容器.rar"显然是关于如何将Spring Boot应用部署到外部的Tomcat服务器上的教程。下面,我们将深入探讨这一主题。 首先,了解Spring Boot的内置Tomcat与外置Tomcat的区别至关重要。...
【Jenkins 2.402与Tomcat容器详解】 Jenkins是一款开源的持续集成工具,广泛用于自动化各种任务,包括构建、测试和部署软件。版本2.402是Jenkins的一个稳定版本,提供了丰富的功能和改进。而将Jenkins与Tomcat容器...
【标题】"64位的Tomcat容器"指的是专为64位CPU和64位操作系统设计的Apache Tomcat服务器。Tomcat是一款广泛使用的开源Web应用程序容器,特别适合于Java Web应用的部署和运行。这款64位版本的Tomcat在64位环境下能...
《Tomcat容器攻防笔记之隐匿行踪》是一篇探讨如何在安全威胁日益严重的背景下,利用技术手段规避Tomcat服务器日志记录,从而达到隐藏攻击者行踪目的的文章。文章作者通过深入研究,旨在揭示在当前网络安全环境中,...
【Tomcat容器攻防笔记之Listener内存马】 在网络安全领域,尤其是系统安全和漏洞分析方面,攻击者和防御者之间的较量日益激烈。随着技术的进步,包括AI和网络信息安全在内的多种安全措施已经部署,如WAF动态防御、...
java 手动实现tomcat容器
本篇文章主要介绍了通过Docker搭建Mysql容器+Tomcat容器连接环境,具有一定的参考价值,有兴趣的可以了解一下。
在Spring Boot框架中,开发者可以选择不同的嵌入式Web服务器作为应用程序的容器,其中最常见的是Tomcat和Jetty。本文将深入探讨如何在Spring Boot项目中从Tomcat切换到Jetty容器,以及这两个容器的特点和使用场景。 ...
SpringBoot应用部署于外置Tomcat容器的方法 SpringBoot应用部署于外置Tomcat容器的方法主要介绍了如何将SpringBoot应用程序部署到外置的Tomcat容器中。这种方法可以将SpringBoot应用程序和Tomcat容器分离,使得应用...
Tomcat支持四种容器管理的安全防护,它们是: 1、BASIC(基本验证):通过HTTP验证,需要提供base64编码文本的用户口令 2、DIGEST(摘要验证):通过HTTP验证,需要提供摘要编码字符串的用户口令 3、FORM(表单验证):在...
【描述】:“tomcat容器,8.0.51版本 windows使用tomcat容器,8.0.51版本 windows使用” 在Windows环境下使用Tomcat8.0.51版本,你需要首先下载并解压文件“apache-tomcat-8.0.51”。这个压缩包包含了运行Tomcat所...