Tomcat启动分析

Python的gmsh库的配置 目录0 参考1 下载并解压gmsh-4.7.1.tar.gz2 手动下载电脑对应的gmsh-sdk版本3 修改gmsh-4.7.1.tar.gz 压缩包解压后的文件夹中的setup.py4 在cmd的dos窗口切换目录至setup.py所在的gmsh-4.7.1文件夹 ,输入指令:5 继续输入安装指令:6 检验 0 参考 https://blog.youkuaiyun.com/Lothar_Wind/article/details/107830925 1 下载并解压gmsh-4.7.1.tar.gz 网址:https: 阅读详情

1 - Tomcat Server的组成部分

1.1 - Server

A Server element represents the entire Catalina servlet container. (Singleton)

1.2 - Service

A Service element represents the combination of one or more Connector components that share a single Engine
Service是这样一个集合:它由一个或者多个Connector组成,以及一个Engine,负责处理所有Connector所获得的客户请求

1.3 - Connector

一个Connector将在某个指定端口上侦听客户请求,并将获得的请求交给Engine来处理,从Engine处获得回应并返回客户
TOMCAT有两个典型的Connector,一个直接侦听来自browser的http请求,一个侦听来自其它WebServer的请求
Coyote Http/1.1 Connector 在端口8080处侦听来自客户browser的http请求
Coyote JK2 Connector 在端口8009处侦听来自其它WebServer(Apache)的servlet/jsp代理请求

1.4 - Engine

The Engine element represents the entire request processing machinery associated with a particular Service
It receives and processes all requests from one or more Connectors
and returns the completed response to the Connector for ultimate transmission back to the client
Engine下可以配置多个虚拟主机Virtual Host,每个虚拟主机都有一个域名
当Engine获得一个请求时,它把该请求匹配到某个Host上,然后把该请求交给该Host来处理
Engine有一个默认虚拟主机,当请求无法匹配到任何一个Host上的时候,将交给该默认Host来处理

1.5 - Host

 

代表一个Virtual Host,虚拟主机,每个虚拟主机和某个网络域名Domain Name相匹配
每个虚拟主机下都可以部署(deploy)一个或者多个Web App,每个Web App对应于一个Context,有一个Context path
当Host获得一个请求时,将把该请求匹配到某个Context上,然后把该请求交给该Context来处理
匹配的方法是“最长匹配”,所以一个path==""的Context将成为该Host的默认Context
所有无法和其它Context的路径名匹配的请求都将最终和该默认Context匹配

1.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类
如果找到,则执行该类,获得请求的回应,并返回

2 - Tomcat Server的结构图

3 - 配置文件$CATALINA_HOME/conf/server.xml的说明

该文件描述了如何启动Tomcat Server

 

4 - Context的部署配置文件web.xml的说明

一个Context对应于一个Web App,每个Web App是由一个或者多个servlet组成的
当一个Web App被初始化的时候,它将用自己的ClassLoader对象载入“部署配置文件web.xml”中定义的每个servlet类
它首先载入在$CATALINA_HOME/conf/web.xml中部署的servlet类
然后载入在自己的Web App根目录下的WEB-INF/web.xml中部署的servlet类
web.xml文件有两部分:servlet类定义和servlet映射定义
每个被载入的servlet类都有一个名字,且被填入该Context的映射表(mapping table)中,和某种URL PATTERN对应
当该Context获得请求时,将查询mapping table,找到被请求的servlet,并执行以获得请求回应

分析一下所有的Context共享的web.xml文件,在其中定义的servlet被所有的Web App载入

 

5 - Tomcat Server处理一个http请求的过程

假设来自客户的请求为:
http://localhost:8080/wsota/wsota_index.jsp

1) 请求被发送到本机端口8080,被在那里侦听的Coyote HTTP/1.1 Connector获得
2) Connector把该请求交给它所在的Service的Engine来处理,并等待来自Engine的回应
3) Engine获得请求localhost/wsota/wsota_index.jsp,匹配它所拥有的所有虚拟主机Host
4) Engine匹配到名为localhost的Host(即使匹配不到也把请求交给该Host处理,因为该Host被定义为该Engine的默认主机)
5) localhost Host获得请求/wsota/wsota_index.jsp,匹配它所拥有的所有Context
6) Host匹配到路径为/wsota的Context(如果匹配不到就把该请求交给路径名为""的Context去处理)
7) path="/wsota"的Context获得请求/wsota_index.jsp,在它的mapping table中寻找对应的servlet
8) Context匹配到URL PATTERN为*.jsp的servlet,对应于JspServlet类
9) 构造HttpServletRequest对象和HttpServletResponse对象,作为参数调用JspServlet的doGet或doPost方法
10)Context把执行完了之后的HttpServletResponse对象返回给Host
11)Host把HttpServletResponse对象返回给Engine
12)Engine把HttpServletResponse对象返回给Connector
13)Connector把HttpServletResponse对象返回给客户browser

 
Tomcat运行脚本及启动过程分析--catalina.sh 一、概述 作为一个成熟的中间件产品,tomcat有很多值得我们学习的地方。下面我将从tomcat的运行脚本catalina.sh入手,分析tomcat的启动过程,以及tomcat脚本是如何实现停止tomcat服务的。 注意:此处分析的是linux环境下的脚本文件 二、tomcat目录结构 tomcat目录结构如下: bin目录的内容如下: 可执行文件,包括startup.sh、sh... 阅读详情

相关推荐

使用Python和Gmsh生成颗粒状复合材料盒装内插杆模型的网格(VTK)

在该函数中,我们首先创建了一个Gmsh模型对象,然后定义了盒子的边界框和内插杆的半径和长度。接下来,我们使用这些参数创建了盒子和内插杆的几何体,并使用布尔运算符从盒子中减去了内插杆,以创建颗粒状复合材料。在本文中,我们将介绍如何使用Python编程语言和Gmsh软件库生成颗粒状复合材料盒装内插杆模型的网格,并将其导出为VTK格式。然后运行脚本,它将生成名为"composite_mesh.vtk"的VTK文件,包含颗粒状复合材料盒装内插杆模型的网格数据。函数,该函数将生成的网格导出为VTK文件。

WbhsOcaml的博客 518

Pygmsh,Fipy,图形可视化

是一个用于三维可视化的Python库。它可以用于绘制三维图形、曲面、等值线和点云数据。它使用VTK后端进行绘图,并提供了一个类似于MATLAB的界面,使用户能够轻松地创建复杂的三维图形。, traits,PyQt4等工具包。依次对VTK, traits,PyQt4和mayavi进行下载安装或者在官网直接下载手动安装。Pyvista是一款Python的可视化工具包(VTK),比VTK、pyqt5等操作简单。注意:VTK必须与mayavi版本对应。如果pip下载找不到vtk对应版本,可以在。

liuyhoo 1441

pygmsh:适用于Python的Gmsh

适用于Python的Gmsh。 pygmsh将的功能与Python的多功能性结合在一起。 它提供了Gmsh自己的Python界面的有用抽象,因此您可以更轻松地创建复杂的几何图形。 要使用,请从安装Gmsh本身和pygmsh: [sudo] apt install python3-gmsh pip install pygmsh 本文档和目录包含许多小示例。 有关完整的文档,请参见。 平面形状 多边形 圆圈 (B-)花键 代码: import pygmsh with pygmsh . geo . Geometry () as geom : geom . add_polygon ( [ [ 0.0 , 0.0 ], [ 1.0 , - 0.2 ], [ 1.1 , 1.2 ],

tomcat的原理及作用

什么是tomcat? Tomcat是由Apache软件基金会下属的Jakarta项目开发的一个Servlet容器,按照Sun Microsystems提供的技术规范,实现了对Servlet和JavaServer Page(JSP)的支持,并提供了作为Web服务器的一些特有功能,如Tomcat管理和控制平台、安全域管理和Tomcat阀等。由于Tomcat本身也内含了一个HTTP服务器,它也可以被视作...

qq_24662345的博客 5137

电荷灵敏前置放大器噪声优化策略:从理论到实践

本文深入探讨了电荷灵敏前置放大器的噪声优化策略,从理论分析到实践应用。文章系统解析了并联电流噪声与串联电压噪声的来源,并引入噪声等效原理与“冷电容”模型作为统一分析工具。通过详解a、b、c三类噪声的频谱特性,为实战优化提供了清晰指导。核心策略包括选用高跨导、低漏电流FET,优化静态工作点,采用共源-共基结构,精心设计反馈网络,以及实施严格的PCB布局、屏蔽与接地,旨在全面提升微弱信号检测系统的信噪比。

weixin_29292431的博客 470

深圳SILAS(智能融合低空系统)无人机调度系统介绍

一、系统定位与核心目标SILAS(Smart Integrated Lower Airspace System)是深圳市为低空经济打造的“数字大脑”,由粤港澳大湾区数字经济研究院自主研发,定位为城市级低空飞行智能调度与管理平台。核心目标是解决低空经济中“高密度、高复杂度、多主体”的飞行调度难题,实现空域资源的高效分配、飞行安全的智能监管及全场景服务的无缝协同,支撑深圳从“无人机之都”向“天空之城”升级。二、核心架构:低空基础设施“四张网”设施网。

主攻大数据 人工智能 物联网 安全 低空经济等方向。mtsc 、gtest特邀分享嘉宾 3755

tomcat启动流程分析

前言 tomcat究竟在启动的时候做了哪些事情呢?从直观上讲,当tomcat启动完毕后,部署在tomcat里的项目,就可以通过外部的http形式进行访问了,但有个疑问是,为什么可以访问呢?其内部都做了哪些准备工作呢?本篇通过源码来了解一下tomcat启动的过程吧 通过上一篇的分析,我们初步了解了tomcat内部的基本构成,包括的基本组件,这些组件的配合构成了tomcat的逻辑上的架构 从大的方面划分,tomcat在启动过程中,主要完成了2件事情,第一初始化容器组件,第二启动相关的线程等待读写事件的接入 to

congge 1352

RTL8306MB交换芯片驱动开发避坑指南:从硬件接线到SDK移植全流程解析

本文详细解析了RTL8306MB交换芯片驱动开发的全流程,重点从硬件接线、SDK移植到实战调试。针对RMII模式下的常见问题,特别是TXEN与RXDV信号交叉连接等关键“坑点”,提供了清晰的排查指南和解决方案,旨在帮助嵌入式工程师高效完成网络设备开发。

282

TOMCAT源码分析(启动框架)

TOMCAT源码分析(启动框架)前言:   本文是我阅读了TOMCAT源码后的一些心得。 主要是讲解TOMCAT的系统框架, 以及启动流程。若有错漏之处,敬请批评指教!建议:   毕竟TOMCAT的框架还是比较复杂的, 单是从文字上理解, 是不那么容易掌握TOMCAT的框架的。 所以得实践、实践、再实践。 建议下载一份TOMCAT的源码, 调试通过, 然后单步跟踪其启动过程。 如果有不明白的地方,

ThomasHuang的专栏 7763

华为、Cisco、H3C、中兴网络设备如何配置syslog日志采集

华为、Cisco、H3C、中兴网络设备如何配置syslog日志采集

weixin_40239644的博客 8707

VSCode玩转ESP-ADF音频开发:从环境搭建到成功播放MP3的避坑全流程

本文详细介绍了如何在VSCode环境下使用ESP-ADF框架进行ESP32音频开发,从环境搭建到成功播放MP3的全流程。重点解析了`IDF_PATH`和`ADF_PATH`的配置问题,以及如何解决`xTaskCreateRestrictedPinnedToCore`等常见编译错误,帮助开发者快速上手ESP-ADF音频开发。

weixin_42520909的博客 339

四,分析Spring Boot底层机制(Tomcat 启动分析+Spring容器初始化+Tomcat如何关联 Spring 容器) 以及个人编写启动 Tomcat

在这个最后的篇章中,我要表达我对每一位读者的感激之情。你们的关注和回复是我创作的动力源泉,我从你们身上吸取了无尽的灵感与勇气。我会将你们的鼓励留在心底,继续在其他的领域奋斗。

weixin_61635597的博客 2906

sentinel滑动时间窗口算法学习

滑动时间窗口 先不说sentinel的算法实现,先说什么是滑动时间窗口, 我们在进行限流的时候,比如通过QPS进行限流,那假如我们以秒为单位,举个例子: 我设置了限流规则,qps是10 如果不使用滑动窗口算法,在统计qps的时候,就有可能会有问题,比如: 在0 - 500ms中的请求数是0,但是在500ms - 1000 ms的请求数是10;在1000ms - 1500ms 之间又进来了5个请求,此时只判断了1000ms - 2000 ms之间的请求数 因为没有把1S进行拆分多个窗口,所以在1000ms之后

小小少年的博客 3982

详解Tomcat系列(一)-从源码分析Tomcat的启动

在整个Tomcat系列文章讲解之前, 我想说的是虽然整个Tomcat体系比较复杂, 但是Tomcat中的代码并不难读, 只要认真花点功夫, 一定能啃下来. 由于篇幅的原因, 很难把Tomcat所有的知识点都放到同一篇文章中, 我将把Tomcat系列文章分为Tomcat的启动, Tomcat中各模块的介绍和Tomcat中的设计模式三部分, 欢迎阅读与关注. 一:通过idea搭建Tomcat源码阅...

炭烧生蚝的博客 307

混响效果的编程实现:Schroeder混响模型与Moorer型混响

Schroeder混响模型是由Manfred R. Schroeder在1962年提出的,它基于一系列串联的反射器(Allpass Comb Filters)和并联的反射器(Feedback Comb Filters)构成。Schroeder混响模型是由Manfred R. Schroeder在1962年提出的,它基于一系列串联的反射器(Allpass Comb Filters)和并联的反射器(Feedback Comb Filters)构成。通过调整各个反射器和全通滤波器的参数,可以实现不同的混响效果。

2301_79326857的博客 1083

【AI大模型应用开发】3.2 RAG实战 - RAG应用+UI实现加载本地文件并对话

前面我们实现了RAG基本流程,今天我们在此基础上给它加个UI界面,在浏览器打开,实现上传本地文件、解析,并用大模型实现与该文档的对话。也就是一个阉割版demo版的ChatPDF或知识库对话系统。

同学小张的博客 3056

tomcat的启动过程分析

tomcat的类加载机制和启动过程分析

景川的博客 852

霍尼韦尔SoftMaster使用说明

霍尼韦尔SoftMaster使用说明

四、分析Spring Boot底层机制(Tomcat 启动分析+Spring容器初始化+Tomcat如何关联 Spring 容器) 以及个人编写启动 Tomcat

12.TomcatServletWebServerFactory.java 会创建Tomcat 并启动 Tomcat。**Spring Boot 注入打 ioc 容器:底层机制:仍然是:我们实现Spring 容器那一套机制。我们的Debug 目标:紧抓一条线,就是看到 tomcat 被启动的代码: 比如。进行源码分析,自然是少不了,Debug 的。依靠 Maven 在 pom.xml 文件中配置相应所需的。bean 对象对应的 config 配置类。controller 处理业务请求的控制器。

2501_92608043的博客 716

老版QQ原生表情gif动态

这是老版的QQ表情,不过全是动态的的,Windows照片查看器是不会动的,可以右击用浏览器打开查看,再说一遍是老版的,只是分享给宁愿用老版也要动态的人。

visio安装包

Microsoft Office Visio 是一款专业的制图软件。利用经过更新的形状、协作工具和数据链接图表,创建专业级图表以简化复杂的信息。

详解Tomcat系列(一):从源码分析Tomcat的启动

在整个Tomcat系列文章讲解之前, 我想说的是虽然整个Tomcat体系比较复杂, 但是Tomcat中的代码并不难读, 只要认真花点功夫, 一定能啃下来. 由于篇幅的原因, 很难把Tomcat所有的知识点都放到同一篇文章中, 我将把Tomcat系列文章分为Tomcat的启动, Tomcat中各模块的介绍和Tomcat中的设计模式三部分, 欢迎阅读与关注. 一:通过idea搭建Tomcat源码阅...

weixin_34290352的博客 305

VB摄像头监控

该VB模块可对摄像头捕获的画面进行录像等,可在创建的窗口进行控制

tomcat源码解读——启动过程分析

参考文章:tomcat源码解读——启动过程分析 在上一篇文章中介绍了idea中tomcat源码调试环境的搭建,调试环境搭建完成之后首先配置tomcat的启动信息,配置信息如下(具体配置步骤参考源码中的README文件) 配置好了tomcat的启动信息之后,就可以开始从源码启动并调试tomcat了,在深入到tomcat的源码之前,为了对tomcat有一个更加直观的了解,可以首先分析一下tomcat...

m47838704的专栏 1250

tomcat源码分析三:tomcat启动与停止

Tomcat正常启动通过bin目录下startup间接调用catalina,并从catalina中执行Bootstrap的main方法,而main方法通过反射调用Catalina的相关方法进行tomcat的启动与停止,Catalina是tomcat的核心类,而BootStrap在Catalina类外面包了一层,提供了一些接口,方便调用。 先看Bootstrap的定义//几个重要属性private

走进技术的世界 1155

Jsp/Servlet 学习笔记之Tomcat启动分析(转)

1.[url=http://www.blogcn.com/wzfl/article/20059/24410181.shtml]Tomcat启动分析[/url] 2.[url=http://www.zhanglihai.com/article/2004-11-13/LS440382U80NG0L1NG12GCC3WUTN8T4A.xtp]TOMCAT源码分析(启动框架)[/url]...

flashcloud 110
上一篇: Tomcat 简介
下一篇: 关于JBoss
lanbery
博客等级 码龄20年 33粉丝 19原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值