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

玩转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 目录结构的简要说明:

  1. bin:包含可执行脚本和命令,用于启动和停止 Tomcat 服务器。其中最常见的文件是 startup.sh(或 startup.bat,Windows 下)用于启动 Tomcat,以及shutdown.sh(或 shutdown,Windows 下)用于停止 Tomcat。
  2. conf:包含了 Tomcat 的配置文件,这些配置文件用于配置 Tomcat 服务器的各种参数和属性。其中最重要的是 server.xml,它包含了 Tomcat 主要的配置,如端口号、连机器配置、虚拟主机等。
  3. lib:包含了 Tomcat 服务器运行时需要的 Java 类库。这些类库包括 Tomcat 自身的类库,以及用于支持 Servlet 和 JSP(JavaServer Pages)的相关类库。
  4. logs:包含了 Tomcat 服务器的日志文件,如访问日志、错误日志等。
  5. webapps:用于部署 Web 应用程序的目录。将 Java Web 程序打包成 WAR 文件(Web 应用归档文件),然后将 WAR 文件放在这个目录下,Tomcat 会自动将其部署并运行。
  6. work:包含了 Tomcat 在运行时生成的临时工作文件。这些文件用于储存 JSP 页面的编译结果以及其他临时数据。
  7. temp:包含了 Tomcat 的临时文件。它主要用于存储上传文件时的临时数据,以及一些其他的临时文件。

lib目录结构:

webapps目录结构:

2.3 启动 Tomcat

在 Linux 环境中,执行 bin 目录下的 startup.sh 启动 Tomcat:

可以使用命令 netstat -anp | grep 端口号查看 Tomcat 是否成功启动:

关于 Tomcat 使用的端口号说明:

在Tomcat服务器中,8080端口和8005端口是两个常见的默认端口,其用途分别如下:

  1. 8080端口:默认情况下,Tomcat 使用8080端口作为 HTTP 连接器(HTTP Connector)的默认端口。HTTP 连接器负责处理 HTTP 请求,允许用户通过 HTTP 协议访问部署在 Tomcat 上的 Web 应用程序。例如,当在浏览器中输入"http://127.0.0.1:8080/"(Tomcat 已在本地运行),就会看到 Tomcat 的默认欢迎页面或已部署的Web应用程序。
  2. 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(…...

pam_env.so模块配置解析

在PAM&#xff08;Pluggable Authentication Modules&#xff09;配置中&#xff0c; /etc/pam.d/su 文件相关配置含义如下&#xff1a; 配置解析 auth required pam_env.so1. 字段分解 字段值说明模块类型auth认证类模块&#xff0c;负责验证用户身份&am…...

uniapp微信小程序视频实时流+pc端预览方案

方案类型技术实现是否免费优点缺点适用场景延迟范围开发复杂度​WebSocket图片帧​定时拍照Base64传输✅ 完全免费无需服务器 纯前端实现高延迟高流量 帧率极低个人demo测试 超低频监控500ms-2s⭐⭐​RTMP推流​TRTC/即构SDK推流❌ 付费方案 &#xff08;部分有免费额度&#x…...

k8s业务程序联调工具-KtConnect

概述 原理 工具作用是建立了一个从本地到集群的单向VPN&#xff0c;根据VPN原理&#xff0c;打通两个内网必然需要借助一个公共中继节点&#xff0c;ktconnect工具巧妙的利用k8s原生的portforward能力&#xff0c;简化了建立连接的过程&#xff0c;apiserver间接起到了中继节…...

Java毕业设计:WML信息查询与后端信息发布系统开发

JAVAWML信息查询与后端信息发布系统实现 一、系统概述 本系统基于Java和WML(无线标记语言)技术开发&#xff0c;实现了移动设备上的信息查询与后端信息发布功能。系统采用B/S架构&#xff0c;服务器端使用Java Servlet处理请求&#xff0c;数据库采用MySQL存储信息&#xff0…...

从 GreenPlum 到镜舟数据库:杭银消费金融湖仓一体转型实践

作者&#xff1a;吴岐诗&#xff0c;杭银消费金融大数据应用开发工程师 本文整理自杭银消费金融大数据应用开发工程师在StarRocks Summit Asia 2024的分享 引言&#xff1a;融合数据湖与数仓的创新之路 在数字金融时代&#xff0c;数据已成为金融机构的核心竞争力。杭银消费金…...

vue3 daterange正则踩坑

<el-form-item label"空置时间" prop"vacantTime"> <el-date-picker v-model"form.vacantTime" type"daterange" start-placeholder"开始日期" end-placeholder"结束日期" clearable :editable"fal…...

node.js的初步学习

那什么是node.js呢&#xff1f; 和JavaScript又是什么关系呢&#xff1f; node.js 提供了 JavaScript的运行环境。当JavaScript作为后端开发语言来说&#xff0c; 需要在node.js的环境上进行当JavaScript作为前端开发语言来说&#xff0c;需要在浏览器的环境上进行 Node.js 可…...

轻量级Docker管理工具Docker Switchboard

简介 什么是 Docker Switchboard &#xff1f; Docker Switchboard 是一个轻量级的 Web 应用程序&#xff0c;用于管理 Docker 容器。它提供了一个干净、用户友好的界面来启动、停止和监控主机上运行的容器&#xff0c;使其成为本地开发、家庭实验室或小型服务器设置的理想选择…...

验证redis数据结构

一、功能验证 1.验证redis的数据结构&#xff08;如字符串、列表、哈希、集合、有序集合等&#xff09;是否按照预期工作。 2、常见的数据结构验证方法&#xff1a; ①字符串&#xff08;string&#xff09; 测试基本操作 set、get、incr、decr 验证字符串的长度和内容是否正…...

ubuntu中安装conda的后遗症

缘由: 在编译rk3588的sdk时&#xff0c;遇到编译buildroot失败&#xff0c;提示如下&#xff1a; 提示缺失expect&#xff0c;但是实测相关工具是在的&#xff0c;如下显示&#xff1a; 然后查找借助各个ai工具&#xff0c;重新安装相关的工具&#xff0c;依然无解。 解决&am…...