玩转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 目录下即可:

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/54256.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

web前端框架Javascript之JavaScript 异步编程史

早期的 Web 应用中,与后台进行交互时,需要进行 form 表单的提交,然后在页面刷新后给用户反馈结果。在页面刷新过程中,后台会重新返回一段 HTML 代码,这段 HTML 中的大部分内容与之前页面基本相同,这势必造成…

[ 华为云 ] 云计算中Region、VPC、AZ 是什么,他们又是什么关系,应该如何抉择

前几天看到一个问答帖,我回答完了才发现这个帖子居然是去年的也没人回复,其中他问了一些华为云的问题,对于其中的一些概念,这里来总结讲解一下,希望对学习华为云的小伙伴有所帮助。 文章目录 区域(Region&a…

nodejs安装及多版本安装与TS环境搭建

nodejs安装及多版本安装与TS环境搭建 方法一: 普通安装nodejs,确定只能安装一个。网址:链接: 官网 不同系统下安装:不同系统下的nodejs 方法二: 借助工具nvm,安装多个nodejs,随时切换nodejs版本 什么是…

网络面试合集

传输层的数据结构是什么? 就是在问他的协议格式:UDP&TCP 2.1.1三次握手 通信前,要先建立连接,确保双方都是在线,具有数据收发的能力。 2.1.2四次挥手 通信结束后,会有一个断开连接的过程&#xff0…

Android水波纹按压效果(不按时透明)

按压后的效果&#xff08;左边"Cancle"是不按压的效果&#xff09; button_water_ripple_bg.xml <?xml version"1.0" encoding"utf-8"?> <ripple xmlns:android"http://schemas.android.com/apk/res/android"android:colo…

Java-API简析_java.io.FileReader类(基于 Latest JDK)(浅析源码)

【版权声明】未经博主同意&#xff0c;谢绝转载&#xff01;&#xff08;请尊重原创&#xff0c;博主保留追究权&#xff09; https://blog.csdn.net/m0_69908381/article/details/132038537 出自【进步*于辰的博客】 因为我发现目前&#xff0c;我对Java-API的学习意识比较薄弱…

Appium+python自动化(三十五)- 命令启动appium之 appium服务命令行参数(超详解)

简介 前边介绍的都是通过按钮点击启动按钮来启动appium服务&#xff0c;有的小伙伴或者童鞋们乍一听可能不信&#xff0c;或者会问如何通过命令行启动appium服务呢&#xff1f;且听一一道来。 一睹为快 其实相当的简单&#xff0c;不看不知道&#xff0c;一看吓一跳&#xf…

linux_进程状态

目录 一. 概念铺设 状态是什么&#xff1f; 传统操作系统的状态转换图 二. 传统操作系统状态 1. 运行 2. 阻塞 3. 挂起 三. linux 中的进程状态 1. 总体介绍 2. R 3. S 4. D kill -9 D vs S 5. T kill T vs S 6. Z 什么是僵尸状态&#xff1f; 僵尸进程的危害 …

详解Mybatis之自动映射 自定义映射问题

编译软件&#xff1a;IntelliJ IDEA 2019.2.4 x64 操作系统&#xff1a;win10 x64 位 家庭版 Maven版本&#xff1a;apache-maven-3.6.3 Mybatis版本&#xff1a;3.5.6 文章目录 一、Mybatis中的自动映射是什么&#xff1f;二、Mybatis中的自定义映射是什么&#xff1f;三、为什…

Spring的创建及使用

文章目录 什么是SpringSpring项目的创建存储Bean对象读取Bean对象getBean()方法 更简单的读取和存储对象的方式路径配置使用类注解存储Bean对象关于五大类注解使用方法注解Bean存储对象Bean重命名 Bean对象的读取 使用Resource注入对象Resource VS Autowired同一类型多个bean对…

租赁固定资产管理

智能租赁资产管理系统可以为企业单位提供RFID资产管理系统。移动APP资产管理&#xff0c;准确总结易损耗品和固定资金&#xff0c;从入库到仓库库存实时跟踪&#xff0c;控制出库和入库的全过程。同时&#xff0c;备件和耗材与所属资产设备有关&#xff0c;便于备件的申请和管理…

express学习笔记3 - 三大件

便于统一管理router&#xff0c;创建 router 文件夹&#xff0c;创建 router/index.js&#xff1a; const express require(express)// 注册路由 const router express.Router() router.get(/,function(req,res){res.send(让我们开始express之旅) }) /*** 集中处理404请求的…

【雕爷学编程】MicroPython动手做(27)——物联网之掌控板小程序3

知识点&#xff1a;什么是掌控板&#xff1f; 掌控板是一块普及STEAM创客教育、人工智能教育、机器人编程教育的开源智能硬件。它集成ESP-32高性能双核芯片&#xff0c;支持WiFi和蓝牙双模通信&#xff0c;可作为物联网节点&#xff0c;实现物联网应用。同时掌控板上集成了OLED…

python与深度学习(十二):CNN和猫狗大战二

目录 1. 说明2. 猫狗大战的CNN模型测试2.1 导入相关库2.2 加载模型2.3 设置保存图片的路径2.4 加载图片2.5 图片预处理2.6 对图片进行预测2.7 显示图片 3. 完整代码和显示结果4. 多张图片进行测试的完整代码以及结果 1. 说明 本篇文章是对上篇文章猫狗大战训练的模型进行测试。…

NIDEC COMPONENTS尼得科科宝滑动型DIP开关各系列介绍

今天AMEYA360对尼得科科宝电子滑动型DIP开关各系列参数进行详细介绍&#xff0c;方便大家选择适合自己的型号。 系列一、滑动型DIP开关 CVS 针脚数&#xff1a;1, 2, 3, 4, 8 安装类型&#xff1a;表面贴装&#xff0c;通孔 可水洗&#xff1a;无 端子类型&#xff1a;PC引脚(只…

PostgreSql 进程及内存结构

一、进程及内存架构 PostgreSQL 数据库运行时&#xff0c;使用如下命令可查询数据库进程&#xff0c;正对应上述结构图。 [postgreslocalhost ~]$ ps -ef|grep post postgres 8649 1 0 15:05 ? 00:00:00 /app/pg13/bin/postgres -D /data/pg13/data postgres …

一文掌握linux系统管理命令

欢迎关注博主 Mindtechnist 或加入【Linux C/C/Python社区】一起学习和分享Linux、C、C、Python、Matlab&#xff0c;机器人运动控制、多机器人协作&#xff0c;智能优化算法&#xff0c;滤波估计、多传感器信息融合&#xff0c;机器学习&#xff0c;人工智能等相关领域的知识和…

百度:文心千帆 网页搭建和示例测评

文章目录 官方文档代码示例token获取流式回答官网完整示例 制作一个网页端 官方文档 https://cloud.baidu.com/doc/WENXINWORKSHOP/s/flfmc9do2按照这个操作进行创建一个应用&#xff1a; 代码示例 token获取 # 填充API Key与Secret Key import requests import jsondef ma…

earth靶机详解

earth靶机复盘 靶场下载地址&#xff1a;https://download.vulnhub.com/theplanets/Earth.ova 这个靶场还是非常有意思的&#xff0c;值得去打一下。 我们对拿到的ip进行一个单独全面的扫描&#xff0c;发现有两个DNS解析。 就把这两条解析添加到hosts文件中去&#xff0c;要…

Java maven的下载解压配置(保姆级教学)

mamen基本概念 Maven项目对象模型(POM)&#xff0c;可以通过一小段描述信息来管理项目的构建&#xff0c;报告和文档的项目管理工具软件。 Maven 除了以程序构建能力为特色之外&#xff0c;还提供高级项目管理工具。由于 Maven 的缺省构建规则有较高的可重用性&#xff0c;所以…