Apache Tomcat下载安装配置使用超详细
下载安装
tomcat官网
在此我们以Tomcat
9.0.81为例,点击下载压缩包,解压到自己的文件夹。
tar.gz
是linux
操作系统下的安装版本。zip
是windows
系统下的压缩版本。Windows Service Installer
是windows
操作系统下的exe
安装版本。
检查是否配置JDK
1.win+r,输入cmd回车
2.输入Java检查是否安装jdk
3.输入java -version查看自己的jdk版本
配置环境变量
1.右键此电脑——属性
点击高级系统设置
点击环境变量
2.新建系统变量
新建JAVA_HOME
,变量值:jdk的安装目录。
找到系统变量中的Path
然后编辑,新建%JAVA_HOME%\bin
、%JAVA_HOME%\jre\bin
。
新建CLASSPATH
,变量值:“.;%JAVA_HOME%\lib;%JAVA_HOME%\lib\dt.jar;%JAVA_HOME%\lib\tools.jar
”。
测试Tomcat
到 tomcat
目录下的 bin
目录,找到 startup.bat
文件,双击运行。
启动成功后不要关闭此窗口。
打开浏览器 输入 localhost:8080 或者127.0.0.1:8080。出现此页面即成功启动tomcat
。
关闭Tomcat
- 直接关闭 tomcat 启动窗口
- tomcat 目录下 bin 目录,查找其中的 shutdown.bat 命令,双击关闭服务器。
启动常见问题
1. 无法启动(闪退:cmd命令窗口出现一下,就消失)
主要原因:没有配置JAVA_HOME
系统变量。JAVA_HOME
环境变量中配置的是JDK
的安装路径,不包含bin
目录,不是Tomcat
的安装目录。
闪退的原因查看:可以在 startup.bat
文件末尾书写 pause
命令。让运行的窗口暂停。
2.端口被占用导致启动失败
如果启动的时候,发生异常问题,可能是端口被占用。
Tomcat服务器在启动的时候默认占用本地的8080端口,如果这个端口被占用,启动就会报错。
报错内容可以通过查询 tomcat 目录下的 logs 目录中 Catalina.当前系统年月日.log 文件查看:
解决方法:
- 结束当前占用此端口的进程,使用
netstat-ano
命令,找到进程并结束。 - 修改
tomcat
端口:
找到tomcat
目录下的config
目录,找到server.xml
文件,打开。
server.xml:服务器端口配置,服务器自身配置文件
3.启动时乱码问题
找到tomcat下的config文件夹,找到 logging.properties 并打开。
Tomcat目录介绍
在idea中配置Tomcat
首先创建一个New Project
项目,然后项目右键,点击Add Framework Support...
。
选择Web Application
,Versions
选择4.0。
在idea
右上角点击设置,点击Project Structure...
。
点击Project
,SDK
选择当前使用JDK
版本,Language level
选择17。
点击Modules
,点开项目名称,选择Web
,如果xml
地址和web
根目录存在则不做任何操作,不存在点击+添加。
点击Artifacts
,点击+,选择Web Application:Exploded
,选择From Modules...
。
在项目目录web下配置web.xml,下载Servlet的jar包,存放到lib目录下。
写一个Java
程序,点击Edit Configurations
。
点击+,选择Tomcat Server
下面的Local
。
点击deployment
,点击+,选择Artifact
。
运行程序后,在浏览器中输入配置的项目路径。
附加
启动tomcat服务后,浏览器访问http://localhost:8080/,出现页面的主要操作有
其中,Server Status
、Manager App
、Host Manager
需要设置用户名密码才能进入。设置方法:
找到 tomcat/conf/tomcat-users.xml
文件
在 <tomcat-users>
节点中添加如下代码:
其中, manager-gui
是进入 Manager App
和 Server Status
的权限。
在Manager App
界面可以看到当前tomcat
服务上所有的应用相关信息,在这里可以部署项目。
相关文章:

Apache Tomcat下载安装配置使用超详细
下载安装 tomcat官网 在此我们以Tomcat 9.0.81为例,点击下载压缩包,解压到自己的文件夹。 tar.gz是linux操作系统下的安装版本。zip是windows系统下的压缩版本。Windows Service Installer是windows操作系统下的exe安装版本。 检查是否配置JDK 1.…...

基于Seata的分布式事务方案
在Seata中,有4种分布式事务实现方案 XA、AT、TCC、Saga 其中XA利用了数据库的分布式事务特性,AT相当于框架去控制事务回滚。TCC手写三个方法,saga手写两个方法。 AT的性能和编写比较折中,是最常用的一种。TCC一些视频教程中介绍…...

指令跳转:原来if...else就是goto
目录 CPU 是如何执行指令的? 从 if…else 来看程序的执行和跳转 如何通过 if…else 和 goto 来实现循环? 小结 你平时写的程序中,肯定不只有 int a 1 这样最最简单的代码或者指令。我们总是要用到 if…else 这样的条件判断语句、while 和…...

【数据库系统概论】第四章数据库安全性
数据库的安全性:保护数据库以防止不合法使用所造成的数据泄露、更改或破坏 grant和revoke语法...

如何正确的关闭Redis服务器
Redis官方原生版本是在Linux平台上开发和测试的,但是大多数初学者都是使用Windows系统来学习如何开发的。因此,官方提供了一个叫做“Microsoft Open Tech Redis”的项目,该项目专门为Windows平台提供了一个官方支持的Redis版本,但…...
MySQL日志管理和权限管理(重点)
目录 一、日志管理1.错误日志2.二进制日志3.慢查询日志 二、权限管理(重点)1.用户登录管理2.创建用户及授权3.刷新权限4.权限简介5.查看权限7.修改密码8、删除用户9、查看密码复杂度 一、日志管理 日志类型 1、错误日志:启动,停止,关闭失败报…...
Maven 使用教程(二)
一、如何创建JAR并将其安装在本地存储库中? 制作JAR文件非常简单,可以通过执行以下命令来完成: mvn package现在可以查看${project.basedir}/target目录,您将看到生成的JAR文件。 现在,您需要将生成的工件࿰…...

[Swift]同一个工程管理多个Target
1.准备 先创建一个测试工程“ADemo”,右键其Target选择Duplicate,再复制一个Target为“ADemo2”。 再选择TARGETS下方的“”,添加一个APP到项目中,这个命名为“BDemo”。 2、管理多个Target 可以对三个target分别导入不同的框…...

DevExpress Reporting中文教程 - 如何在macOS等系统中生成导出报表文档
DevExpress Reporting是.NET Framework下功能完善的报表平台,它附带了易于使用的Visual Studio报表设计器和丰富的报表控件集,包括数据透视表、图表,因此您可以构建无与伦比、信息清晰的报表。 在本文中,我们将讨论如何在.NET MA…...
1967作为子字符串出现在单词中的字符串数目
java解法,程度:简单 说明 给你一个字符串数组 patterns 和一个字符串 word ,统计 patterns 中有多少个字符串是 word 的子字符串。返回字符串数目。 子字符串 是字符串中的一个连续字符序列。 示例 1: 输入:patter…...
CocosCreator 面试题(二)JavaScript中的prototype的理解
1、原型(prototype)的作用 在JavaScript中,每个函数都有一个特殊的属性叫做"prototype",它是一个对象。 原型(prototype)在JavaScript中用于实现对象之间的继承和共享属性。当创建一个函数时&am…...

python:从Excel或者CSV中读取因变量与多个自变量,用于训练机器学习回归模型,并输出预测结果
作者:CSDN @ _养乐多_ 本文详细记录了从Excel读取用于训练机器学习模型的数据,包括独立变量和因变量数据,以供用于机器学习模型的训练。这些机器学习模型包括但不限于随机森林回归模型(RF)和支持向量机回归模型(SVM)。随后,我们将测试数据集应用于这些模型,进行预测和…...

pycharm连接gitlab
1、下载安装gitlab 下载地址:Git - Downloading Package 下载后傻瓜式安装,注意勾选配置环境变量 未配置自己配置,电脑-属性-高级系统配置-环境变量 系统变量path:添加git安装目录下bin目录 2、检验安装完成 桌面右键git-open…...

【C/C++数据结构 - 2】:稳定性与优化揭秘,揭开插入排序、希尔排序和快速排序的神秘面纱!
文章目录 排序的稳定性插入排序插入排序的优化 希尔排序快速排序 排序的稳定性 稳定排序:排序前2个相等的数在序列中的前后位置顺序和排序后它们2个的前后位置顺序相同。(比如:冒泡、插入、基数、归并) 非稳定排序:排…...

PCL点云处理之基于强度特征的SIFT关键点提取法 (二百一十五)
PCL点云处理之基于强度特征的SIFT关键点提取法 (二百一十五) 一、算法介绍二、具体实现1.代码2.效果一、算法介绍 继续SIFT关键点的提取介绍,之前已经基于高程和颜色分别提取了关键点,这里是基于强度信息,若遇到文件无法读取强度问题,请参考上一篇博文,下面是具体的实现…...

uniapp打包配置
安卓: 首先不管是什么打包都需要证书,安卓的证书一般都是公司提供或者自己去申请。然后把包名等下图框住的信息填上,点击打包即可。 ios:ios需要使用mac到苹果开发者平台去申请证书,流程可以参考下边的链接 参考链接…...
人大金仓分析型数据库最大量限制
数据库支持的最大量限制: 维度 限制 数据库大小 无限 表大小 无限 行大小 1.6 TB 域大小 1 GB 每个表的行数 281474976710656 (2^48) 每个表 / 视图的列数 1600 每个表的索引数 无限 每个索引的列数 32 每个表的表级约束 无限 表名长度 63 字节 列出的“无限”…...

centos 里面的service自启动app.jar,出现两个java进程,app是同一个端口
当使用jps -lv查看java虚拟机进程 app.jar启动后,居然出现两个启动进程,而且他们的端口都一样,同一端口,是不允许启动两个相同app的。 使用进程ps查看进程工具 #ps -aux 参数说明: a: 显示跟当前终端关联的所有进…...

【算法|双指针系列No.7】leetcodeLCR 007. 三数之和
个人主页:兜里有颗棉花糖 欢迎 点赞👍 收藏✨ 留言✉ 加关注💓本文由 兜里有颗棉花糖 原创 收录于专栏【手撕算法系列专栏】【LeetCode】 🍔本专栏旨在提高自己算法能力的同时,记录一下自己的学习过程,希望…...

ubuntu修改IP地址
参考:ubuntu修改配置IP地址和DNS的方法总结(4种)_ubuntu设置ip地址-CSDN博客 面对ubuntu18以上的版本,主要有两种界面:图形化界面和纯命令行界面。 图形化界面配置比较简单,命令行配置稍许复杂,…...

19c补丁后oracle属主变化,导致不能识别磁盘组
补丁后服务器重启,数据库再次无法启动 ORA01017: invalid username/password; logon denied Oracle 19c 在打上 19.23 或以上补丁版本后,存在与用户组权限相关的问题。具体表现为,Oracle 实例的运行用户(oracle)和集…...
【杂谈】-递归进化:人工智能的自我改进与监管挑战
递归进化:人工智能的自我改进与监管挑战 文章目录 递归进化:人工智能的自我改进与监管挑战1、自我改进型人工智能的崛起2、人工智能如何挑战人类监管?3、确保人工智能受控的策略4、人类在人工智能发展中的角色5、平衡自主性与控制力6、总结与…...

基于FPGA的PID算法学习———实现PID比例控制算法
基于FPGA的PID算法学习 前言一、PID算法分析二、PID仿真分析1. PID代码2.PI代码3.P代码4.顶层5.测试文件6.仿真波形 总结 前言 学习内容:参考网站: PID算法控制 PID即:Proportional(比例)、Integral(积分&…...
渲染学进阶内容——模型
最近在写模组的时候发现渲染器里面离不开模型的定义,在渲染的第二篇文章中简单的讲解了一下关于模型部分的内容,其实不管是方块还是方块实体,都离不开模型的内容 🧱 一、CubeListBuilder 功能解析 CubeListBuilder 是 Minecraft Java 版模型系统的核心构建器,用于动态创…...

高危文件识别的常用算法:原理、应用与企业场景
高危文件识别的常用算法:原理、应用与企业场景 高危文件识别旨在检测可能导致安全威胁的文件,如包含恶意代码、敏感数据或欺诈内容的文档,在企业协同办公环境中(如Teams、Google Workspace)尤为重要。结合大模型技术&…...
【JavaSE】绘图与事件入门学习笔记
-Java绘图坐标体系 坐标体系-介绍 坐标原点位于左上角,以像素为单位。 在Java坐标系中,第一个是x坐标,表示当前位置为水平方向,距离坐标原点x个像素;第二个是y坐标,表示当前位置为垂直方向,距离坐标原点y个像素。 坐标体系-像素 …...
【学习笔记】erase 删除顺序迭代器后迭代器失效的解决方案
目录 使用 erase 返回值继续迭代使用索引进行遍历 我们知道类似 vector 的顺序迭代器被删除后,迭代器会失效,因为顺序迭代器在内存中是连续存储的,元素删除后,后续元素会前移。 但一些场景中,我们又需要在执行删除操作…...
适应性Java用于现代 API:REST、GraphQL 和事件驱动
在快速发展的软件开发领域,REST、GraphQL 和事件驱动架构等新的 API 标准对于构建可扩展、高效的系统至关重要。Java 在现代 API 方面以其在企业应用中的稳定性而闻名,不断适应这些现代范式的需求。随着不断发展的生态系统,Java 在现代 API 方…...

Scrapy-Redis分布式爬虫架构的可扩展性与容错性增强:基于微服务与容器化的解决方案
在大数据时代,海量数据的采集与处理成为企业和研究机构获取信息的关键环节。Scrapy-Redis作为一种经典的分布式爬虫架构,在处理大规模数据抓取任务时展现出强大的能力。然而,随着业务规模的不断扩大和数据抓取需求的日益复杂,传统…...

零知开源——STM32F103RBT6驱动 ICM20948 九轴传感器及 vofa + 上位机可视化教程
STM32F1 本教程使用零知标准板(STM32F103RBT6)通过I2C驱动ICM20948九轴传感器,实现姿态解算,并通过串口将数据实时发送至VOFA上位机进行3D可视化。代码基于开源库修改优化,适合嵌入式及物联网开发者。在基础驱动上新增…...