Tomcat安装及基本使用

2023-11-09

1. 什么是Web服务器

Web服务器是一种应用程序(软件),它封装了对HTTP协议的操作,使得开发人员无需直接操作协议,从而简化了Web开发。其主要功能是提供网上信息浏览服务。
Web服务器安装在服务器端,我们可以将自己编写的Web项目部署到Web Tomcat服务器软件中。一旦Web服务器软件启动,部署在其中的页面就可以通过浏览器直接访问。
使用Web服务器软件的步骤如下:

  • 准备静态资源
  • 下载安装Web服务器软件
  • 将静态资源部署到Web服务器上
  • 启动Web服务器,使用浏览器访问对应的资源
    在本文中,我们将使用Apache下的Tomcat软件进行演示。当然,除了Tomcat之外,还有许多其他优秀的Web服务器可供选择。
    在这里插入图片描述

2. Tomcat简介

Tomcat是Apache软件基金会的一个核心项目,是一个开源免费的轻量级Web服务器,支持Servlet/JSP少量JavaEE规范。
JavaEE是Java Enterprise Edition的缩写,即Java企业版。它指的是Java企业级开发的技术规范总和,包括13项技术规范,如JDBC、JNDI、EJB、RMI、JSP、Servlet、XML、JMS等。
由于Tomcat支持Servlet/JSP规范,因此它也被称为Web容器或Servlet容器。Servlet需要依赖Tomcat才能运行。
你可以从Tomcat的官网(https://tomcat.apache.org/)上下载适合你的版本进行使用。

3. Tomcat的基本使用

我们将分两部分学习Tomcat,首先是Tomcat的基本使用,包括下载、安装、卸载、启动和关闭。

3.1 下载

你可以直接从官网下载Tomcat软件,也可以使用本文提供的资源文件中已经下载好的版本。
在这里插入图片描述

3.2 安装

Tomcat是绿色版的,只需要解压即可。

  • 在D盘的software目录下,解压apache-tomcat-8.5.68-windows-x64.zip文件,解压后会得到一个apache-tomcat-8.5.68的目录,这样Tomcat就安装成功了。
  • 注意,解压时可以选择任意目录,但最好选择一个不包含中文和空格的目录,因为在项目部署时,路径中的中文或空格可能导致部署失败。
  • 打开apache-tomcat-8.5.68目录,你会看到以下目录结构,需要了解每个目录中包含的内容:
    • bin:包含两类文件,以.bat结尾的是Windows系统的可执行文件,以.sh结尾的是Linux系统的可执行文件。
    • webapps:用于项目部署的目录。
      至此,Tomcat的安装已经完成。
      在这里插入图片描述

3.3 卸载

卸载Tomcat非常简单,只需删除安装目录即可。

3.4 启动

双击bin目录下的startup.bat文件即可启动Tomcat。
启动后,通过浏览器访问http://localhost:8080,如果能看到Apache Tomcat的内容,说明Tomcat已经成功启动。
在这里插入图片描述

注意:在启动过程中,控制台可能会出现中文乱码,需要修改conf/logging.prooperties文件。
在这里插入图片描述

3.5 关闭

Tomcat有三种关闭方式:

  • 直接关闭运行窗口(不推荐,属于强制关闭)。
  • 运行bin目录下的shutdown.bat文件,进行正常关闭。
  • 使用Ctrl+C进行正常关闭。

3.6 配置

修改端口:

  • Tomcat的默认端口是8080,如果想要修改Tomcat启动的端口号,需要修改conf/server.xml文件。
  • 在这里插入图片描述

值得注意的是,HTTP协议的默认端口号是80。如果将Tomcat的端口号改为80,则访问Tomcat时无需输入端口号。

3.7 启动时可能出现的错误

在这里插入图片描述

  • 如果设置的端口号已被占用,启动时会报错。
  • 如果Tomcat启动窗口一闪而过,需要检查JAVA_HOME环境变量是否正确配置。
    在这里插入图片描述

以上就是Tomcat的基本使用介绍。
通过本文的学习,你需要掌握以下内容:

  1. Web服务器的作用:封装HTTP协议操作,简化开发,将Web项目部署到服务器中,对外提供网上浏览服务。
  2. Tomcat是一个轻量级的Web服务器,支持Servlet/JSP少量JavaEE规范,也被称为Web容器或Servlet容器。
    希望本文能对你理解Tomcat的基本使用有所帮助。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Tomcat安装及基本使用 的相关文章

  • 将 MouseListener 添加到面板

    我正在尝试将鼠标操作添加到我的面板中 这就是程序应该做的事情 编写一个程序 允许用户通过按三下鼠标来指定一个三角形 第一次按下鼠标后 画一个小点 第二次按下鼠标后 绘制一条连接前两个点的线 第三次按下鼠标后 绘制整个三角形 第四次按下鼠标会
  • 在 Java 中使用 Batik 检查和删除 SVG 中的属性

    这个问题基本上说明了一切 如何检查 SVG 是否具有 viewBox 属性 我正在使用蜡染库 我需要这个 因为我需要 至少 通知用户有一个 viewBox 属性 我可以删除它吗 使用 org w3c dom 类 您可以按照以下方式做一些事情
  • 使类只能从特定类实例化

    假设我有 3 节课class1 class2 and class3 我怎样才能拥有它class1只能通过实例化class2 class1 object new class1 但不是 class3 或任何其他类 我认为它应该与修饰符一起使用
  • 使用 Apache POI Excel 写入特定单元格位置

    如果我有一个未排序的参数 x y z 列表 是否有一种简单的方法将它们写入使用 POI 创建的 Excel 文档中的特定单元格 就好像前两个参数是 X 和Y 坐标 例如 我有如下行 10 4 100 是否可以在第 10 行第 4 列的单元格
  • 本地开发的 Azure Functions 扩展包版本问题

    我有一个带有队列触发器的 Java 11 Azure 函数 该函数在部署到 Azure 时按预期工作 并正确从定义的服务总线主题中提取消息 但是 运行相同的功能locally除非我回滚版本 否则不起作用Azure Functions 绑定扩
  • 在哪里保存选项值、重要文件的路径等[关闭]

    Closed 这个问题是基于意见的 help closed questions 目前不接受答案 我正在创建一个程序 需要设置一些选项值以及图像文件的一些路径 SQLite 数据库的路径 有关各种按钮上文本的一些信息 有关要使用哪个数据库的信
  • 这个等待通知线程语义的真正目的是什么?

    我刚刚遇到一些代码 它使用等待通知构造通过其其他成员方法与类中定义的线程进行通信 有趣的是 获取锁后 同步范围内的所有线程都会在同一锁上进行定时等待 请参见下面的代码片段 随后 在非同步作用域中 线程执行其关键函数 即 做一些有用的事情1
  • 如何在 MSSQL 中获取 CURRENT_DATE?

    我正在使用 jpa 3 o 和 Hibernate 我有一个命名查询 SELECT COUNT wt id FROM WPSTransaction wt WHERE wt createdDate gt CURRENT DATE WPSTra
  • Java:SortedMap、TreeMap、可比较?如何使用?

    我有一个对象列表 需要根据其中一个字段的属性进行排序 我听说 SortedMap 和 Comparator 是实现此目的的最佳方法 我是否要与正在排序的类实现 Comparable 还是创建一个新类 如何实例化 SortedMap 并传入
  • 生成 equals 和 hashcode 时忽略属性

    假设我有一个类 Customer public class Customer private String firstName private String lastName private String doNotAddMeToEqual
  • 用于层次结构树角色的 Spring Security / Java EE 解决方案

    我知道 Spring Security 非常适合标准角色和基于权限的授权 我不确定的是这种情况 系统中管理着 10 000 名员工 员工被组织成组织结构图 跨部门的谁向谁报告的树 其中一些员工是用户 这些用户仅被允许访问其职责范围内的员工
  • JUNIT 测试 void 方法

    我有一个充满 void 方法的 java 类 我想进行一些单元测试以获得最大的代码覆盖率 例如我有这个方法 protected static void checkifValidElements int arg1 int arg2 metho
  • 在 java 中运行外部应用程序但不要等待它完成

    我正在用java编写一个应用程序 允许我运行其他应用程序 为此 我使用了 Process 类对象 但当我这样做时 应用程序会等待进程结束 然后再退出 有没有办法在 Java 中运行外部应用程序 但不等待它完成 public static v
  • 如何从字符串中解析一个大整数? [复制]

    这个问题在这里已经有答案了 我有一个这样的方法 Integer parseInt myInt 不是这个整数变得很长 我得到以下异常 java lang NumberFormatException For input string 40001
  • 如何从intellij项目视图中隐藏不必要的文件?

    给定一个示例 gradle 项目 其项目结构如下所示 正如你所看到的 有很多东西你实际上不需要在想法中看到 但你需要它们存在 我知道下面被忽略的文件 文件夹类型Editor File Types但这些正在影响库和项目 idea 会在各处忽略
  • Java 中 JButton 的击键/热键

    最初我使用 JMenu 并建立热键以使用加速器工作 它运行得很好 现在我想在 JButton 中实现相同的行为 但我陷入困境 这是我编写的代码 请分享您的想法 以便我可以走上正确的道路 import javax swing import j
  • BadPaddingException:无效的密文

    我需要一些帮助 因为这是我第一次编写加密代码 加密代码似乎工作正常 但解密会引发错误 我得到的错误是 de flexiprovider api exceptions BadPaddingException 无效的密文 in the 解密函数
  • 如何以编程方式创建 CardView

    我正在开发一个 Android 应用程序Java Android Studio 我想在活动中创建CardView以编程方式 我想将以下属性设置为CardView layout width wrap content layout row 0
  • 如何从 JavaFX 中的另一个控制器类访问 UI 元素?

    我有一个使用 NetBeans 8 编写的 JavaFX Java 8 应用程序 没有SceneBuilder 我的应用程序有一个主窗口 该窗口有自己的 FXML 文件 primary fxml 和自己的控制器类 FXMLPrimaryCo
  • 如何使用自定义 JDK 构建 Jenkins 项目?

    我有一个常规的 Jenkins 实例 运行一些多分支管道 该实例在 JDK 11 上运行 因为 Jenkins 并不真正支持更高版本 没关系 但不好的是 我的所有管道似乎也都受到 Java 11 的限制 Jenkins 仅使用它自己也使用的

随机推荐

  • LogStash 启动报错

    报错信息如下 exception gt LogStash ConfigLoadingError message gt The following config files contains non ascii characters but
  • Ubuntu搭建Nginx服务器

    Ubuntu搭建Nginx服务器 安装Nginx 配置文件 全局配置文件 子配置文件管理 sites availables和sites enabled default配置文件 启动 停止 重启Nginx 启动 停止 重启 查询 其他设置 自
  • macbookpro接口叫什么_【科普】什么是雷电接口?苹果电脑MACBOOK PRO有吗?

    刚接触笔记本的朋友不知道USB C口是什么 也不知道雷电接口 Thunderbolt 是什么 只知道MACBOOK PRO有雷电3接口 简单来说 雷电接口是USB TYPE C的替代模式 在此了解 什么是USB TYPE C 什么是雷电接口
  • 二叉树前中后层序遍历,迭代实现

    文章目录 前序遍历 代码 Python 代码 C 中序遍历 代码 Python 代码 C 后序遍历 代码 C 后序遍历 进阶写法 代码 Python 代码 C 层序遍历 代码 Python 代码 C 总结 上一篇文章介绍了二叉树的几种遍历方
  • 简历被pass,笔试被淘汰,还有什么办法能直通面试?

    互联网是目前的热门行业 越来越多的年轻人也是一心想要往上扑 1 互联网行业处于成长期 科技行业扶持力度大 未来整个行业的上升空间巨大 我们都知道 两个人同时出发 搭乘巨轮比乘坐小船更容易走的更快更远 互联网行业就是那搜巨轮 借力使力 越早上
  • C++数据结构X篇_09_C++实现队列的顺序存储与链式存储

    本篇参考C 实现队列的顺序存储与链式存储整理 先搞懂结构框架 后期根据视频利用c对内容实现 也可以对c有更高的提升 文章目录 1 顺序存储 2 链式存储 队列是一种特殊的数据存储结构 与栈不同的是其数据存储与访问顺序为先进先出 形式如下 下
  • linux 块设备 dm,[CentOS7]dm块设备删除

    报错 root node 3 dev lsblk lsblk dm 3 获取设备路径失败 lsblk dm 3 获取设备路径失败 查看映射信息并删除 root node 3 dev dmsetup ls ceph adb6548e 8602
  • 读取resource根目录下的配置文件---标准

    读取配置文件 fileName conf json public String getConf String fileName String content try jsonFile ResourceUtils getFile classp
  • 快速排序-递归与分治

    include
  • 服务器虚拟化和桌面虚拟化

    服务器虚拟化和桌面虚拟化依托的都是KVM架构 两者的底层的东西是一样的 只不过是人为的将这个底层系统二次开发成不同的系统版本 有些功能做了限制 有些做了优化 这样的好处是 不同的场景可以使用不同的虚拟化系统 更好的满足客户的需求和发挥不同系
  • 织梦搜索时因关键词标红而导致页面样式错乱的解决方法

    使用织梦默认的搜索功能时 发现搜索某一关键词时 搜索展示页面样式错乱了 经过排查 确定是关键词标红引起的 出现此问题的原因 织梦搜索页面会将搜索关键词进行标红 字体颜色改为红色 处理 在代码中体现出来就是将关键词文字替换为套上font标签的
  • 对华为路由器配置DHCP实现IP地址的自动分配

    目录 0 题目 1 首先按照题意建立如下拓扑图 并划分子网 2 为路由器AR1进行基础设置 1 将系统名称改为r1 2 设置超时时长为0 永不超时 3 为路由器AR1两个接口配置IP地址 1 GE 0 0 0 2 GE 0 0 1 3 检查
  • 处理不同的请求--设置content-type

    content type的作用 在http协议中 content type用来告诉对方本次传输的数据的类型是什么 在请求头中设置content type来告诉服务器 本次请求携带的数据是什么类型的 在响应头中设置content type来告
  • 写在28岁,回看3年前的自己,庆幸当时入了软件测试这行

    为什么会学习软件测试 已经28岁了 算一下快过去3年了 刚毕业那会工作了一年 因为自己当时很迷茫 觉得自己挺废的 所以就没去工作就一直在家 家里固定每个月给点生活费 但还是没钱 但家里给了我一套房子 出门300米左右就是地铁站 自己一个人住
  • Java框架--Spring(轻量级容器框架)(入门+ioc)

    目录 一 概念 海绵hong对于ioc的理解 二 spring快速入门 1 最基本的spring实例 1 1javabean类 1 2beans xml 1 3 ioc容器使用 2 spring 容器结构 机制 2 1beanDefinit
  • kmalloc使用相关

    Kmalloc内存分配和malloc相似 除非被阻塞否则他执行的速度非常快 而且不对获得空间清零 Flags参数 include
  • swin-transformer训练自己的数据集<自留>

    使用swin transformer训练自己的数据集 lt 自留 gt 前期准备 数据处理 标注数据集 一 结构目录 二 要修改的地方 三 开始训练 四 训练过程结果 前期准备 数据处理 标注数据集 LabelMe gt COCO Labe
  • 24岁,月入15000:真正优秀的人,都在做一件事

    昨天 一位经常来转载我文章的编辑朋友找我聊了会 聊完之后 很想写篇文章来谈谈我内心的感受 他告诉我 下个月就要去深圳了 那边有一家公司希望他过去 毕业两年 24岁 月收入稳定在15000 用 年轻有为 来形容他 我觉得并不为过 和他相比起来
  • 服务器系统水星无线网卡,水星设置远程服务器

    水星设置远程服务器 内容精选 换一换 本章节介绍Dubbo框架下DTM使用的demo 使得Dubbo框架下的项目可以通过TCC模式快速接入DTM 其中 Dubbo的样例代码在导入样例工程过程中准备的dtm demo的dtm dubbo项目中
  • Tomcat安装及基本使用

    1 什么是Web服务器 Web服务器是一种应用程序 软件 它封装了对HTTP协议的操作 使得开发人员无需直接操作协议 从而简化了Web开发 其主要功能是提供网上信息浏览服务 Web服务器安装在服务器端 我们可以将自己编写的Web项目部署到W