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

Tomcat 新手入门指南

Tomcat 新手入门指南

Apache Tomcat 是一个开源的 Java Servlet 容器和 Web 服务器,广泛用于部署和运行 Java Web 应用程序。以下是 Tomcat 的入门指南,帮助你快速上手。

1. 安装 Tomcat

步骤 1: 下载 Tomcat

  • 访问 Apache Tomcat 官网。
  • 选择适合的版本(如 Tomcat 9.x)并下载压缩包(zip 或 tar.gz)。

步骤 2: 解压文件

  • 将下载的压缩包解压到指定目录,如 /opt/tomcatC:\tomcat

步骤 3: 设置环境变量

  • 在 Linux/macOS 上,编辑 ~/.bashrc~/.zshrc 文件,添加:
    export CATALINA_HOME=/opt/tomcat
    export PATH=$PATH:$CATALINA_HOME/bin
    
  • 在 Windows 上,通过系统属性设置 CATALINA_HOME 环境变量。

步骤 4: 启动 Tomcat

  • 在 Linux/macOS 上,运行:
    $CATALINA_HOME/bin/startup.sh
    
  • 在 Windows 上,运行:
    %CATALINA_HOME%\bin\startup.bat
    

步骤 5: 验证安装

  • 打开浏览器,访问 http://localhost:8080,看到 Tomcat 欢迎页面即表示安装成功。
2. 部署 Web 应用

步骤 1: 准备 WAR 文件

  • 将 Java Web 应用打包为 WAR 文件,如 myapp.war

步骤 2: 部署 WAR 文件

  • 将 WAR 文件复制到 $CATALINA_HOME/webapps 目录。
  • Tomcat 会自动解压并部署应用。

步骤 3: 访问应用

  • 打开浏览器,访问 http://localhost:8080/myapp
3. 配置 Tomcat

步骤 1: 修改端口

  • 编辑 $CATALINA_HOME/conf/server.xml,找到 <Connector> 标签,修改 port 属性:
    <Connector port="8080" protocol="HTTP/1.1" ... />
    

步骤 2: 配置用户角色

  • 编辑 $CATALINA_HOME/conf/tomcat-users.xml,添加管理员用户:
    <role rolename="manager-gui"/>
    <user username="admin" password="password" roles="manager-gui"/>
    

步骤 3: 重启 Tomcat

  • 修改配置后,重启 Tomcat 使更改生效。
4. 管理 Tomcat

步骤 1: 使用管理界面

  • 访问 http://localhost:8080/manager/html,使用配置的用户名和密码登录,管理应用。

步骤 2: 查看日志

  • 日志文件位于 $CATALINA_HOME/logs 目录,如 catalina.out

步骤 3: 停止 Tomcat

  • 在 Linux/macOS 上,运行:
    $CATALINA_HOME/bin/shutdown.sh
    
  • 在 Windows 上,运行:
    %CATALINA_HOME%\bin\shutdown.bat
    
5. 常见问题

问题 1: 端口冲突

  • 确保 8080 端口未被占用,或修改 server.xml 中的端口号。

问题 2: 权限不足

  • 在 Linux/macOS 上,确保 Tomcat 目录有适当的读写权限。

问题 3: 应用无法访问

  • 检查 WAR 文件是否正确部署,或查看日志文件排查问题。

总结

通过以上步骤,你应该能够成功安装、配置和管理 Tomcat,并部署 Java Web 应用。随着经验的积累,你可以进一步探索 Tomcat 的高级功能。

相关文章:

Tomcat 新手入门指南

Tomcat 新手入门指南 Apache Tomcat 是一个开源的 Java Servlet 容器和 Web 服务器&#xff0c;广泛用于部署和运行 Java Web 应用程序。以下是 Tomcat 的入门指南&#xff0c;帮助你快速上手。 1. 安装 Tomcat 步骤 1: 下载 Tomcat 访问 Apache Tomcat 官网。选择适合的版…...

Flink-DataStreamAPI-生成水印

下面我们将学习Flink提供的用于处理事件时间戳和水印的API&#xff0c;也会介绍有关事件时间、流转时长和摄取时间&#xff0c;下面就让我们跟着官网来学习吧 一、水印策略介绍 为了处理事件时间&#xff0c;Flink需要知道事件时间戳&#xff0c;这意味着流中的每个元素都需要…...

【单片机】ARM 处理器简介

ARM 公司简介 ARM&#xff08;Advanced RISC Machine&#xff09; 是英国 ARM 公司&#xff08;原 Acorn RISC Machine&#xff09; 开发的一种精简指令集&#xff08;RISC&#xff09; 处理器架构。ARM 处理器因其低功耗、高性能、广泛适用性&#xff0c;成为嵌入式系统、移动…...

Flutter——最详细原生交互(MethodChannel、EventChannel、BasicMessageChannel)使用教程

MethodChannel&#xff08;方法通道&#xff09; 用途&#xff1a;实现 双向通信&#xff0c;用于调用原生平台提供的 API 并获取返回结果。 场景&#xff1a;适合一次性操作&#xff0c;如调用相机、获取设备信息等。 使用步骤&#xff1a; Flutter 端&#xff1a;通过 Meth…...

Kafka常用指令(详细)

Kafka常用指令&#xff08;详细&#xff09; 启停命令 前台启动 前台启动命令 ./bin/kafka-server-start.sh config/server.properties 后台启动方式1 后台启动命令加上参数-daemon&#xff0c;窗口关闭之后kafka后台程序继续运行 ./bin/kafka-server-start.sh -daemon co…...

供应链工作效率如何提升

提升供应链工作效率可以从以下几个关键方面入手&#xff1a; 1. 优化供应链管理 数据驱动决策&#xff1a;利用AI和大数据分析&#xff0c;提高预测准确性&#xff0c;优化库存管理。供应链可视化&#xff1a;采用ERP&#xff08;企业资源计划&#xff09;和SCM&#xff08;供…...

1-001:MySQL的存储引擎有哪些?它们之间有什么区别?

MySQL 存储引擎 ├── InnoDB&#xff08;默认引擎&#xff09; │ ├── 事务支持&#xff1a;支持 ACID 和事务&#xff08;事务日志、回滚、崩溃恢复&#xff09; │ ├── 锁机制&#xff1a;支持行级锁&#xff0c;提高并发性能 │ ├── 外键支持&#xff1a;支持外键…...

Java/Kotlin逆向基础与Smali语法精解

1. 法律警示与道德边界 1.1 司法判例深度剖析 案例一&#xff1a;2021年某游戏外挂团伙刑事案 犯罪手法&#xff1a;逆向《王者荣耀》通信协议&#xff0c;修改战斗数据包 技术细节&#xff1a;Hook libil2cpp.so的SendPacket函数 量刑依据&#xff1a;非法经营罪&#xff…...

用AI学编程4——swift学习1

一个swift文件&#xff0c; 整理出swift从入门到精通的所有知识点&#xff0c; 给出注释&#xff0c; 给出这样的swift文件 以下是一个整合了 Swift 从入门到精通的主要知识点的 Swift 文件&#xff0c;包含了基础语法、面向对象编程、异常处理、集合框架、多线程、Lambda 表达…...

数据集构建与训练前准备

训练数据集目录结构与格式 作者笨蛋学法&#xff0c;先将其公式化&#xff0c;后面逐步自己进行修改&#xff0c;读者觉得看不懂可以理解成&#xff0c;由结果去推过程&#xff0c;下面的这个yaml文件就是结果&#xff0c;我们去推需要的文件夹(名字可以不固定&#xff0c;但是…...

在大型语言模型的提示词设计中,system、user和assistant三个角色的区别与联系

在大型语言模型的提示词设计中,system、user和assistant三个角色承担不同的功能,其区别与联系如下: 1. 角色定义与功能 system(系统指令) 作用:设定模型的整体行为、角色定位和任务框架。例如,“你是一位专业的科技作家”或“仅回答与医疗相关的问题”。特点:在多轮对话…...

Zabbix监控进程报警(Zabbix Monitoring Process Alarm)

zabbix监控进程占cpu、内存、磁盘RAID情况 1、cpu达到90%时报警 名称: cpu user percent gt 90% 表达式&#xff1a;{Template OS Linux:system.cpu.util[,idle].avg(1m)}<10 2、内存达到80%时报警 配置—主机(选择监控主机)—监控项—创建监控项 1、创建监控项 名称&…...

p5.js:sound(音乐)可视化,动画显示音频高低变化

本文通过4个案例介绍了使用 p5.js 进行音乐可视化的实践&#xff0c;包括将音频振幅转化为图形、生成波形图。 承上一篇&#xff1a;vite&#xff1a;初学 p5.js demo 画圆圈 cd p5-demo copy .\node_modules\p5\lib\p5.min.js . copy .\node_modules\p5\lib\addons\p5.soun…...

HAL库常用函数

一、通用函数 系统初始化&#xff1a; HAL_Init(): 初始化HAL库和系统时钟&#xff08;调用前需配置系统时钟源&#xff09;。 HAL_Delay(uint32_t Delay): 毫秒级阻塞延时&#xff08;基于SysTick定时器&#xff09;。 HAL_GetTick(): 获取系统运行时间&#xff08;毫秒计数…...

【Zinx】Day5-Part3:Zinx 的连接管理

目录 Day5-Part3&#xff1a;Zinx 的连接管理创建连接管理模块将连接管理模块集成到 Zinx 当中将 ConnManager 集成到 Server 当中在 Connection 的工厂函数中将连接添加到 ConnManagerServer 中连接数量的判断连接的删除 补充&#xff1a;连接的带缓冲发包方式补充&#xff1a…...

C语言:6.20字符型数据练习题

编写程序,输人一行数字字符(用回车结束),每个数字字符 的前后都有空格。 把这一行中的数字转换成一个整数。 例如,若输入(<CR>代表 Enter键):2 4 8 3<CR>则输出 整数:2483。 #include <stdio.h>int main() {char ch;int number 0;printf("请输入一行…...

SpringBoot Test详解

目录 spring-boot-starter-test 1、概述2、常用注解 2.1、配置类型的注解2.2、Mock类型的注解2.3、自动配置类型的注解2.4、启动测试类型的注解2.5、相似注解的区别和联系 3、SpringBootTest和Junit的使用 3.1、单元测试3.2、集成测试 4、MockMvc 4.1、简单示例4.2、自动配置4…...

CDefView::_GetPIDL函数分析之ListView_GetItem函数的参数item的item.mask 为LVIF_PARAM

CDefView::_GetPIDL函数分析之ListView_GetItem函数的参数item的item.mask 为LVIF_PARAM 第一部分&#xff1a; 1: kd> t SHELL32!CDefView::_GetPIDL: 001b:77308013 55 push ebp 1: kd> dv this 0x00000015 i 0n21 …...

Android Retrofit 框架注解定义与解析模块深度剖析(一)

一、引言 在现代 Android 和 Java 开发中&#xff0c;网络请求是不可或缺的一部分。Retrofit 作为 Square 公司开源的一款强大的类型安全的 HTTP 客户端&#xff0c;凭借其简洁易用的 API 和高效的性能&#xff0c;在开发者社区中广受欢迎。Retrofit 的核心特性之一便是通过注…...

项目上传到Gitee过程

在gitee上新建一个仓库 点击“克隆/下载”获取仓库地址 电脑上要装好git 在电脑本地文件夹右键“Git Bash Here” 依次执行如下命令 git init git remote add origin https://gitee.com/qlexcel/stm32-simple.git git pull origin master git add . git commit -m ‘init’…...

Wireshark解密不止于IPSec:一份TLS/SSL、HTTPS、SSH等常见加密协议的解密指南

Wireshark解密不止于IPSec&#xff1a;一份TLS/SSL、HTTPS、SSH等常见加密协议的解密指南 当你面对一个加密的网络流量时&#xff0c;是否曾感到无从下手&#xff1f;无论是调试HTTPS API调用、分析SSH连接问题&#xff0c;还是研究QUIC协议的行为&#xff0c;加密流量总是像一…...

EdgeRemover完整指南:三步彻底卸载微软Edge浏览器的专业方案

EdgeRemover完整指南&#xff1a;三步彻底卸载微软Edge浏览器的专业方案 【免费下载链接】EdgeRemover A PowerShell script that correctly uninstalls or reinstalls Microsoft Edge on Windows 10 & 11. 项目地址: https://gitcode.com/gh_mirrors/ed/EdgeRemover …...

前端开发者福音:用Vue.js开发的Beekeeper Studio,如何让SQL开发体验更‘现代’?

Vue.js与SQL工具的现代融合&#xff1a;Beekeeper Studio如何重塑开发者体验 当SQL开发者第一次打开Beekeeper Studio时&#xff0c;那种流畅的界面过渡和即时的语法补全反馈会让人误以为在使用一个现代Web应用——这恰恰是Vue.js赋予桌面应用的魔力。作为一款基于Electron和Vu…...

别再只懂PCA了!用Python手写LDA,从鸢尾花分类实战看监督降维的威力

别再只懂PCA了&#xff01;用Python手写LDA&#xff0c;从鸢尾花分类实战看监督降维的威力 鸢尾花数据集在机器学习领域就像"Hello World"之于编程——经典、简洁却蕴含丰富可能性。当大多数人用PCA处理这类数据时&#xff0c;我们往往忽略了数据本身携带的宝贵标签信…...

异构GPU推理优化:Tessera架构解析与实践

1. 异构GPU推理的性能瓶颈与挑战在当前的AI推理服务部署中&#xff0c;混合使用不同代际的GPU已经成为提升性价比的常见做法。比如将最新的H100与相对便宜的L40S搭配使用&#xff0c;或者将计算密集型的B200与内存优化的H100组合部署。然而&#xff0c;这种异构环境下的资源利用…...

Gemini Deep Research调用失败?5类报错代码详解+官方未公开的API绕过方案(限时技术内参)

更多请点击&#xff1a; https://intelliparadigm.com 第一章&#xff1a;Gemini Deep Research功能怎么用 Gemini Deep Research 是 Google 推出的面向专业研究者的增强型推理能力模块&#xff0c;专为长上下文分析、跨文档信息整合与假设验证设计。启用该功能需通过 Gemini …...

Speechless微博备份工具:3分钟学会完整导出PDF的终极指南

Speechless微博备份工具&#xff1a;3分钟学会完整导出PDF的终极指南 【免费下载链接】Speechless 把新浪微博的内容&#xff0c;导出成 PDF 文件进行备份的 Chrome Extension。 项目地址: https://gitcode.com/gh_mirrors/sp/Speechless 你是否曾担心珍贵的微博回忆突然…...

TS3380,TS3480,ts8220,ts6150,ts5380,G1810,G2000,G2010,G2800,G2810报错5B00,P07,E08,1700,5b04废墨垫清零,亲测有用。

下载&#xff1a;点这里下载 备用下载&#xff1a;https://pan.baidu.com/s/1WrPFvdV8sq-qI3_NgO2EvA?pwd0000 常见型号如下&#xff1a; G系列 G1000、G1100、G1200、G1400、G1500、G1800、G1900、G1010、G1110、G1120、G1410、G1420、G1411、G1510、G1520、G1810、G1820、…...

HUM4D数据集:无标记人体动作捕捉的挑战与评估

1. HUM4D数据集概述HUM4D是一个专门针对无标记人体动作捕捉技术评估的基准数据集&#xff0c;由计算机视觉研究团队开发。这个数据集的核心价值在于填补了现有动作捕捉基准在复杂场景下的空白——那些包含快速运动、严重遮挡、深度突变和身份混淆的真实挑战。在动作捕捉领域&am…...

Podgrab源码架构分析:深入理解Go语言播客管理工具的设计原理

Podgrab源码架构分析&#xff1a;深入理解Go语言播客管理工具的设计原理 【免费下载链接】podgrab A self-hosted podcast manager/downloader/archiver tool to download podcast episodes as soon as they become live with an integrated player. 项目地址: https://gitco…...