黑马JavaWeb开发笔记14——Tomcat(介绍、安装与卸载、启动与关闭)、入门程序解析(起步依赖、SpringBoot父工程、内嵌Tomcat)

news2024/11/15 17:52:11

文章目录

  • 前言
  • 一、Web服务器-Tomcat
    • 1. 简介
      • 1.1服务器概述
      • 1.2 Web服务器
      • 1.3 Tomcat
    • 2. 基本使用
      • 2.1 下载
      • 2.2 安装与卸载
      • 2.3 启动与关闭
      • 2.4 常见问题
  • 二、入门程序解析
    • 1. 起步依赖
    • 2. SpringBoot父工程
    • 3. 内嵌Tomcat
  • 总结


前言

本篇文章是2023年最新黑马JavaWeb开发笔记14:Tomcat(介绍、安装与卸载、启动与关闭)、入门程序解析(起步依赖、SpringBoot父工程、内嵌Tomcat)的总结,帮助需要学习Web开发的朋友温故而知新。

  1. Tomcat介绍
  2. Tomcat安装与卸载
  3. Tomcat启动与关闭
  4. 起步依赖
  5. SpringBoot父工程
  6. 内嵌Tomcat

一、Web服务器-Tomcat

1. 简介

1.1服务器概述

  • 服务器硬件
    • 指的也是计算机,只不过服务器要比我们日常使用的计算机大很多。
  • 服务器,也称伺服器。是提供计算服务的设备。由于服务器需要响应服务请求,并进行处理,因此一般来说服务器应具备承担服务并且保障服务的能力。
  • 服务器的构成包括处理器、硬盘、内存、系统总线等,和通用的计算机架构类似,但是由于需要提供高可靠的服务,因此在处理能力、稳定性、可靠性、安全性、可扩展性、可管理性等方面要求较高。

  • 在网络环境下,根据服务器提供的服务类型不同,可分为:文件服务器,数据库服务器,应用程序服务器,WEB服务器等

  • 服务器只是一台设备,必须安装服务器软件才能提供相应的服务。

  • 服务器软件:基于ServerSocket编写的程序

    • 服务器软件本质是一个运行在服务器设备上的应用程序
    • 能够接收客户端请求,并根据请求给客户端响应数据
      在这里插入图片描述

1.2 Web服务器

Web服务器是一个应用程序(软件),对HTTP协议的操作进行封装,使得程序员不必直接对协议进行操作(不用程序员自己写代码去解析http协议规则),让Web开发更加便捷。主要功能是"提供网上信息浏览服务"。
在这里插入图片描述
Web服务器是安装在服务器端的一款软件,将来我们把自己写的Web项目部署到Tomcat服务器软件中,当Web服务器软件启动后,部署在Web服务器软件中的页面就可以直接通过浏览器来访问了。

1.3 Tomcat

  • Tomcat的官网: https://tomcat.apache.org/
  • Tomcat服务器软件是一个免费的开源的web应用服务器。是Apache软件基金会的一个核心项目。
  • 由于Tomcat只支持Servlet/JSP少量JavaEE规范,所以是一个开源免费的轻量级Web服务器。
    在这里插入图片描述
  • 因为Tomcat支持Servlet/JSP规范,所以Tomcat也被称为Web容器、Servlet容器。JavaWeb程序需要依赖Tomcat才能运行。

2. 基本使用

(请注意,现在的SpringBoot项目都是内置Tomcat的,只要你是创建pringBoot项目,都会自己配置好,不需要格外下载安装。以下的演示是单独下载安装Tomcat,一般来说很少使用,没有特别需求了解即可

2.1 下载

直接从官方网站下载:https://tomcat.apache.org/download-90.cgi
在这里插入图片描述

2.2 安装与卸载

  • 安装: Tomcat是绿色版,直接解压即安装
    在这里插入图片描述

  • 卸载:卸载比较简单,可以直接删除上面的目录即可

2.3 启动与关闭

  • 启动Tomcat:双击tomcat解压目录/bin/startup.bat文件即可启动tomcat
    在这里插入图片描述
    这里会看到tomcat输出的日志中文是乱码,这是因为它默认的控制台输出编码格式是UTF-8,我们需要把这个格式改为GBK
    在这里插入图片描述
    我们需要先关闭Tomcat服务,然后进行编码修改。

  • 关闭Tomcat

    • 强制关闭:直接x掉Tomcat窗口(不建议)
    • 正常关闭:bin\shutdown.bat
      在这里插入图片描述
    • 正常关闭:在Tomcat启动窗口中按下 Ctrl+C(说明:如果按下Ctrl+C没有反映,可以多按几次)
  • 编码修改:找到conf/logging.properties
    在这里插入图片描述
    这个地方改为gbk(修改完之后记得保存)
    在这里插入图片描述

  • 再次运行Tomcat
    在这里插入图片描述
    现在已经OK了,默认端口号为8080,我们可以在浏览器上打开查看
    在这里插入图片描述
    出现欢迎页面,并且显示Tomcat的版本,证明运行成功

2.4 常见问题

  • 问题1:Tomcat启动时,窗口一闪而过
    (检查JAVA_HOME环境变量是否正确配置)
    解决:此电脑(右键)->属性->高级系统设置->环境变量
    在这里插入图片描述
    自己检查一下
    在这里插入图片描述

  • 问题2:端口号冲突
    在这里插入图片描述
    原因:Tomcat使用的端口被占用了。
    解决方案:换Tomcat端口号
    要想修改Tomcat启动的端口号,需要修改 conf/server.xml文件
    在这里插入图片描述

二、入门程序解析

1. 起步依赖

  • spring-boot-starter-web和spring-boot-starter-test,在SpringBoot中又称为:起步依赖
  • 而在SpringBoot的项目中,有很多的起步依赖,他们有一个共同的特征:就是以 spring-boot-starter- 作为开头。在以后大家遇到spring-boot-starter-xxx这类的依赖,都为起步依赖。
    • spring-boot-starter-web:包含了web应用开发所需要的常见依赖
    • spring-boot-starter-test:包含了单元测试所需要的常见依赖
      在这里插入图片描述
  • Spring的官方提供了很多现成的starter(起步依赖),我们在开发相关应用时,只需要引入对应的starter即可。
  • 官方地址:https://docs.spring.io/spring-boot/docs/2.7.2/reference/htmlsingle/#using.build-systems.starters
  • 每一个起步依赖,都用于开发一个特定的功能。

2. SpringBoot父工程

在我们之前开发的SpringBoot入门案例中,我们通过maven引入的依赖,是没有指定具体的依赖版本
号的。
在这里插入图片描述
为什么没有指定版本号,可以正常使用呢?

  • 因为每一个SpringBoot工程,都有一个父工程。依赖的版本号,在父工程中统一管理。
    在这里插入图片描述

3. 内嵌Tomcat

  • 我们之前书写的SpringBoot入门程序中,并没有把程序部署到Tomcat的webapps目录下,但是仍然可以运行

  • 因为在我们的SpringBoot中,引入了web运行环境(也就是引入spring-boot-starter-web起步依赖),其内部已经集成了内置的Tomcat服务器

  • 我们可以通过IDEA开发工具右侧的maven面板中,就可以看到当前工程引入的依赖。其中已经将Tomcat的相关依赖传递下来了,也就是说在SpringBoot中可以直接使用Tomcat服务器。
    在这里插入图片描述

  • 当我们运行SpringBoot的引导类时(运行main方法),就会看到命令行输出的日志,其中占用8080端口的就是Tomcat。
    在这里插入图片描述


总结

本篇文章是2023年最新黑马JavaWeb开发笔记14:Tomcat(介绍、安装与卸载、启动与关闭)、入门程序解析(起步依赖、SpringBoot父工程、内嵌Tomcat)的总结,帮助需要学习Web开发的朋友温故而知新。

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

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

相关文章

[Java]SpringBoot登录认证流程详解

登录认证 登录接口 1.查看原型 2.查看接口 3.思路分析 登录核心就是根据用户名和密码查询用户信息,存在则登录成功, 不存在则登录失败 4.Controller Slf4j RestController public class LoginController {Autowiredprivate EmpService empService;/*** 登录的方法** param …

【Python】一文详细向您介绍 bisect_left 函数

【Python】一文详细向您介绍 bisect_left 函数 下滑即可查看博客内容 🌈 欢迎莅临我的个人主页 👈这里是我静心耕耘深度学习领域、真诚分享知识与智慧的小天地!🎇 🎓 博主简介:985高校的普通本硕&#x…

shell脚本1----编程规范与变量

shell脚本 shell的功能 Shell(壳程序)是一个特殊的应用程序,它介于操作系统内核与用户之间,充当了一个“命令解释器”的角色,负责接收用户输入的操作指令(命令)并进行解释,将需要执…

(前端)面试300问之(3)this的指向判断

一、this的相关理解与解读 1、各角度看this。 1)ECMAScript规范: this 关键字执行为当前执行环境的 ThisBinding。 2)MDN: In most cases, the value of this is determined by how a function is called. 在绝大多数情况下&…

图片损坏,如何修复?

在数字化时代,图片已成为我们日常生活和工作中不可或缺的一部分。然而,有时我们可能会遇到图片损坏的情况,无论是珍贵的家庭照片、工作文档中的关键图像,还是社交媒体上的分享内容,图片损坏都可能带来不小的困扰。那么…

网络传输加密及openssl使用样例(客户端服务器)

文章目录 背景常用加密方式SSLOpenSSL主要功能 库结构 交互流程证书生成生成 RSA 私钥私钥的主要组成部分私钥的格式 创建自签名证书: 签发证书服务器端代码客户端代码常见错误版本问题证书问题证书格式 背景 网络传输中为保证数据安全,通常需要加密 常用加密方式…

Open3D 基于曲率大小的特征点提取

目录 一、概述 1.1原理 1.2实现步骤 1.3应用场景 二、代码实现 三、实现效果 3.1原始点云 3.2提取特征点 Open3D点云算法汇总及实战案例汇总的目录地址: Open3D点云算法与点云深度学习案例汇总(长期更新)-CSDN博客 一、概述 基于曲率…

STM32 外部中断(EXTI)

STM32 外部中断(EXTI) 实验:配置一个引脚的下降沿作为外部中断。 参考:江协科技 相关缩写 RCC(Reset and Clock Control) 复位和时钟控制 GPIO(General Purpose Input/Output) 通用输入/输出 AFIO(Alternate Function Input Output) 复用功能输入输…

6.Lab five —— Lazy Page Allocation

首先先切换到lazy分支 git checkout lazy make clean Xv6应用程序使用sbrk()系统调用向内核请求堆内存。sbrk()分配物理内存并将其映射到进程的虚拟地址空间。内核为一个大请求分配和映射内存可能需要很长时间。为了提高效率,故采用懒分配的策略 Eliminate alloc…

Scratch在线玩:3D地铁跑酷

小虎鲸Scratch资源站-免费Scratch作品源码,素材,教程分享平台! 作品介绍: 欢迎体验在 Scratch 上重新制作的 3D 地铁跑酷游戏!这款游戏完全采用 3D 技术打造,带来流畅的视觉效果和出色的游戏体验。游戏的目标是避免列车和障碍物,同…

力扣 1419. 数青蛙

力扣 1419. 数青蛙 1. 题目 2. 思路 本题就是一道 字符串模拟题; 题目说到了, 会混杂着青蛙的叫声, 如果字符串 croakOfFrogs 不是由若干有效的 “croak” 字符混合而成,请返回 -1, 那就是说如果有多余的 c, r, o等等, 比如 &quo…

【机器学习】机器学习引领未来:赋能精准高效的图像识别技术革新

📝个人主页🌹:Eternity._ 🌹🌹期待您的关注 🌹🌹 ❀目录 🔍1. 引言📒2. 机器学习基础与图像识别原理🍁机器学习概述:监督学习、无监督学习与强化学…

「深入理解」HTML Meta标签:网页元信息的配置

「深入理解」HTML Meta标签&#xff1a;网页元信息的配置 HTML的<meta>元素用于提供关于HTML文档的元数据&#xff08;metadata&#xff09;&#xff0c;这些信息对于浏览器和其他处理HTML文档的应用程序来说是非常有用的&#xff0c;如&#xff1a;<base>、<li…

虚幻引擎VR游戏开发02 | 性能优化设置

常识&#xff1a;VR需要保持至少90 FPS的刷新率&#xff0c;以避免用户体验到延迟或晕眩感。以下是优化性能的一系列设置&#xff08;make sure the frame rate does not drop below a certain threshold&#xff09; In project setting-> &#xff08;以下十个设置都在pr…

用于全栈自动化测试的最佳Python工具

我知道大多数测试人员会说Java是他们创建自动化测试的首选语言。 但是我最喜欢的是Python。为什么?为什么是Python ? Al Sweigart&#xff0c;《自动化那些无聊的东西》的作者&#xff0c;Python一直是他的首选语言&#xff0c;因为:它有一个温和的学习曲线。它适用于Windows…

42.哀家要长脑子了!

1.965. 单值二叉树 - 力扣&#xff08;LeetCode&#xff09; 深度优先搜索&#xff0c;看边两端的结点是不是一样的值 class Solution { public:bool isUnivalTree(TreeNode* root) {if(!root) return true;if(root->right) {if(root->val ! root->right->val || …

数字图像处理基础:图像处理概念、步骤、方式介绍

《博主简介》 小伙伴们好&#xff0c;我是阿旭。专注于人工智能、AIGC、python、计算机视觉相关分享研究。 &#x1f44d;感谢小伙伴们点赞、关注&#xff01; 《------往期经典推荐------》 一、AI应用软件开发实战专栏【链接】 项目名称项目名称1.【人脸识别与管理系统开发…

5.2.数据结构-c/c++二叉树详解(下篇)(算法面试题)

本章所有代码请见&#xff1a;5.3.数据结构-c/c二叉树代码-CSDN博客 上篇:5.数据结构-c/c二叉树详解(上篇)&#xff08;遍历方法&#xff0c;完全二叉树&#xff09;-CSDN博客 目录 1 求二叉树 第k层的节点 2 查找一个节点是否在二叉树中 3 求二叉树节点的个数 4 求二叉树…

c#笔记5 详解事件的内置类型EventHandler、windows事件在winform中的运用

为什么要研究这一问题&#xff1f; 事件和委托可以说是息息相关。 前面先解释了什么是委托&#xff0c;怎么定义一个委托以及怎么使用匿名方法来内联地新建委托。 事实上事件这一机制在c#的程序开发中展很重要的地位&#xff0c;尤其是接触了winform软件开发的同学们应该都知…

chapter12-异常(Exception)——(注解)——day14

444-异常处理入门 445-异常基本介绍 446-异常体系图 虚线代表 实现接口&#xff0c;实线代表继承 447-五大运行时异常 448-异常课堂练习 449-异常处理机制 450-tryCatch异常处理 1&#xff09;如果异常发送&#xff0c;则异常发生后面的代码不会执行&#xff0c;直接进入到Catc…