JavaWeb——Web入门(8/9)- Tomcat:基本使用(下载与安装、目录结构介绍、启动与关闭、可能出现的问题及解决方案、总结)

目录

基本使用内容

下载与安装

目录结构介绍

启动与关闭

启动

关闭

可能出现的问题及解决方案

问题一:启动时窗口一闪而过

问题二:端口号冲突

问题三:部署应用程序

总结


基本使用内容

Tomcat 服务器在 Java Web 开发中扮演着至关重要的角色,其基本使用涵盖了多个关键环节,对开发人员高效构建和部署 Web 应用起着举足轻重的作用。

Tomcat 服务器的基本使用包括下载、安装、卸载、启动、访问、部署等一系列操作。

下载与安装

  • 下载:官网下载,地址:Apache Tomcat® - Apache Tomcat 9 Software Downloads

对于 Tomcat 的下载,我们直接去访问官方网站,就可以下载到一个对应的安装包。(可以选择压缩包的格式)

  • 安装:绿色版,直接解压即可

由于 Tomcat 和 Maven 一样,都是绿色版的。我们直接将压缩包解压出来,Tomcat 就安装完成了。如果我们要卸载,直接将解压后的这个目录删除掉就可以。

目录结构介绍

安装完成之后,那我们还需要介绍一下 Tomcat 解压出来的这几个文件夹它们的含义。

首先第一个,bin 目录存放的是可执行文件。我们要启动 Tomcat、要停止 Tomcat,都要去访问 bin 目录下的可执行文件。

第二个是 conf,这个存放的是 Tomcat 当中的配置文件。

第三个,lib 内部存放的是 Tomcat 依赖的 jar 包。因为 Tomcat 是基于 Java 开发的。

再往下走,logs 存放的是日志文件。Tomcat 开始运行所产生的一些日志,都存放在 logs 这个文件夹下。

temp 是临时文件。

webapps 存放的是应用程序的发布目录。也就是说我们要部署应用程序,就需要将应用程序放在webapps 这个目录下。

work 是 Tomcat 的工作目录,是服务器在运行过程中用于存储临时文件、编译结果和中间状态信息的地方。

启动与关闭

启动

  • 启动:双击:bin\startup.bat 可执行文件

启动 Tomcat,我们只需要访问 bin 目录下的一个脚本文件,叫做 startup.bat。

我们直接双击一下这个脚本,就可以将 Tomcat 启动起来。Tomcat 运行起来之后,默认占用的端口号是 8080。

如果日志中的中文出现乱码,是因为在 Tomcat 默认的配置当中,控制台输出日志这一块的编码默认是 UTF-8,我们把这个选项改为 GBK 就可以了。

我们直接将当前 Tomcat 停掉,来修改一下这项配置。到conf目录下,有一个叫做 logging.properties 的文件。

打开它,去找控制台编码,

Ctrl handler 点 incode,把这个 UTF-8 改为 GBK就可以了。Ctrl+S 保存一下。直接将这份配置文件关掉。然后再次打开 bin 目录,双击 startup.bat

现在看中文就没有出现乱码了

关闭

  • 直接×掉运行窗口:强制关闭
  • bin\shutdown.bat:正常关闭
  • Ctrl+C:正常关闭

停掉 Tomcat 的方式,有这么三种。第一种你可以直接点击这个窗口上面的这个叉,就可以将这个Tomcat 强制关闭掉了。

第二种方式,就是你去点击这个 shutdown.bat 文件(bin目录下),双击一下就可以将 Tomcat 关闭掉,这是正常停止。

第三种,就是直接按 Ctrl+C 也是正常关闭。

可能出现的问题及解决方案

问题一:启动时窗口一闪而过

我们在启动 Tomcat 的时候,双击 startup.bat 这个批处理文件,双击之后这个黑窗口一闪而过。

那这个时候就说明你的 JAVA_HOME 这个环境变量配置的是有问题的。

JAVA_HOME 环境变量的配置这里就不再赘述了。

问题二:端口号冲突

如果我们在启动 Tomcat 的时候,报出了错误,叫做 BindException,那么就说明端口号冲突了。

如果出现端口冲突,我们就需要找到对应的程序,将其关闭掉。

或者可以打开你的任务管理器,打开任务管理器之后点击详细信息,在这个里面去找你的 Java 进程就可以。一般 8080 端口,基本上都是 Java 进程占用的。

将占用8080端口的进程结束掉之后,我们再次启动 Tomcat就可以了

如果不能关闭占用端口的程序,也可以考虑修改一下 Tomcat 的端口号。只需要操作一份配置文件,在 config 下有一份配置文件,叫做 server.xml。

我们只需要把里面的 post 等于 8080 这个默认项,修改一下就可以。

关于这个端口号,还有一个注意事项。

注意事项:

  • HTTP协议默认端口号为80,如果将Tomcat端口号改为80,则将来访问Tomcat时,将不用输入端口号。

我们需要说明一下。HTTP 协议默认端口号是 80。如果你把 Tomcat 的端口号这一块,由 8080 改为 80,那将来你在访问这个 Tomcat 的时候,你是不用输入端口号的。

我们可以打开浏览器,现在我 Tomcat 监听的是 8080,不是 80。我直接访问 localhost:80,我回车之后大家看一下效果。我回车大家会看到,只有 localhost ,冒号 80 不见了。

这就是因为 HTTP 协议默认端口就是 80,你加了冒号 80 和你不加效果是一样的,所以浏览器会自动的把这个 80 给省略掉了.

问题三:部署应用程序

我们怎么往 Tomcat 当中部署应用程序呢?

只需要将我们的项目,放置在 webapps 这个目录下,部署就完成了。

我们再来演示一下。

我们直接在webapps这个目录下新建一个 Test目录,然后把我们之前写的请求方式演示的网页复制进去。

然后我们就可以直接打开浏览器,来访问:

总结

这一小节演示了一下 Tomcat 的基本使用,主要讲解了这么几个方面。

首先了解了 Tomcat 的安装,由于它是一个绿色版的软件,解压完成也就意味着安装完成了。

而要卸载,也非常简单,直接将解压后的文件夹删除掉即可。

启动,我们只需要双击一下 bin 目录下的 startup.bat 这个批处理文件。

而停止方式有很多,我们可以在窗口当中,按 Ctrl+C 或者点击上面的叉,或者直接执行 bin 目录下的 shutdown.bat 这个批处理文件双击一下。

最后一步部署,我们只需要将我们开发好的 Web 应用,放置在 webapps 这个目录下就可以了。


END


学习自:黑马程序员——JavaWeb课程

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

如若内容造成侵权/违法违规/事实不符,请联系一条长河网进行投诉反馈,一经查实,立即删除!

相关文章

w032基于web的阿博图书馆管理系统

🙊作者简介:拥有多年开发工作经验,分享技术代码帮助学生学习,独立完成自己的项目或者毕业设计。 代码可以查看文章末尾⬇️联系方式获取,记得注明来意哦~🌹赠送计算机毕业设计600个选题excel文件&#xff0…

Java:使用Jackson解析json时如何正确获取节点中的值?

使用Jackson解析json时,经常会需要获取到某一节点下的值,例如: { “data”: { "test1": "value1", "test2": null, "test3": 10 } } 以Jackson2.13.5为例,使用at(jsonPtrExp)这种API&…

前端必懂:常见排序算法深度解析

在前端开发中,排序算法是一种非常重要的工具。无论是对数组进行排序以展示数据,还是对复杂对象进行排序以实现特定的功能,理解和掌握常见的排序算法对于提高开发效率和代码质量至关重要。本文将介绍几种前端常见的排序算法。 一、冒泡排序(Bu…

vue 依赖注入(Provide、Inject )和混入(mixins)

Prop 逐级透传问题​ 通常情况下,当我们需要从父组件向子组件传递数据时,会使用 props。想象一下这样的结构:有一些多层级嵌套的组件,形成了一棵巨大的组件树,而某个深层的子组件需要一个较远的祖先组件中的部分数据。…

开启鸿蒙开发之旅:核心组件及其各项属性介绍——布局容器组件

写在前面 组件的结构 rkTS通过装饰器 Component 和 Entry 装饰 struct 关键字声明的数据结构,构成一个自定义组件。 自定义组件中提供了一个 build 函数,开发者需在该函数内以链式调用的方式进行基本的 UI 描述 今天我们要学习的就是写在build 函数里的系…

数据结构OJ题

目录 轮转数组原地移除数组中所有元素val删除有序数组中的重复项合并两个有序数组 轮转数组 思路1: 1.利用循环将最后一位数据放到临时变量(n)中 2.利用第二层循环将数据往后移一位 3.将变量(n)的数据放到数组第一位 时…

Pencils Protocol 推出新板块 Auction ,为什么重要且被看好?

Pencils Protocol 上线了又一新产品板块 Auction,预示着生态版图的进一步完善,该板块的推出无论是对于 Pencils Protocol 协议本身,还是 Scroll 生态都是极为重要的。 社区正在成为主导加密市场发展的重要力量 自 DeFi Summer 以来&#xf…

Pytorch学习--神经网络--完整的模型训练套路

一、下载数据集 train_data torchvision.datasets.CIFAR10(root"datasets",trainTrue,transformtorchvision.transforms.ToTensor(),downloadTrue) train_data torchvision.datasets.CIFAR10(root"datasets",trainFalse,transformtorchvision.transform…

常用数字器件的描述-组合逻辑器件

目录 基本逻辑门 编码器 译码器 数据选择器 数值比较器 三态缓冲器 奇偶校验器 组合逻辑器件有逻辑门、编码器与译码器、数据选择器和数值比较器、加法器、三态器件和奇偶校验器等多种类型。 基本逻辑门 Verilog HDL中定义了实现七种逻辑关系的基元,例化这些…

在Django中安装、配置、使用CKEditor5,并将CKEditor5录入的文章展现出来,实现一个简单博客网站的功能

在Django中可以使用CKEditor4和CKEditor5两个版本,分别对应软件包django-ckeditor和django-ckeditor-5。原来使用的是CKEditor4,python manager.py makemigrations时总是提示CKEditor4有安全风险,建议升级到CKEditor5。故卸载了CKEditor4&…

高效视觉方案:AR1335与i.MX8MP的完美结合

方案采用NXP i.MX8MP处理器和onsemi AR1335图像传感器,i.MX8MP集成四核Cortex-A53、NPU及双ISP技术。AR1335是一颗分辨率为13M的CMOS传感器。它使用了先进的BSI技术,提供了超高的分辨率和出色的低光性能,非常适合于需要高质量图像的应用。此外…

STM32软件SPI驱动BMP280(OLED显示)

STM32软件SPI驱动BMP280 OLED显示 BMP280简介寄存器简要说明SPI通讯代码逻辑代码展示 现象总结 BMP280简介 数字接口类型:IIC(从模式3.4MHz)或SPI(3线或4线制从模式10MHz) 气压测量范围:300~11…

基于Servlet实现MVC

目录 1.MVC相关概念 核心思想: 主要作用: 2.基于Servlet实现MVC 组成部分: 案例 实验步骤: 新建maven项目SpringMvcDemo 删除src目录并添加子模块MvcServlet ​编辑 导入相关依赖: 编写servlet 注册S…

剪辑师必备50多种擦拭转场/光效过渡效果Premiere Pro模板素材

项目特点: Premiere Pro的擦拭转场和光效闪烁过渡效果 Premiere Pro 2023及更高版本 适用于任何FPS和分辨率的照片和视频 易于使用 包含视频教程 无需插件 拖放方法 高品质 提高视频剪辑效率,节省时间,为视频创作添加独特且专业的转场风格。 …

数字化转型的架构蓝图构建指南:从理论到实践的系统实施路径

企业数字化转型的挑战与架构蓝图的重要性 在数字化浪潮的推动下,企业面临着前所未有的转型压力。传统业务模式和运营流程逐渐被更具弹性和敏捷性的数字化模式所取代,而企业架构蓝图作为战略转型的“导航仪”,能够为企业指明方向。企业架构治…

24.11.10

星期一: 补 23ICPC 合肥 G cf传送门 思路:由使第 k个最大这种条件易联想到二分,但是如何check是个问题 check使用dp,先想到个比较朴素的状态设定,dp【i】【j】…

Ubuntu 的 ROS 操作系统turtlebot3环境搭建

引言 本文介绍如何在Ubuntu系统中为TurtleBot3配置ROS环境,包括安装和配置ROS Noetic的步骤,为PC端控制TurtleBot3提供操作指南。 安装和配置的过程分为PC设置、系统安装、依赖安装等部分,并在最后进行网络配置,确保PC端能够顺利…

《深度学习图像分割》第3章:图像分割关键技术组件

《深度学习图像分割》这本书写写停停,历经三年多,目前在二稿修订中。正式出版之前,计划先在GitHub做逐步的内容和代码开源。 以下为本书第3章节选内容: 近年来,基于深度学习的图像分割技术发展迅猛,涌现出大…

【英特尔IA-32架构软件开发者开发手册第3卷:系统编程指南】2001年版翻译,2-20

文件下载与邀请翻译者 学习英特尔开发手册,最好手里这个手册文件。原版是PDF文件。点击下方链接了解下载方法。 讲解下载英特尔开发手册的文章 翻译英特尔开发手册,会是一件耗时费力的工作。如果有愿意和我一起来做这件事的,那么&#xff…

【论文复现】ChatGPT多模态命名实体识别

📝个人主页🌹:Eternity._ 🌹🌹期待您的关注 🌹🌹 ❀ChatGPT ChatGPT辅助细化知识增强!1. 研究背景2. 模型结构和代码3. 任务流程第一阶段:辅助精炼知识启发式生成第二阶段…