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

Windows 配置 Tomcat环境

Windows配置Tomcat

在这里插入图片描述

1. 介绍

Tomcat是一个开源的、轻量级的Java应用服务器,在Java Web开发领域应用广泛。以下是关于它的详细介绍:

一、基本概念与背景

  • 定义:Tomcat是Apache软件基金会(Apache Software Foundation)下的Jakarta项目中的一个核心项目,它实现了Java Servlet、JavaServer Pages(JSP)、Java Expression Language和Java WebSocket技术,为Java Web应用程序提供了运行环境。简单来说,它就像是一个容器,能够让我们编写的Java Web应用程序在其中运行。
  • 历史背景:它最初是由Sun Microsystems公司(现已被Oracle收购)的软件工程师James Duncan Davidson开发的,名字“Tomcat”是因为他希望这个服务器软件能够像猫一样轻巧、灵活。随着Java技术的发展,Tomcat也在不断更新和完善,成为了目前最流行的Java Web应用服务器之一。

二、主要功能特性

  • Servlet支持
    • Servlet是Java编写的服务器端小程序,用于处理客户端的请求并返回响应。Tomcat能够高效地管理Servlet的生命周期,包括加载、初始化、处理请求、销毁等过程。例如,当一个用户通过浏览器访问一个基于Servlet的Web应用中的某个URL时,Tomcat会根据配置找到对应的Servlet类,加载并实例化它,然后调用相应的方法来处理请求,最后将结果返回给用户。
  • JSP支持
    • JSP(JavaServer Pages)是一种动态网页技术,它允许在HTML页面中嵌入Java代码片段。Tomcat可以将JSP页面转换为Servlet,然后按照Servlet的方式进行处理。这样,开发人员可以在JSP页面中方便地混合使用HTML和Java代码,实现动态网页的功能,比如根据用户的登录状态显示不同的内容,或者从数据库中读取数据并展示在网页上。
  • 连接池管理
    • 在处理大量数据库连接请求的Web应用中,连接池是提高性能的关键。Tomcat提供了连接池管理功能,它可以预先创建一定数量的数据库连接,并将这些连接保存在一个池中。当Web应用需要访问数据库时,直接从连接池中获取连接,而不是每次都重新创建连接。使用完毕后,将连接归还到池中,以便其他请求使用。这大大减少了连接创建和销毁的开销,提高了应用的响应速度和性能。
  • 安全性
    • Tomcat提供了多种安全机制来保护Web应用。例如,它支持基于角色的访问控制(RBAC),可以对不同的用户角色分配不同的权限,从而限制用户对Web应用资源的访问。同时,它还可以与SSL/TLS协议集成,实现数据在传输过程中的加密,确保敏感信息(如用户登录密码)的安全性。

三、架构与工作原理

  • 架构层次
    • Tomcat的架构主要包括Server、Service、Connector和Container等组件。
    • Server表示整个Tomcat服务器,它可以包含一个或多个Service。Service是服务器的一个服务单元,它将Connector(连接器)和Container(容器)组合在一起。Connector负责接收客户端的请求,并将请求传递给Container进行处理。Container则是真正处理请求的核心组件,它根据请求的类型(如Servlet请求或JSP请求)进行相应的处理。
  • 工作流程
    • 当客户端(如浏览器)发送一个HTTP请求到Tomcat服务器时,首先由Connector组件接收这个请求。Connector会解析请求的协议(如HTTP/1.1)和相关信息(如请求的URL、请求方法等)。然后,它将请求传递给Container。Container根据请求的URL找到对应的Web应用(如果有多个Web应用部署在Tomcat上),再在Web应用中找到对应的Servlet或JSP来处理请求。处理完成后,将响应结果通过Connector返回给客户端。

四、应用场景与优势

  • 应用场景
    • 企业级Web应用开发:许多企业的内部管理系统、客户关系管理系统(CRM)、企业资源规划系统(ERP)等基于Java开发的Web应用都是部署在Tomcat服务器上的。例如,一个电商企业的订单管理系统,通过Tomcat运行,实现了对订单的创建、查询、修改和删除等功能。
    • 小型到中型Web项目:对于一些小型的网站、博客或者Web API项目,Tomcat也是一个很好的选择。它的轻量级特性使得它易于安装、配置和管理,能够快速地将Web应用部署上线。
  • 优势
    • 开源免费:作为开源软件,Tomcat可以免费使用,这大大降低了企业和开发者的成本。开发人员可以根据自己的需要对其进行定制化开发,也可以参与到Tomcat的社区贡献中。
    • 跨平台:Tomcat是基于Java开发的,而Java本身具有“一次编写,到处运行”的特性,所以Tomcat可以在多种操作系统(如Windows、Linux、Mac OS等)上运行,这使得开发人员可以灵活地选择服务器操作系统,而不用担心应用的兼容性问题。
    • 易于集成:它可以很容易地与其他Java技术和框架(如Spring、Hibernate等)集成。例如,在一个使用Spring框架构建的Web应用中,Tomcat可以作为应用服务器来运行Spring MVC应用,实现了高效的Web开发和部署。

2. 下载

对应的 jdk 有适配的 Tomcat 版本

下载地址:https://tomcat.apache.org/

可以看到版本已经到了 11,但是 jdk8 是比较流行的版本,兼容的有 Tomcat8 或者是 910 好像有闪退,具体可以去搜一下 jdk 对应版本 tomcat

在这里插入图片描述

我们这里演示下载 9 的(可能慢点,使用“魔法”会快一些)

在这里插入图片描述

下载成功之后解压即可

在这里插入图片描述

3. 配置环境变量

配置系统环境变量

变量名称:

CATALINA_HOME

变量值:

E:\Environment\Tomcat\apache-tomcat-9.0.98-windows-x64

在这里插入图片描述

编辑 Path 变量,新建 tomcatbin 文件路径

%CATALINA_HOME%\bin

在这里插入图片描述

最后点击所有确定

4. 检测是否安装成功

在命令行输入

startup.bat

在这里插入图片描述

在浏览器输入看到如下界面则为成功。

http://localhost:8080/

在这里插入图片描述

输入命令关闭

shutdown.bat

在这里插入图片描述

此时刷新浏览器则不会出现如上的 tomcat 界面了

到此正式安装成功,有兴趣的可以去搜搜相关命令(其实没必要,会这两个就差不多)

参考

  1. https://blog.csdn.net/qq_51630166/article/details/143228965
  2. https://www.cnblogs.com/collected/p/17740577.html

相关文章:

Windows 配置 Tomcat环境

Windows配置Tomcat 1. 介绍 Tomcat是一个开源的、轻量级的Java应用服务器,在Java Web开发领域应用广泛。以下是关于它的详细介绍: 一、基本概念与背景 定义:Tomcat是Apache软件基金会(Apache Software Foundation)下…...

【python从入门到精通】-- 第六战:列表和元组

🌈 个人主页:白子寰 🔥 分类专栏:重生之我在学Linux,C打怪之路,python从入门到精通,数据结构,C语言,C语言题集👈 希望得到您的订阅和支持~ 💡 坚持…...

Python | 数据可视化中常见的4种标注及示例

在Python的数据可视化中,标注(Annotation)技术是一种非常有用的工具,它可以帮助用户更准确地解释图表中的数据和模式。在本文中,将带您了解使用Python实现数据可视化时应该了解的4种标注。 常见的标注方式 文本标注箭…...

LearnOpenGL学习(高级OpenGL -> 高级GLSL,几何着色器,实例化)

完整代码见:zaizai77/Cherno-OpenGL: OpenGL 小白学习之路 高级GLSL 内建变量 顶点着色器 gl_PointSoze : float 输出变量,用于控制渲染 GL_POINTS 型图元时,点的大小。可用于粒子系统。将其设置为 gl_Position.z 时,可以使点…...

Scala学习记录

dao --------> 数据访问 mode ------> 模型 service ---->业务逻辑 Main -------> UI:用户直接操作,调用Service 改造UI层:...

vue使用pdfh5.js插件,显示pdf文件白屏

pdfh5,展示文件白屏,无报错 实现效果图解决方法(降版本)排查问题过程发现问题查找问题根源1、代码写错了?2、预览文件流的问题?3、pdfh5插件更新了,我的依赖包没更新?4、真相大白 彩蛋 实现效果图 解决方法…...

docker login 出错 Error response from daemon

在自己的Linux服务器尝试登陆docker出错 输入完用户密码之后错误如下: 解决方案 1.打开daemo文件: vim/etc/docker/daemon.json 2.常用的国内Docker 镜像源地址 网易云 Docker 镜像:http://hub-mirror.c.163.com 百度云 Docker 镜像&#x…...

Web 身份认证 --- Session和JWT Token

Web 身份认证 --- Session和JWT Token 方法一: 通过使用Session进行身份认证方法二: 通过JWT token进行身份认证什么是JWTJWT完整流程JWT攻防JWT 如何退出登录JWT的续签 方法一: 通过使用Session进行身份认证 用户第一次请求服务器的时候,服务器根据用户提交的相关信…...

UE5制作倒计时功能

设置画布和文本 文本绑定 格式化时间 转到事件图表,计算时间,时间结束后面的事件可以按自己需求写 进入关卡蓝图,添加倒计时UI...

Linux去除注释和空行

平时查看某些配置文件的时,我们会发现有很多注释(如:"#"开头的行),中间还有很多空行,看起来非常费劲,所以在这里总结下如何去除注释和空行的方法。 举例说明 这里选个简单点的文件&a…...

Elasticsearch 7.x入门学习-Spring Data Elasticsearch框架

1 Spring Data框架 Spring Data 是一个用于简化数据库、非关系型数据库、索引库访问,并支持云服务的开源框架。其主要目标是使得对数据的访问变得方便快捷,并支持 map-reduce 框架和云计算数据服务。 Spring Data 可以极大的简化 JPA的写法,…...

网络层IP协议(TCP)

IP协议: 在了解IP协议之前,我们市面上看到的"路由器"其实就是工作在网络层。如下图: 那么网络层中的IP协议究竟是如何发送数据包的呢? IP报头: IP协议的报头是比较复杂的,作为程序猿只需要我们重…...

计算机视觉中的边缘检测算法

摘要: 本文全面深入地探讨了计算机视觉中的边缘检测算法。首先阐述了边缘检测的重要性及其在计算机视觉领域的基础地位,随后详细介绍了经典的边缘检测算法,包括基于梯度的 Sobel 算子算法、Canny 边缘检测算法等,深入剖析了它们的…...

js 常用扩展方法总结+应用

文章目录 js 常用扩展方法总结扩展方法应用选择大型项目 中扩展方法应用选择小型项目中 扩展应用 js 常用扩展方法总结 函数原型(prototype)扩展方法 介绍:在JavaScript中,通过修改函数的prototype属性可以为该函数创建的所有对象…...

数据结构---图(Graph)

图(Graph)是一种非常灵活且强大的数据结构,用于表示实体之间的复杂关系。在图结构中,数据由一组节点(或称为顶点)和连接这些节点的边组成。图可以用于表示社交网络、交通网络、网络路由等场景。 1. 基本概…...

前端解析超图的iserver xml

前端解析超图的iserver xml const res await axios.get(url)const xmlDom new DOMParser().parseFromString(res.data, text/xml);// 获取versionconst version xmlDom.getElementsByTagNameNS(*, ServiceTypeVersion)[0].textContent// 获取layerconst layerDom xmlDom.ge…...

LocalForage 使用指南:统一管理 LocalStorage、WebSQL 和 IndexedDB

前言 在前端开发中,客户端数据存储是一个至关重要的环节。无论是用户偏好设置、缓存内容,还是表单数据,都需要一个高效、可靠的存储方案。浏览器原生提供的 LocalStorage、SessionStorage 和 IndexedDB 等 API 虽然功能强大,但使…...

代码随想录算法训练营第五天-哈希-242.有效的字母异位词

这道题的总体感觉不是很难&#xff0c;但是其完成的思想还是很有趣的利用数据下标来代表字母序列然后遍历两个字符串每个字符&#xff0c;给对应字母下标的数组中一个自增&#xff0c;另一个自减通过查看最后的数组内容是不是0&#xff0c;来判断是不是异位词 #include <io…...

学习maven(maven 项目模块化,继承,聚合)

前言 本篇博客的核心&#xff1a;理解maven 项目模块化&#xff0c;继承&#xff0c;聚合 的含义 maven 项目模块化 含义 maven项目模块化&#xff1a;使用maven 构建项目&#xff0c;管理项目的方式&#xff0c;我们可以将maven项目根据内在的关系拆分成很多个小项目【模块】…...

KDD 2025预讲会:10位一作的论文分享与话题思辨|12月18日全天直播

点击蓝字 关注我们 AI TIME欢迎每一位AI爱好者的加入&#xff01; 圆桌思辨&#xff1a;一作们的KDD 2025投稿经验分享与热点探讨 1. KDD 2025 与往年相比有哪些新变化&#xff1f;两次投稿周期的新规则有哪些影响&#xff1f; 2. 第一篇KDD的工作是如何成功被接收的&#xff1…...

OmenSuperHub终极指南:简单三步掌控暗影精灵硬件性能

OmenSuperHub终极指南&#xff1a;简单三步掌控暗影精灵硬件性能 【免费下载链接】OmenSuperHub 项目地址: https://gitcode.com/gh_mirrors/om/OmenSuperHub 你是否厌倦了官方Omen Gaming Hub的臃肿体积和烦人广告&#xff1f;是否希望获得纯净的硬件控制体验&#xf…...

5分钟掌握:PowerToys Image Resizer让图片批量处理效率提升10倍

5分钟掌握&#xff1a;PowerToys Image Resizer让图片批量处理效率提升10倍 【免费下载链接】PowerToys Microsoft PowerToys is a collection of utilities that supercharge productivity and customization on Windows 项目地址: https://gitcode.com/GitHub_Trending/po/…...

三极管信号滤波原理与工程实践

1. 三极管在信号滤波中的独特应用作为一名嵌入式硬件工程师&#xff0c;我经常需要处理各种传感器信号。最近在无刷电机驱动项目中&#xff0c;遇到了霍尔信号毛刺干扰的问题。传统教科书上总是强调三极管的放大作用&#xff0c;但实际工程中&#xff0c;我发现三极管在信号滤波…...

2026 API 中转平台选型报告:从冗余性到工程效率

1. 4SAPI —— 商业生产的“压舱石”4SAPI 在 2026 年的技术站位极其稳固&#xff0c;主要得益于其对**企业级 SLA&#xff08;服务等级协议&#xff09;**的严苛执行。核心逻辑&#xff1a;其底层架构采用了类似多云 CDN 的分发机制。当上游官方接口&#xff08;如 OpenAI 或 …...

别再只玩单机了!用AirSim+Python实现你的第一个无人机编队(附完整代码)

从单机到编队&#xff1a;用AirSim和Python打造你的第一支无人机小队 想象一下&#xff0c;当你第一次在AirSim中成功让无人机起飞时的兴奋感——现在&#xff0c;是时候将这份快乐乘以N倍了。本文将带你跨越单机操作的舒适区&#xff0c;进入无人机编队控制的新世界。不需要复…...

千问3.5-2B轻量化部署教程:边缘设备适配可能性分析与CPU回退方案说明

千问3.5-2B轻量化部署教程&#xff1a;边缘设备适配可能性分析与CPU回退方案说明 1. 模型简介 千问3.5-2B是Qwen系列中的小型视觉语言模型&#xff0c;专为边缘计算场景优化设计。这个2B参数量的版本在保持视觉理解能力的同时&#xff0c;大幅降低了硬件需求。 模型核心能力…...

告别重复造轮子:用快马AI一键生成openclaw项目高效串口调试工具

在机器人开发过程中&#xff0c;串口通信是最基础也最频繁使用的功能之一。无论是传感器数据采集、电机控制指令下发&#xff0c;还是与各种硬件模块的交互&#xff0c;都离不开串口通信的支持。然而每次新项目都要从头实现串口通信功能&#xff0c;不仅浪费时间&#xff0c;还…...

从原理到实践:深入理解Shellcode免杀技术及其对抗策略

Shellcode免杀技术的深度解析与对抗策略演进 在网络安全攻防对抗的永恒博弈中&#xff0c;Shellcode免杀技术始终占据着特殊地位。不同于传统的恶意软件检测规避&#xff0c;Shellcode免杀更注重代码层面的"隐形"能力&#xff0c;其核心在于让关键载荷在内存中执行时…...

【T型三电平仿真】SPWM调制中的单双极性载波特性对比

1. T型三电平逆变器基础认知 第一次接触T型三电平拓扑时&#xff0c;我被它精巧的结构设计惊艳到了。与传统的两电平逆变器相比&#xff0c;这种拓扑在每相桥臂上增加了两个钳位开关管&#xff0c;形成了独特的"T"字形结构。实际搭建电路时&#xff0c;你会发现它的输…...

算法对齐还是实战突围?解构GEO优化中方法论与实践的权重博弈

在生成式人工智能&#xff08;AIGC&#xff09;重塑全球信息检索范式的当下&#xff0c;生成式引擎优化&#xff08;Generative Engine Optimization, GEO&#xff09;已从一种前沿概念演变为品牌流量增长的底层操作系统。随着大语言模型&#xff08;LLM&#xff09;与检索增强…...