玩转Tomcat:从安装到部署
文章目录
- 一、什么是 Tomcat
- 二、Tomcat 的安装与使用
- 2.1 下载安装
- 2.2 目录结构
- 2.3 启动 Tomcat
- 三、部署程序到 Tomcat
- 3.1 Windows环境
- 3.2 Linux环境
一、什么是 Tomcat
一看到 Tomcat,我们一般会想到什么?没错,就是他,童年的回忆:
但实际上,在 Java 中的 Tomcat 却是它:
Tomcat 是一个开源的 Java Servlet 容器,由 Apache 软件基金会开发和维护。Tomcat 全称是 Apache Tomcat,它被广泛用于部署 Java Web 应用程序。
简单来说,Tomcat 是一个 Web 服务器,用于处理 Java Servlet 的请求和响应。而 Servlet 是 Java 编写服务端的程序,用于处理客户端(通常是浏览器)发送的请求,并向客户端返回响应。
Tomcat 提供了一个运行环境,让开发者能够将自己编写的 Servlet 程序部署到服务器上,从而使 Web 应用程序能够在 Tomcat 服务器上运行。同时,Tomcat 支持 HTTP 协议,可以通过浏览器访问部署在 Tomcat 上的 Web 应用程序。
更重要的一点就是,Tomcat 是免费并且开源的,因此受到了广泛的欢迎和使用。它在 Java Web 开发中扮演着重要的角色,为开发者提供了一个稳定可靠的运行环境。
二、Tomcat 的安装与使用
2.1 下载安装
Tomcat 官网下载地址:https://tomcat.apache.org/download-80.cgi。
这里我选择安装的版本是 Tomcat 8:
选择.zip
类型的压缩包进行下载,然后解压放在一个全英文的文件路径下即可。(没错,安装就是这么简单!)
另外值得一提的是,Tomcat 的安装在 Windows 和 Linux 系统下的安装方法基本一样,即下载压缩包,然后解压即可。
2.2 目录结构
解压完成后,可以看到 Tomcat 的目录结构如下:
对 Tomcat 目录结构的简要说明:
bin
:包含可执行脚本和命令,用于启动和停止 Tomcat 服务器。其中最常见的文件是startup.sh
(或startup.bat
,Windows 下)用于启动 Tomcat,以及shutdown.sh
(或shutdown
,Windows 下)用于停止 Tomcat。conf
:包含了 Tomcat 的配置文件,这些配置文件用于配置 Tomcat 服务器的各种参数和属性。其中最重要的是server.xml
,它包含了 Tomcat 主要的配置,如端口号、连机器配置、虚拟主机等。lib
:包含了 Tomcat 服务器运行时需要的 Java 类库。这些类库包括 Tomcat 自身的类库,以及用于支持 Servlet 和 JSP(JavaServer Pages)的相关类库。logs
:包含了 Tomcat 服务器的日志文件,如访问日志、错误日志等。webapps
:用于部署 Web 应用程序的目录。将 Java Web 程序打包成 WAR 文件(Web 应用归档文件),然后将 WAR 文件放在这个目录下,Tomcat 会自动将其部署并运行。work
:包含了 Tomcat 在运行时生成的临时工作文件。这些文件用于储存 JSP 页面的编译结果以及其他临时数据。temp
:包含了 Tomcat 的临时文件。它主要用于存储上传文件时的临时数据,以及一些其他的临时文件。
lib
目录结构:
webapps
目录结构:
2.3 启动 Tomcat
在 Linux 环境中,执行 bin
目录下的 startup.sh
启动 Tomcat:
可以使用命令 netstat -anp | grep 端口号
查看 Tomcat 是否成功启动:
关于 Tomcat 使用的端口号说明:
在Tomcat服务器中,8080端口和8005端口是两个常见的默认端口,其用途分别如下:
- 8080端口:默认情况下,Tomcat 使用8080端口作为 HTTP 连接器(HTTP Connector)的默认端口。HTTP 连接器负责处理 HTTP 请求,允许用户通过 HTTP 协议访问部署在 Tomcat 上的 Web 应用程序。例如,当在浏览器中输入"http://127.0.0.1:8080/"(Tomcat 已在本地运行),就会看到 Tomcat 的默认欢迎页面或已部署的Web应用程序。
- 8005端口:8005端口是 Tomcat 服务器的 “Shutdown Port” (关闭端口)。它用于接收来自管理工具或者脚本的关闭命令,以
优雅的方式
来关闭 Tomcat 服务器。通过发送一个关闭命令到8005端口,Tomcat 将停止接受新的 HTTP 请求,并在当前的请求处理完成后正常关闭,确保未完成的请求能够顺利处理完毕。
在 Windows 系统下,可以通过双击 bin
目录下的 startup.bat
文件来启动 Tomcat 服务器:
当命令行出现的最后一条消息如下,表明启动 Tomcat 成功:
出现乱码的原因:
- Tomcat 默认按照
UTF-8
的编码方式处理中文,而 Windows 的cmd
默认是GBK
编码,所有会出现乱码的情况。- 如果使用 Linux 或者 IDEA 中的终端来启动 Tomcat,则没有乱码问题。
- 此处,Windows上出现的乱码不建议处理,因为涉及到修改
cmd
编码规则的问题。(大概率,Tomcat 也不值得在 Windows 上面运行)
另外最重要的一件事情是,如果想要运行 Tomcat 服务器,首先保证系统上已经安装好了 JDK,并正确的配置了环境变量。
三、部署程序到 Tomcat
这里以我的一个博客系统为例,分别将其打包部署到 Windows 和 Linux 环境下的 Tomcat 服务器。
3.1 Windows环境
将博客系统打包成 WAR 形式的文件:
然后将其复制到 Tomcat 的 webapps
目录下,然后启动 Tomcat 服务器:
此时,Tomcat 会自动将 WAR 包文件进行解压,此时就部署完成了,就可以通过浏览器来访问该程序:
3.2 Linux环境
将程序部署在 Linux 环境中的操作和在 Windows 一模一样,只需要将刚才哪个 WAR 包拷贝到 Tomcat 的 webapps
目录下即可:
相关文章:

玩转Tomcat:从安装到部署
文章目录 一、什么是 Tomcat二、Tomcat 的安装与使用2.1 下载安装2.2 目录结构2.3 启动 Tomcat 三、部署程序到 Tomcat3.1 Windows环境3.2 Linux环境 一、什么是 Tomcat 一看到 Tomcat,我们一般会想到什么?没错,就是他,童年的回忆…...

吃透《西瓜书》第四章 决策树定义与构造、ID3决策树、C4.5决策树、CART决策树
目录 一、基本概念 1.1 什么是信息熵? 1.2 决策树的定义与构造 二、决策树算法 2.1 ID3 决策树 2.2 C4.5 决策树 2.3 CART 决策树 一、基本概念 1.1 什么是信息熵? 信息熵: 熵是度量样本集合纯度最常用的一种指标,代表一个系统中蕴…...

复现宏景eHR存在任意文件上传漏洞(0day)
目录 一、漏洞描述 二、影响版本 三、资产测绘 四、漏洞复现 一、漏洞描述 北京宏景世纪软件股份有限公司(简称“宏景软件”)自成立以来始终专注于国有企事业单位人力与人才管理数智化(数字化、智能化)产品的研发和应用推广,是中国国有企事业单位人力与人才管理数智…...

unity连接MySQL数据库并完成增删改查
数据存储量比较大时,我就需要将数据存储在数据库中方便使用,尤其是制作管理系统时,它的用处就更大了。 在编写程序前,需要在Assets文件夹中创建plugins文件,将.dll文件导入,文件从百度网盘自取:…...

13个ChatGPT类实用AI工具汇总
在ChatGPT爆火后,各种工具如同雨后春笋一般层出不穷。以下汇总了13种ChatGPT类实用工具,可以帮助学习、教学和科研。 01 / ChatGPT for google/ 一个浏览器插件,可搭配现有的搜索引擎来使用 最大化搜索效率,对搜索体验的提升相…...

1-linux下mysql8.0.33安装
在互联网企业的日常工作/运维中,我们会经常用到mysql数据库,而linux下mysql的安装方式有三种: 1.mysql rpm安装 2.mysql二进制安装 3.mysql源码安装 今天就为大家讲讲linux下mysql8.0.33版本rpm方式的安装。 1.前提 1.1.系统版本 Cent…...

golang反射获取结构体的值和修改值
功能:根据id和反射技术封装 创建和更新人的查询 一、代码二、演示 一、代码 package coryCommonimport ("context""errors""github.com/gogf/gf/v2/container/gvar""github.com/tiger1103/gfast/v3/internal/app/system/dao&qu…...

中文大模型评估数据集——C-Eval
C-EVAL: A Multi-Level Multi-Discipline Chinese Evaluation Suite for Foundation Models https://arxiv.org/pdf/2305.08322v1.pdfhttps://github.com/SJTU-LIT/cevalhttps://cevalbenchmark.com/static/leaderboard.html Part1 前言 怎么去评估一个大语言模型呢? 在广泛…...

Unity 四元素
//-------------旋转------------ // //设置角度 (超过90或负数时,会设置-1结果是359这样的问题,可以使用下面旋转的方式) transform.rotate new Quaternion(0,0,0,0);//Quaternion四元数 transform.localEulerAngles new Vector3(0,0,0);//EulerA…...

如何入门python爬虫
对于初学者,想要入门python爬虫需要注意什么,如何快速入门呢? 首先需要明白四点: 熟悉python编程了解HTML了解网络爬虫的基本原理学习使用python爬虫的一些库与框架python编程 如果你不懂python,那么需要先学习python这门非常easy的语言(相对其它语言而言)。 编程语言…...

深入学习 Redis - 基于 Jedis 通过 Java 客户端操作 Redis
目录 一、Jedis 依赖 二、Java 客户端操控 redis 2.1、准备工作(ssh 隧道) 2.2、概要 2.2、string 2.3、hash 2.4、list 2.5、set 2.5、zset 一、Jedis 依赖 自己去 中央仓库 上面找. 二、Java 客户端操控 redis 2.1、准备工作(ssh 隧…...

019 - STM32学习笔记 - Fatfs文件系统(一) - FatFs文件系统初识
019 - STM32学习笔记 - Fatfs文件系统(一) - FatFs文件系统初识 最近工作比较忙,没时间摸鱼学习,抽空学点就整理一点笔记。 1、文件系统 在之前学习Flash的时候,可以调用SPI_FLASH_BufferWrite函数,将数…...

Selenium开发环境搭建
1.下载Python https://www.python.org/downloads/ 下载下来选择自己创建的路径进行安装,然后配置环境变量 cmd命令框查看 2.安装selenium cmd命令框输入: pip install selenium3.下载pycharm https://www.jetbrains.com/pycharm/download/#sec…...

解决 The ‘more_itertools‘ package is required
在使用爬虫获取维基百科数据时看到了一个很好的项目: 博客:https://blog.51cto.com/u_15919249/5962100 项目地址:https://github.com/wjn1996/scrapy_for_zh_wiki 但在使用过程中遇到若干问题,记录一下: The more_it…...

手把手教你在云环境炼丹(部署Stable Diffusion WebUI)
前几天写了一篇《手把手教你在本机安装Stable Diffusion秋叶整合包》的文章,有些同学反映对硬件的要求太高,显卡太TM贵了。今天我再分享一个云服务器炼丹的方法,方便大家快速入门上手,这个云服务不需要特殊网络设置,能…...

pytorch-gpu 极简安装
1、进入pytoch官网:PyTorch 找到pytorch-gpu版本,看到CUDA11.8、11.7、CPU,这里我选择安装CUDA11.8 2、下载CUDA Toolkit:CUDA Toolkit 11.8 Downloads | NVIDIA Developer 3、下载CUDANN:cuDNN Download | NVIDIA D…...

有道云笔记迁移到自建服务器Joplin
当前有道云笔记各项业务开始逐渐向会员靠拢,如一开始不受限的多端同步现在非会员限制成了两个终端,估计以后会有越来越多的免费内容会逐渐的向会员转移,因此博主开始考虑自建服务器来搞一个云笔记服务端。 因博主已有黑群晖,并且有…...

qt源码--事件系统之QAbstractEventDispatcher
1、QAbstractEventDispatcher内容较少,其主要是定义了一些注册接口,如定时器事件、socket事件、注册本地事件、自定义事件等等。其源码如下: 其主要定义了大量的纯虚函数,具体的实现会根据不同的系统平台,实现对应的方…...

深入了解Python中的os.path.join函数
深入了解Python中的os.path.join函数 1. 引言 在Python中,处理文件和目录路径是常见的任务。为了简化路径的拼接和操作,Python提供了os.path模块,其中的join函数是一个非常重要且常用的函数。本文将深入介绍os.path.join函数的用法和注意事…...

Node.js:execSync执行一个shell命令
默认输出是Buffer对象 const { execSync } require(child_process)let out execSync("echo hi") console.log(out); // <Buffer 68 69 0a>需要转为字符串 const { execSync } require(child_process)let out execSync("echo hi") console.log(…...

《入门级-Cocos2d 4.0塔防游戏开发》---第二课:游戏加载界面开发
目录 一、开发环境介绍 二、开发内容 2.1 修改窗口的大小。 2.2 添加加载场景相关代码 2.3 添加资源 三、显示效果 四、知识点 4.1 Sprite 4.2 定时器 一、开发环境介绍 操作系统:UOS1060专业版本。 cocos2dx:版本 环境搭建教程: 统信UOS下配…...

打卡力扣题目十二
#左耳听风 ARST 打卡活动重启# 目录 一、问题 二、解题方法一 三、解题方法二 关于 ARTS 的释义 —— 每周完成一个 ARTS: ● Algorithm: 每周至少做一个 LeetCode 的算法题 ● Review: 阅读并点评至少一篇英文技术文章 ● Tips: 学习至少一个技术技巧 ● Share: …...

QT服务器练习
#include "widget.h" #include "ui_widget.h"Widget::Widget(QWidget *parent): QWidget(parent), ui(new Ui::Widget) {ui->setupUi(this);//给服务器指针实例化空间server new QTcpServer(this); }Widget::~Widget() {delete ui; }//启动服务器按钮对…...

Vcenter 创建 虚拟机配置 Thin Provision 模式 disk
介绍 在vCenter中选择虚拟磁盘格式通常也取决于您的需求和使用情况。 vSphere支持多种虚拟磁盘格式,以下是一些常见的格式: Thick Provision Lazy Zeroed:这是vSphere中的默认格式。它会预分配虚拟磁盘所需的存储空间,但只有在虚…...

初识mysql数据库之事务的概念及操作
目录 一、数据库多客户端访问问题 1. 数据库的CURD无限制带来的问题 2. 如何解决CURD导致的问题 二、事务的概念 1. 什么是事务 2. 事务的四个属性 3. mysql对事务的管理 4. 为什么会有事务 5. 事务的版本支持 三、事务的操作 1. 事务提交方式 2. 事务操作的准备工…...

MPL-2.0(Mozilla Public License 2.0)
MPL-2.0(Mozilla Public License 2.0)是一种开源软件许可证,由 Mozilla 组织于2012年发布,用于授权开源项目。MPL-2.0 是 MPL-1.1 许可证的继任版本,旨在更好地适应现代开源软件的发展和使用。 MPL-2.0 许可证的主要特…...

Qt+OpenCV+VTK在VS2017中配置路径
QtOpenCVVTK在VS2017中配置路径 《Qt环境配置》《OpenCV环境配置》《VTK环境配置》 《Qt环境配置》 包含目录: D:\Qt\Qt5.12.11\5.12.11\msvc2017_64\include D:\Qt\Qt5.12.11\5.12.11\msvc2017_64\include\QtWidgets D:\Qt\Qt5.12.11\5.12.11\msvc2017_64\include…...

线性代数(应用篇):第五章:特征值与特征向量、第六章:二次型
文章目录 第5章 特征值与特征向量、相似矩阵(一) 特征值与特征向量1.定义2.性质3.求解(1)具体型矩阵试根法、多项式带余除法:三阶多项式分解因式 (2)抽象型矩阵 (二) 相似1.矩阵相似(1)定义(2)性质 2.相似对角化(1)定义(2)相似对角化的条件(n阶矩阵A可相…...

Java8实战-总结9
Java8实战-总结9 Lambda表达式把Lambda付诸实践:环绕执行模式第1步:记得行为参数化第2步:使用函数式接口来传递行为第3步:执行一个行为第4步:传递Lambda 使用函数式接口PredicateConsumerFunction原始类型特化 Lambda表…...

大数据开发面试必问:Hive调优技巧系列一
Hive必问调优 Hive 调优拆解:Hive SQL 几乎是每一位互联网分析师的必备技能,相信很多小伙伴都有被面试官问到 Hive 优化问题的经历。所以掌握扎实的 HQL 基础尤为重要,hive优化也是小伙伴应该掌握的一项技能,本篇文章具体从hive建表优化、HQ…...