容器理解之Tomcat和Apache的恩恩怨怨

2024-02-10 06:30

本文主要是介绍容器理解之Tomcat和Apache的恩恩怨怨,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

写在前面:
首先讲到web项目,可能更多的人会想到tomcat,一般我们做一些java web项目的时候,会经常用到这个,其实tomcat简单讲是一个中间件,web容器(你也可以理解为web应用服务器),他的目的主要是针对http请求和响应的。
tomcat核心作用
开启监听端口监听用户的请求,解析用户发来的http请求然后访问到你指定的应用系统,然后你返回的页面经过tomcat返回给用户。广泛应用在jsp,html,php,asp等。
简单举例
比如你在百度输入一行内容搜索,那么百度服务器如何处理这个请求呢?
他需要创建servlet来处理,servlet其实就是java程序,只是在服务器端的java程序,servlet通过配置文件拦截你的请求,并进行相应处理,然后展示给你相应界面,那么servlet如何创建? 这时候tomcat用到了,它就是帮助你创建servlet的东西,所以也称web容器,没有它,没法运行web项目。
说了这么多大家还是有点懵,肯定还有人问Apaches又是干什么的,那么问题就来了其实他们两个侧重方向不一。
Tomcat更侧重应用服务器,相当于apache的一个扩展,也可以脱离apache独立运行的。支持JSP和servlet .
Apache 是大的概念,web服务器,侧重于HTTP serveer只只支持html静态页面,对PHP,ASP,JSP动态页面就不行。

重点来了,联系生活

下面就举个实际例子给大家来理解吧。
Apache就是一辆大卡车,tomcat是一个水桶,html就好比砖头,jsp,php,asp好比是水。
在这里插入图片描述
那么就很清晰了Apache不好直接装水,但是可以装一些硬货,而tomcat也不是说一定要依赖apache,可以单独存在,其实水桶也是可以装砖头的,但是相对来说显得不那么合适。

但是人们经常就会将两个集合在一起,访问静态页面(html)的时候就直接用apache,可以减少tomcat的负担,解析动态(jsp,asp,php)的东西时候用tomcat,达到动静结合,资源合理分配。

那么刚才的例子也一样,水是动的,砖头的静的,如果你想要把水和砖头都放在一个运行环境中,你就会用水桶把水装好放车上,在把砖头也放车上,这样就可以做到资源空间合理分配应用啦。

我这样解析不知各位客官是否清晰了,喜欢的话麻烦给个小心心或者关注哈哟。

这篇关于容器理解之Tomcat和Apache的恩恩怨怨的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/696364

相关文章

深入理解go中interface机制

《深入理解go中interface机制》本文主要介绍了深入理解go中interface机制,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学... 目录前言interface使用类型判断总结前言go的interface是一组method的集合,不

IDEA中配置Tomcat全过程

《IDEA中配置Tomcat全过程》文章介绍了在IDEA中配置Tomcat的六步流程,包括添加服务器、配置部署选项、设置应用服务器及启动,并提及Maven依赖可能因约定大于配置导致问题,需检查依赖版本... 目录第一步第二步第三步第四步第五步第六步总结第一步选择这个方框第二步选择+号,找到Tomca

Apache Ignite 与 Spring Boot 集成详细指南

《ApacheIgnite与SpringBoot集成详细指南》ApacheIgnite官方指南详解如何通过SpringBootStarter扩展实现自动配置,支持厚/轻客户端模式,简化Ign... 目录 一、背景:为什么需要这个集成? 二、两种集成方式(对应两种客户端模型) 三、方式一:自动配置 Thick

Java Spring的依赖注入理解及@Autowired用法示例详解

《JavaSpring的依赖注入理解及@Autowired用法示例详解》文章介绍了Spring依赖注入(DI)的概念、三种实现方式(构造器、Setter、字段注入),区分了@Autowired(注入... 目录一、什么是依赖注入(DI)?1. 定义2. 举个例子二、依赖注入的几种方式1. 构造器注入(Con

Apache Ignite缓存基本操作实例详解

《ApacheIgnite缓存基本操作实例详解》文章介绍了ApacheIgnite中IgniteCache的基本操作,涵盖缓存获取、动态创建、销毁、原子及条件更新、异步执行,强调线程池注意事项,避免... 目录一、获取缓存实例(Getting an Instance of a Cache)示例代码:二、动态

Spring Boot从main方法到内嵌Tomcat的全过程(自动化流程)

《SpringBoot从main方法到内嵌Tomcat的全过程(自动化流程)》SpringBoot启动始于main方法,创建SpringApplication实例,初始化上下文,准备环境,刷新容器并... 目录1. 入口:main方法2. SpringApplication初始化2.1 构造阶段3. 运行阶

SpringBoot结合Docker进行容器化处理指南

《SpringBoot结合Docker进行容器化处理指南》在当今快速发展的软件工程领域,SpringBoot和Docker已经成为现代Java开发者的必备工具,本文将深入讲解如何将一个SpringBo... 目录前言一、为什么选择 Spring Bootjavascript + docker1. 快速部署与

深入理解Go语言中二维切片的使用

《深入理解Go语言中二维切片的使用》本文深入讲解了Go语言中二维切片的概念与应用,用于表示矩阵、表格等二维数据结构,文中通过示例代码介绍的非常详细,需要的朋友们下面随着小编来一起学习学习吧... 目录引言二维切片的基本概念定义创建二维切片二维切片的操作访问元素修改元素遍历二维切片二维切片的动态调整追加行动态

Spring IoC 容器的使用详解(最新整理)

《SpringIoC容器的使用详解(最新整理)》文章介绍了Spring框架中的应用分层思想与IoC容器原理,通过分层解耦业务逻辑、数据访问等模块,IoC容器利用@Component注解管理Bean... 目录1. 应用分层2. IoC 的介绍3. IoC 容器的使用3.1. bean 的存储3.2. 方法注

从原理到实战深入理解Java 断言assert

《从原理到实战深入理解Java断言assert》本文深入解析Java断言机制,涵盖语法、工作原理、启用方式及与异常的区别,推荐用于开发阶段的条件检查与状态验证,并强调生产环境应使用参数验证工具类替代... 目录深入理解 Java 断言(assert):从原理到实战引言:为什么需要断言?一、断言基础1.1 语