当前位置: 首页 > news >正文

JavaWeb- Tomcat

一、概念

老规矩,先看维基百科:Apache Tomcat (called "Tomcat" for short) is a free and open-source implementation of the Jakarta Servlet, Jakarta Expression Language, and WebSocket technologies.[2] It provides a "pure Java" HTTP web server environment in which Java code can also run. Thus it is a Java web application server, although not a full JEE application server. 有用的似乎就最后一句话,Tomcat是一个Java Web应用服务器,这也是读者们经常读到的答案。但是什么又是Web服务器呢?

所谓Web服务器,就是提供Web服务的服务器。试想这样一个过程::用户在客户端发出请求至Web服务器,Web服务器对其做出响应,返回相应的数据至客户端,即一次HTTP请求-响应(详见HTTP介绍)。有的读者可能会疑惑,Web服务器与我平时写的代码之间有什么关联呢?程序员编写的代码通常是Web应用,Web应用需要置于Web服务器之内,才能一起给用户提供Web服务。因此Web服务器也称为Web容器。

看如下简图:

那么Web服务器到底完成了什么工作呢?在上一篇介绍HTTP的文章中谈到,客户端与服务端之间在请求-响应的过程中,对于HTTP协议的操作是通用的,而这部分通用的处理即是Web服务器完成的,这使得开发者可以更关注Web应用中的业务逻辑。至此,是否对Tomcat有了初步的理解呢?

二、再理解

我们也经常听到这样的描述:Tomcat是一个开源、免费、轻量级的Web服务器,在本文的第一段中提到"not a full JEE application server",这又如何理解呢?JEE是Java Enterprise Edition,通常指Java企业级开发的技术规范总各,包含13项技术规范。由于Tomcat未完全支持全部的规范,因此会称之"not full",同样,这也是它轻量的原因。而像其它的Web服务器如WebLogic则支持全部的规范,因此也比Tomcat更重。(了解即可)

此外,笔者经常提到一句话:理解一个技术,要理解这个技术为什么产生,是解决了当时的什么问题,这样能帮助我们将不断迭代的技术连贯起来。那么Tomcat的产生是基于什么需求呢?在网络服务出现之前,计算机只能浏览编辑本机上的资源,我们肯定是期望能够访问其它计算机上的资源的,于是Web项目与处理HTTP通用操作的Web服务器便应运而生了。

三、快速使用

请查看Tomcat快速使用,以最简单的依赖和代码部署一个Web项目到Tomcat中并在浏览器中访问。

相关文章:

JavaWeb- Tomcat

一、概念 老规矩,先看维基百科:Apache Tomcat (called "Tomcat" for short) is a free and open-source implementation of the Jakarta Servlet, Jakarta Expression Language, and WebSocket technologies.[2] It provides a "pure Ja…...

Android studio 各本版下载

搜索Android studio下载时发现各种需要付费下载的链接,在此记录一下官方的下载地址。 Android Studio 下载文件归档 | Android 开发者 | Android Developers...

[C#]winform部署PaddleOCRV3推理模型

【官方框架地址】 https://github.com/PaddlePaddle/PaddleOCR.git 【算法介绍】 PaddleOCR是由百度公司推出的一款开源光学字符识别(OCR)工具,它基于深度学习框架PaddlePaddle开发。这款工具提供了一整套端到端的文字检测和识别解决方案&a…...

谈谈Spring Bean

一、IoC 容器 IoC 容器是 Spring 的核心,Spring 通过 IoC 容器来管理对象的实例化和初始化(这些对象就是 Spring Bean),以及对象从创建到销毁的整个生命周期。也就是管理对象和依赖,以及依赖的注入等等。 Spring 提供…...

kubernetes(一)概述与架构

云原生实战 语雀 官网 Kubernetes 文档 | Kubernetes 更新:移除 Dockershim 的常见问题 | Kubernetes B站课程:https://www.bilibili.com/video/BV13Q4y1C7hS/?p26 1.概述 概述 | Kubernetes 大规模容器编排系统 kubernetes具有以下特性&#xf…...

【Scala】——变量数据类型运算符

1. 概述 1.1 Scala 和 Java 关系 1.2 scala特点 Scala是一门以Java虚拟机(JVM)为运行环境并将面向对象和函数式编程的最佳特性结合在一起的静态类型编程语言(静态语言需要提前编译的如:Java、c、c等,动态语言如&#…...

嵌入式培训机构四个月实训课程笔记(完整版)-Linux系统编程第十天-Linux下mplayer音乐播放器练习题(物联技术666)

更多配套资料CSDN地址:点赞+关注,功德无量。更多配套资料,欢迎私信。 物联技术666_嵌入式C语言开发,嵌入式硬件,嵌入式培训笔记-CSDN博客物联技术666擅长嵌入式C语言开发,嵌入式硬件,嵌入式培训笔记,等方面的知识,物联技术666关注机器学习,arm开发,物联网,嵌入式硬件,单片机…...

线性回归(Linear Regression)

什么是机器学习 线性回归是一种用于建立变量之间线性关系的统计模型。在简单线性回归中,我们考虑一个自变量和一个因变量的关系,而在多元线性回归中,我们考虑多个自变量和一个因变量之间的关系。 简单线性回归 简单线性回归模型可以表示为…...

matlab绘图修改坐标轴数字字体大小及坐标轴自定义间隔设置

一、背景 在matlab使用plot函数绘图后,生成的图片坐标轴数字字体大小及间隔可能并不符合我们的要求,因此需要自定义修改,具体方法如下 二、修改坐标轴数字字体大小 只需添加以下命令即可: set(gca,FontName,Times New Roman,F…...

C++入门教程,C++基础教程(第一部分:从C到C++)七

由C语言发展而来的一种面向对象的编程语言。 第一部分、从C语言到C 本章讲述 C 语言的简史,以及 C 语言中与面向对象关系不大、C语言中没有的特性。这些特性能够增加编程的便利性,提高程序的可扩充性。 十三、如何规范地使用C内联函数 inline 关键字…...

【数据库】视图索引执行计划多表查询笔试题

文章目录 一、视图1.1 概念1.2 视图与数据表的区别1.3 优点1.4 语法1.5 实例 二、索引2.1 什么是索引2.2.为什么要使用索引2.3 优缺点2.4 何时不使用索引2.5 索引何时失效2.6 索引分类2.6.1.普通索引2.6.2.唯一索引2.6.3.主键索引2.6.4.组合索引2.6.5.全文索引 三、执行计划3.1…...

CentOS7本地部署分布式开源监控系统Zabbix并结合内网穿透实现远程访问

前言 Zabbix是一个基于WEB界面的提供分布式系统监视以及网络监视功能的企业级的开源解决方案。能监视各种网络参数,保证服务器系统的安全运营;并提供灵活的通知机制以让系统管理员快速定位/解决存在的各种问题。 本地zabbix web管理界面限制在只能局域…...

虚拟主机 如何上传大于100M的文件 php网站程序

问题 虚拟主机上传文件大小限制100m, 有时会遇到非常大的文件上传,上传过程中耗时非常久, 可能服务器的限制设置了上传文件尺寸,返回“413 request entity too large” 整体逻辑 前端:上传文件时,进行文…...

登录模块的实现

一.前期的准备工作 1.页面的布局 (1)表单的校验: 利用element-ui提供的文档绑定rules规则后实现校验 (2)跨域的配置 : 利用proxy代理来解决跨域的问题 (3)axios拦截器的配置 两个点:1. 在请求拦截的成功回调中,如果token,因为调用其它的接口需要token才能调取。 在请…...

Asp .Net Core系列:基于MySQL的DBHelper帮助类和SQL Server的DBHelper帮助类

文章目录 MySQLDBHelperMSSQLDBHelper MySQLDBHelper app.config中添加配置 <connectionStrings><add name"MySqlConn" connectionString"serverlocalhost;port3306;userroot;password123456;databasedb1;SslModenone"/></connectionStrin…...

【排序】对各种排序的总结

文章目录 前言1. 排序算法的复杂度及稳定性分析2. 排序算法的性能测试2.1 重复率较低的随机值排序测试2.2 重复率较高的随机值排序测试 前言 本篇是基于我这几篇博客做的一个总结&#xff1a; 《简单排序》&#xff08;含&#xff1a;冒泡排序&#xff0c;直接插入排序&#x…...

Apache ActiveMQ RCE CNVD-2023-69477 CVE-2023-46604

漏洞简介 Apache ActiveMQ官方发布新版本&#xff0c;修复了一个远程代码执行漏洞&#xff0c;攻击者可构造恶意请求通过Apache ActiveMQ的61616端口发送恶意数据导致远程代码执行&#xff0c;从而完全控制Apache ActiveMQ服务器。 影响版本 Apache ActiveMQ 5.18.0 before …...

C语言可变参数输入

本博文源于笔者正在学习的可变参数输入&#xff0c;可变参数是c语言函数中的一部分&#xff0c;下面本文就以一个很小的demo演示可变参数的编写 问题来源 想要用可变参数进行多个整数相加 方法源码 #include<stdio.h> #include<stdlib.h> #include<stdarg.h…...

飞天使-k8s知识点10-kubernetes资源对象3-controller

文章目录 pod探针 控制器 pod 概述&#xff1a; 1. pod是k8s中的最小单元 2. 一个pod中可以运行一个容器&#xff0c;也可以运行多个容器 3. 运行多个容器的话&#xff0c;这些容器是一起被调度的 4. Pod的生命周期是短暂的&#xff0c;不会自愈&#xff0c;是用完就销毁的实体…...

【Vue技巧】Vue2和Vue3组件上使用v-model的实现原理

ChatGPT4.0国内站点&#xff0c;支持GPT4 Vision 视觉模型&#xff1a;海鲸AI 在Vue中&#xff0c;v-model 是一个语法糖&#xff0c;用于在输入框、选择框等表单元素上创建双向数据绑定。当你在自定义组件中实现 v-model 功能时&#xff0c;你需要理解它背后的原理&#xff1a…...

linux系统中简单统计java项目代码行数信息

新建脚本文件&#xff08;最好在项目根目录下&#xff09;&#xff1a;count_java.shvi count_java.sh编辑内容&#xff1a;按一下键盘上的i键&#xff0c;屏幕左下角会出现 -- INSERT --&#xff0c;输入一下内容&#xff1a; #!/bin/bash find . -name "*.java" -p…...

Vue2项目构建优化实战:时间戳防缓存与资源压缩的配置详解

1. 为什么Vue2项目需要构建优化 最近接手了一个老项目的维护工作&#xff0c;发现每次前端更新后总有用户反馈页面显示异常。排查后发现是浏览器缓存惹的祸——用户访问的仍然是旧版本的静态资源。这让我意识到构建优化的重要性&#xff0c;特别是对于需要频繁更新的业务系统。…...

485总线硬件设计必看:电平匹配、TVS防护,还有exmodbus库快速上手

RS485是工业物联网的标配通信接口。合宙Air780EHV系列Cat.1模组凭借强大外设扩展能力&#xff08;LCD、摄像头、以太网、CAN等&#xff09;和LuatOS高效开发环境&#xff0c;支持TCP/MQTT/HTTP/Modbus等主流协议&#xff0c;是工业场景的高性价比之选。 本文聚焦RS485实战&…...

网站 SEO 标题要包含关键词吗

网站 SEO 标题要包含关键词吗&#xff1f;探讨最佳实践和SEO优化策略 在当今互联网时代&#xff0c;网站的SEO优化已经成为提升网站流量和用户体验的重要手段。其中&#xff0c;网站标题的优化也至关重要。网站 SEO 标题要包含关键词吗&#xff1f;这个问题备受争议&#xff0c…...

Transformer 从0到1:注意力机制的数学形式——Query, Key, Value 三元组

# Transformer 从0到1&#xff1a;注意力机制的数学形式——Query, Key, Value 三元组## 1. 引言&#xff1a;从序列建模的困境到注意力机制的诞生在深度学习的发展历程中&#xff0c;处理序列数据&#xff08;如文本、音频、时间序列&#xff09;一直是核心挑战之一。早期的循…...

英雄联盟智能工具League Akari:从效率提升到战术优化的全方位解决方案

英雄联盟智能工具League Akari&#xff1a;从效率提升到战术优化的全方位解决方案 【免费下载链接】League-Toolkit An all-in-one toolkit for LeagueClient. Gathering power &#x1f680;. 项目地址: https://gitcode.com/gh_mirrors/le/League-Toolkit 你是否曾在英…...

Windows11状态栏图标失效?手把手教你修复注册表关联(附一键脚本)

Windows 11状态栏图标失效的终极修复指南&#xff1a;从原理到实战 Windows 11以其现代化的界面设计吸引了不少用户&#xff0c;但系统自定义过程中难免会遇到各种"小脾气"。最近不少用户反馈&#xff0c;在尝试去除桌面图标小箭头后&#xff0c;状态栏的应用程序图标…...

C++vector迭代器失效全解析

深入讲解 C vector 的迭代器失效在 C 中&#xff0c;std::vector 是一个动态数组&#xff0c;它支持随机访问和高效的元素操作。迭代器是 C 中用于遍历容器元素的重要工具&#xff0c;类似于指针。但使用 vector 时&#xff0c;某些操作可能导致迭代器失效&#xff08;iterator…...

OpenClaw API配置失败?3步快速修复,免费额度高效利用

OpenClaw API配置失败&#xff1f;3步快速修复&#xff0c;免费额度高效利用引言 OpenClaw作为新一代数据采集平台&#xff0c;其API凭借高效稳定的特性已成为开发者首选的工具之一。但在实际接入过程中&#xff0c;配置失败问题频发&#xff0c;尤其对免费额度用户造成严重困扰…...

网络调试无从下手?Fiddler中文版让HTTP问题排查效率提升10倍的秘密

网络调试无从下手&#xff1f;Fiddler中文版让HTTP问题排查效率提升10倍的秘密 【免费下载链接】zh-fiddler Fiddler Web Debugger 中文版 项目地址: https://gitcode.com/gh_mirrors/zh/zh-fiddler 在当今复杂的网络环境中&#xff0c;开发者和测试工程师经常面临HTTP请…...