【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.pswp.cn/pingmian/83289.shtml

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

相关文章

TDengine 的 AI 应用实战——电力需求预测

作者&#xff1a; derekchen Demo数据集准备 我们使用公开的UTSD数据集里面的电力需求数据&#xff0c;作为预测算法的数据来源&#xff0c;基于历史数据预测未来若干小时的电力需求。数据集的采集频次为30分钟&#xff0c;单位与时间戳未提供。为了方便演示&#xff0c;按…

D2000平台上Centos使用mmap函数遇到的陷阱

----------原创不易&#xff0c;欢迎点赞收藏。广交嵌入式开发的朋友&#xff0c;讨论技术和产品------------- 在飞腾D2000平台上&#xff0c;安装了麒麟linux系统&#xff0c;我写了个GPIO点灯的程序&#xff0c;在应用层利用mmap函数将内核空间映射到用户态&#xff0c;然后…

深入了解linux系统—— 进程间通信之管道

前言 本篇博客所涉及到的代码一同步到本人gitee&#xff1a;testfifo 迟来的grown/linux - 码云 - 开源中国 一、进程间通信 什么是进程间通信 在之前的学习中&#xff0c;我们了解到了进程具有独立性&#xff0c;就算是父子进程&#xff0c;在修改数据时也会进行写时拷贝&…

设计模式——模版方法设计模式(行为型)

摘要 模版方法设计模式是一种行为型设计模式&#xff0c;定义了算法的步骤顺序和整体结构&#xff0c;将某些步骤的具体实现延迟到子类中。它通过抽象类定义模板方法&#xff0c;子类实现抽象步骤&#xff0c;实现代码复用和算法流程控制。该模式适用于有固定流程但部分步骤可…

Python使用

Python学习&#xff0c;从安装&#xff0c;到简单应用 前言 Python作为胶水语言在web开发&#xff0c;数据分析&#xff0c;网络爬虫等方向有着广泛的应用 一、Python入门 相关基础语法直接使用相关测试代码 Python编译器版本使用3以后&#xff0c;安装参考其他教程&#xf…

吴恩达机器学习笔记(1)—引言

目录 一、欢迎 二、机器学习是什么 三、监督学习 四、无监督学习 一、欢迎 机器学习是当前信息技术领域中最令人兴奋的方向之一。在这门课程中&#xff0c;你不仅会学习机器学习的前沿知识&#xff0c;还将亲手实现相关算法&#xff0c;从而深入理解其内部机理。 事实上&…

java笔记08

多线程&JUC 1.什么是多线程 1.什么是多线程&#xff1f;有了多线程&#xff0c;我们就可以让程序同时做多件事情 2.多线程的作用&#xff1f;提高效率 3.多线程的应用场景&#xff1f;只要你想让多个事情同时运行就需要用到多线程比如&#xff1a;软件中的耗时操作、所有…

【仿muduo库实现并发服务器】使用正则表达式提取HTTP元素

使用正则表达式提取HTTP元素 1.正则表达式2.正则库的使用3.使用正则表达式提取HTTP请求行 1.正则表达式 正则表达式它其实是描述了一种字符串匹配的模式&#xff0c;它可以用来在一个字符串中检测一个特定格式的字串&#xff0c;以及可以将符合特定规则的字串进行替换或者提取…

显示即战略:铁电液晶如何成为 “数字中国” 的 “像素基石”?

一、显示技术&#xff1a;数字时代的核心战略支点 &#xff08;一&#xff09;从 “视觉窗口” 到 “战略基础设施” 在数字经济蓬勃发展的当下&#xff0c;显示技术早已超越了单纯的 “视觉呈现” 范畴&#xff0c;成为连接人与数字世界的关键接口。从智能手机、平板电脑到车…

适合小白的超详细配置YOLOv8教程(毕设必看)(训练自己数据集)(Pycharm保姆级安装教程)(lablme的使用)(GPU版)

目录 1.Pycharm的安装和虚拟环境调用&#xff08;已经安装好的可以跳过此步骤&#xff09; 1.1 下载pycharm软件 1.2 调用已创建虚拟环境&#xff08;调用上一篇教程中创建好的虚拟环境&#xff09; 2.标注自己数据集&#xff08;已有数据集的这部分可跳过&#xff09; 2.1…

EC800X QuecDuino开发板介绍

支持的模组列表 EG800KEC800MEC800GEC800E 功能列表 基本概述 EC800X QuecDuino EVB 搭载移远 EC800 系列模组。支持模组型号为&#xff1a; EC800M 系列、EC800K 系列、EG800K 系列、EC800E 系列等。 渲染图 开发板的主要组件、接口布局见下图 资料下载 EC800X-QuecDui…

Unity + HybirdCLR热更新 入门篇

官方文档 HybridCLR | HybridCLRhttps://hybridclr.doc.code-philosophy.com/docs/intro 什么是HybirdCLR? HybridCLR&#xff08;原名 huatuo&#xff09;是一个专为 Unity 项目设计的C#热更新解决方案&#xff0c;它通过扩展 IL2CPP 运行时&#xff0c;使其支持动态加载和…

类 Excel 数据填报

类 Excel 填报模式&#xff0c;满足用户 Excel 使用习惯 数据填报&#xff0c;可作为独立的功能模块&#xff0c;用于管理业务流程、汇总采集数据&#xff0c;以及开发各类数据报送系统&#xff0c;因此&#xff0c;对于报表工具而言&#xff0c;其典型场景之一就是利用报表模…

MySQL 8.0 OCP 英文题库解析(十)

Oracle 为庆祝 MySQL 30 周年&#xff0c;截止到 2025.07.31 之前。所有人均可以免费考取原价245美元的MySQL OCP 认证。 从今天开始&#xff0c;将英文题库免费公布出来&#xff0c;并进行解析&#xff0c;帮助大家在一个月之内轻松通过OCP认证。 本期公布试题81~90 试题81:…

JavaScript 性能优化实战:从原理到框架的全栈优化指南

在 Web 应用复杂度指数级增长的今天&#xff0c;JavaScript 性能优化已成为衡量前端工程质量的核心指标。本文将结合现代浏览器引擎特性与一线大厂实践经验&#xff0c;构建从基础原理到框架定制的完整优化体系&#xff0c;助你打造高性能 Web 应用。 一、性能优化基础&#x…

基于Web的分布式图集管理系统架构设计与实践

引言&#xff1a;为什么需要分布式图集管理&#xff1f; 在现代Web图形应用中&#xff0c;纹理图集&#xff08;Texture Atlas&#xff09;技术是优化渲染性能的关键手段。传统的图集制作流程通常需要美术人员使用专业工具&#xff08;如TexturePacker&#xff09;离线制作&am…

鸿蒙OS在UniApp中集成Three.js:打造跨平台3D可视化应用#三方框架 #Uniapp

在UniApp中集成Three.js&#xff1a;打造跨平台3D可视化应用 引言 在最近的一个项目中&#xff0c;我们需要在UniApp应用中展示3D模型&#xff0c;并实现实时交互功能。经过技术选型和实践&#xff0c;我们选择了Three.js作为3D渲染引擎。本文将分享我们在UniApp中集成Three.…

Flask中关于app.url_map属性的用法

目录 一、app.url_map 是什么? 二、可以查看哪些信息? 三、示例:打印所有路由 四、结合 url_for() 使用 五、常见用途场景 六、结合 Flask CLI 使用 总结 app.url_map 是 Flask 中非常重要的一个属性,用于查看或操作整个应用的 URL 路由映射表(routing map)。它展…

SpringBoot项目搭建指南

SpringBoot项目搭建指南 文章目录 SpringBoot项目搭建指南一、SpringBoot项目搭建1.1 SpringBoot 版本选择1.2 SpringBoot 框架引入方式1.2.1 继承 Starter Parent POM1.2.2 不使用 Parent POM 来使用 Spring Boot 1.3 SpringBoot 打包插件 二、日志框架引入2.1 引入SpringBoot…

数据库系统概论(十六)数据库安全性(安全标准,控制,视图机制,审计与数据加密)

数据库系统概论&#xff08;十六&#xff09;数据库安全性 前言一、数据库安全性1. 什么是数据库安全性&#xff1f;2. 为何会存在安全问题&#xff1f; 二、安全标准的发展1. 早期的“开拓者”&#xff1a;TCSEC标准2. 走向国际统一&#xff1a;CC标准3. TCSEC和CC标准有什么不…