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

【JAVA后端入门基础001】Tomcat 是什么?通俗易懂讲清楚!

608564A16E7D652E882914E830EE4050(1)

📚博客主页:代码探秘者

✨专栏:《JavaSe》 其他更新ing…

❤️感谢大家点赞👍🏻收藏⭐评论✍🏻,您的三连就是我持续更新的动力❤️

🙏作者水平有限,欢迎各位大佬指点,相互学习进步!


img

概念篇

在 Java Web 开发中,Tomcat 是我们最常接触的服务器之一。但很多初学者常常用它,却不太清楚它到底是什么、能做什么、为什么要用它。这篇文章,我们就来用最简单的语言,把 Tomcat 讲清楚!


1️⃣ Tomcat 是什么?

在这里插入图片描述

Tomcat 是一个轻量级的 Web 服务器 + Servlet 容器,由 Apache 软件基金会开发。

你可以把它理解为一个:

  • 能运行 Java Web 程序的“服务器软件”;
  • 支持 JSP、Servlet 的“执行环境”。

📌 总结一句话:Tomcat 是用来运行 Java Web 项目的软件。


2️⃣ 为什么需要?

当你写完一个 Web 项目后,想通过浏览器访问,就需要一个服务器来运行它。Tomcat 就是这个“服务器”。

✅ 它能帮助你:

  • .jsp 页面展示给用户;
  • 处理表单提交(Servlet);
  • 接收浏览器请求并返回响应。

没有 Tomcat,我们的 Java Web 项目就跑不起来。


3️⃣ 核心组件(了解)

Tomcat 看起来复杂,但主要分为这几个核心模块👇:

模块作用
Connector接收客户端请求(通常是 HTTP 协议)
Engine核心处理引擎,负责请求的调度
Host表示一个虚拟主机,可以部署多个 Web 应用
Context表示一个具体的 Web 应用(即一个项目)
Servlet 容器执行你的 Java Servlet 和 JSP 页面

4️⃣ Tomcat 和真正的 Web 服务器有区别吗?

有,但不大。

  • Tomcat 是 Servlet 容器 + 简单的 HTTP 服务器
  • 真正的大型 Web 服务器如 Nginx、Apache HTTP Server、WebLogic 等,功能更强大,比如负载均衡、反向代理、静态资源优化等。

👉 但对于大多数 Java 项目开发和部署,Tomcat 完全够用


5️⃣ 怎么用?

🧪 简单几步就能启动 Tomcat:

  1. 下载 Tomcat(官网下载即可);
  2. 解压后找到 bin/startup.bat(Windows)或 startup.sh(Linux);
  3. 启动后,浏览器访问 http://localhost:8080
  4. 默认端口是 8080;
  5. 把你的 Web 项目放到 webapps/ 目录即可部署!

6️⃣ Tomcat 日常开发中怎么配合使用?

📦 一般配合这些技术使用:

  • Java Web 项目(使用 Servlet / JSP);
  • Spring / Spring MVC / Spring Boot;
  • IDEA / Eclipse 等开发工具,直接支持 Tomcat 部署;
  • 前端页面通过表单 / Ajax 向 Tomcat 发送请求。

7️⃣ 常见问题小贴士

Tomcat 启动后打不开 localhost:8080?
✅ 检查是否有防火墙、端口冲突,或 Java 环境配置问题。

Tomcat 和 Java 有关系吗?
✅ Tomcat 是用 Java 写的,本身需要 Java 环境(JDK)才能运行。

一个电脑可以同时运行多个 Tomcat 吗?
✅ 可以,但端口不能冲突,注意修改 server.xml 配置中的端口号。


✅ 总结一句话

Tomcat 就是 Java Web 程序的“跑步机”,你写的代码(JSP、Servlet)放上去,就能动起来,跑给浏览器看!


实操篇:Tomcat入门

1.Tomcat的目录结构

image-20250210101839537

  • 1. server.xml 用于配置 tomcat 的基本设置(启动端口,关闭端口,主机名)

  • 2. wex.xml 用于指定 tomcat 运行时配置(比如 servlet )

  • 3. webapps 目录是存放 web 应用,就是网站

2.启动

Tomcat的bin下输入cmd(这样默认cd到这个bin目录了),命令行执行下面的

catalina run

等效于:

执行bin下的startup.bat文件

image-20250210103234701

浏览器执行:

http://localhost:8080/

出现虎图标,执行成功!

image-20250210103404528

3.关闭

shutdown.bat是关闭文件

4.修改服务端口-8080

image-20250210104908160

5.部署项目

image-20250211190541081

5.1 方式1

  • 部署

image-20250211191322341

  • 访问

image-20250211191110826

5.2 方式2-映射文件位置

  • 配置文件在Tomcat下的该目录 .xml
conf\Catalina\localhost
  • 要求:输入/lan,就去D:\java\jin\test01找
<Context path="/lan" docBase="D:\java\jin\test01"/>

如图:

image-20250211195124333

  • 设置映射位置,web文件

image-20250211195502881

  • 访问方式:lan是自己设置的
http://localhost:8080/lan/test.html

image-20250211195540677

5.3 Root

localhost:8080/

默认访问Root项目

6.浏览器访问 web服务器

文件UML时序图

image-20250211184416747

主机名localhost和ip映射

  • 复制一个新的hosts文件(好像有时候不能直接修改
  • 修改内容,然后覆盖原来的该文件

该目录下hosts文件:

C:\Windows\System32\drivers\etc

image-20250211201403701

image-20250211201112862

7.启动项目

点+

image-20250225211356578

image-20250225211500106

(1)热加载:Tomcat自动更新类和资源

  • jsp,html文件修改时,立即生效
  • 如果是JAVA文件,Redeploy 重新发布才生效

(2)on frame deactivation

  • idea失去焦点(比如最小化,idea图标闪烁,不是退出),也会导致jsp,html更新

(3)这里端口只影响项目端口,不影响配置文件的端口

image-20250225213254002

(4)out目录(原项目资源的映射)才是浏览器真正访问的地方

image-20250225213713063

如果是rebuild项目(project),就重新把写的重新生成out目录(=先删out目录,重新生成)

(5)项目框架

image-20250225214837334

(6)默认访问

(1)默认访问这个文件

image-20250225230042742

http://www.xdnf.cn/news/10592.html

相关文章:

  • 【PCB设计】STM32开发板——产品设计流程及元件选型
  • STM32 笔记 _《GPIO配置从低层走向高层》
  • 4.大语言模型预备数学知识
  • 数据库系统概论(十一)SQL 集合查询 超详细讲解(附带例题表格对比带你一步步掌握)
  • 花卉目标检测数据集介绍(共 12 类,10490 张图像)
  • LeetCode 热题 100 394. 字符串解码
  • 前缀和题目:一维数组的动态和
  • Unity中的MonoSingleton<T>与Singleton<T>
  • Golang——5、函数详解、time包及日期函数
  • 如何使用DAXStudio将PowerBI与Excel连接
  • python,Dataframe基于所有包含某个关键字的列等于某个值过滤
  • PostgreSQL的扩展 insert_username
  • 高等数学笔记 第八章——向量代数与空间解析几何2
  • Mysql备份
  • 助力活力生活的饮食营养指南
  • Python----目标检测(训练YOLOV8网络)
  • 【Java Web】6.登入认证
  • 使用 MCP 将代理连接到 Elasticsearch 并对索引进行查询
  • 电脑为什么换个ip就上不了网了
  • Java Netty 中处理粘包和半包问题的解决方案 | TCP消息完整性校验(XOR )
  • JavaScript性能优化:实战技巧提升10倍速度
  • 【性能调优系列】深入解析火焰图:从基础阅读到性能优化实战
  • 【python深度学习】Day43 复习日
  • MG影视登录解锁永久VIP会员 v8.0 支持手机电视TV版影视直播软件
  • 抛砖引玉:RadarDet4D,NuScenes数据集Radar模态目标检测第二名(即将开源)
  • 【Elasticsearch】Elasticsearch 核心技术(一):索引
  • Attention注意力机制
  • 【git-首次初始化本地项目、关联远程仓库】
  • 飞牛fnNAS存储空间模式详解
  • 缓存击穿、缓存雪崩、缓存穿透以及数据库缓存双写不一致问题