发布时间:2026/8/4 3:17:58
web前端基础到入门——09day 摘要本文是一篇面向初学者的 SpringBoot 入门实战指南。文章首先解释了 SpringBoot 作为 Spring 生态“加速器”的定位通过“约定优于配置”和“起步依赖”两大核心能力解决了传统 Spring 项目配置繁琐的问题。随后通过一个“浏览器访问 /hello 返回 Hello World”的明确目标手把手演示了使用 IDEA 创建 SpringBoot 项目、编写 Controller 和启动应用的完整三步流程。最后文章深入浅出地剖析了 Web 请求背后的网络三要素IP、端口、路径和 HTTP 协议的基本格式请求/响应行、头、体帮助读者在动手实践的同时理解其底层原理为后续学习打下坚实基础。为什么是 SpringBoot先讲个背景故事做 Java 开发迟早要跟 Spring 打交道。它是什么官网写得很直白Spring makes Java simple。翻译过来就是Java 本身太啰嗦了Spring 帮你省事。比如你想让 A 类调用 B 类的方法原生 Java 得自己 new 对象、管生命周期Spring 说“你别管了我帮你注入”。你想操作数据库原生 JDBC 几十行样板代码Spring 封装成两三行就搞定。Spring 把这些能力分散在它的子项目里——处理 Web 的有 Spring MVC管数据的有 Spring Data做微服务的有 Spring Cloud。统统打包称作Spring 全家桶。但这就带来了一个新问题。全家桶的核心叫 Spring Framework它是整个生态的底座。问题在于光用它来搭一个能跑的 Web 项目你就得写一堆 XML 配置、导入一堆依赖、搞清楚组件扫描和自动装配……还没开始写业务代码一天已经过去了。于是就有了SpringBoot。它的设计初衷就是——让跑起来这件事快到你来不及走神。两个核心能力约定优于配置。你不写配置它就用默认的。你想改再加。起步依赖。一个spring-boot-starter-web自动拽进来 Web 开发需要的所有 jar 包版本都不用你操心。一句话SpringBoot 不是替代 Spring而是让你更快用上 Spring。跑起来第一个 SpringBoot Web 应用你需要做什么目标很明确浏览器访问/hello页面显示Hello World ~。这在 SpringBoot 里只需要三步。第一步搭骨架IDEA 里新建 Module这次不选 Maven选Spring Initializr。它会从 Spring 官方拉一个项目模板下来。填几个基本信息——项目名、Group一般是域名反写比如com.itheima、Java 版本选 11 就行。然后在依赖选择页勾上Spring Web这是关键。点击 Finish 后 IDEA 会联网下载依赖。网速慢的话得等一会儿但这时间你什么都不用管。建好之后你拿到的是一个标准结构springboot-web-demo ├── src/main/java/com/itheima │ └── SpringbootWebDemoApplication.java ← 入口自带 main ├── src/main/resources │ ├── static/ ← 放静态文件html、css、图片 │ └── application.properties ← 配置项全在这 ├── src/test/java ← 测试代码 └── pom.xml ← 只引入了一个 starter-web留意一下pom.xml里只有spring-boot-starter-web这一个依赖没有 Tomcat、没有 Jackson、没有日志框架——但启动之后它们全都会在。这就是起步依赖的魔法后面细说。第二步写一个“接客”的方法在com.itheima下新建一个包叫controller然后创建HelloControllerpackage com.itheima.controller; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; RestController public class HelloController { RequestMapping(/hello) public String hello() { System.out.println(Hello World ~); return Hello World ~; } }就十几行代码两个注解解释一下RestController告诉 SpringBoot“这个类是用来处理 HTTP 请求的返回值直接写回浏览器不跳页面”。RequestMapping(/hello)把路径/hello绑到这个方法上。有人访问这个路径方法就执行。System.out.println那行没什么实际作用只是让你在控制台看到“有人来过”。第三步启动找到项目里带 main 方法的那个类名字通常是xxxApplication右键Run。控制台开始刷日志。看到类似Tomcat started on port(s): 8080这句话应用就跑起来了。打开浏览器输入http://localhost:8080/hello页面上出现Hello World ~。同时 IDEA 控制台也打印了一行同样的文字。就三步建项目 → 写类 → 启动。没有一行 XML没配 Tomcat没改任何设置——一个 Web 应用已经在跑了。停下来想一下刚才到底发生了什么http://localhost:8080/hello这个地址拆开来看就是 Web 通信的三要素要素这个例子里的值解决什么问题IPlocalhost就是 127.0.0.1找到网络里的哪台机器端口8080找到那台机器上的哪个程序资源路径/hello向那个程序要什么东西你之前在 JavaSE 学过网络编程的三要素——IP、端口、协议这里刚好全用上了。浏览器根据 IP 找到你的电脑本机根据 8080 端口找到正在运行的 SpringBoot 应用然后说“我要访问/hello这个资源”。SpringBoot 内部扫描到你的RequestMapping(/hello)找到对应的hello()方法执行它把返回值Hello World ~塞进 HTTP 响应里发给浏览器。那浏览器和服务器之间传数据的格式是什么这就是HTTP 协议要讲的事。 HTTP 协议浏览器和服务器的对话规则一次请求长什么样打开浏览器按 F12切到 Network网络标签页然后刷新页面。你会看到一系列请求。点开任意一个就能看到它内部的结构。HTTP 规定一次请求和一次响应必须按固定格式来。你不需要记住每一条但你需要知道格式分三块——请求行 / 请求头 / 请求体。请求浏览器发给服务器一个典型的 GET 请求长这样GET /brand/findAll?nameOPPOstatus1 HTTP/1.1 ← 请求行 Host: www.example.com ← 请求头 User-Agent: Mozilla/5.0 (Windows NT 10.0) Chrome/... Accept: text/html, application/json ← 空行没有请求体请求行包含三样东西——用什么方式请求GET、要哪个资源/brand/findAll?nameOPPOstatus1、用的什么版本的协议HTTP/1.1。注意到资源路径里?后面的部分没有那是参数。nameOPPOstatus1——多个参数用拼接keyvalue的格式。这就是GET 传参的方式参数跟在 URL 后面能被人直接看到。请求头是一堆Key: Value主要作用是告诉服务器“我是谁、我能接收什么格式的数据、我希望怎么回复”。比如User-Agent里写的就是你用的浏览器和操作系统服务器看到这个就能做兼容处理——IE 浏览器兼容问题就是这么解决的。POST 的差别同样的请求如果用 POSTPOST /brand HTTP/1.1 ← 请求行没有 ? 参数了 Host: www.example.com Content-Type: application/json ← 告诉服务器请求体是 JSON Content-Length: 85 ← 请求体长度 ← 空行请求头结束的标记 {name:OPPO,status:1} ← 请求体参数在这里区别一目了然GET 把参数挂在 URL 后面POST 把参数藏在请求体里。这也解释了为什么 GET 的 URL 有长度限制浏览器对地址栏长度有限制、安全性较低参数暴露在地址栏而 POST 没有长度限制、相对安全一点——但不是绝对安全因为 POST 的请求体同样可以被抓包工具看到。响应服务器返回给浏览器服务器收到请求处理完按同样的三段式格式回复HTTP/1.1 200 OK ← 响应行 Content-Type: text/html; charsetutf-8 ← 响应头 Content-Length: 582 ← 空行 !DOCTYPE html ← 响应体浏览器真正渲染的内容 html.../html响应行最重要的是中间那个数字200——状态码。它用一个数字告诉你这次请求的结果。日常开发中你只需要对三个状态码有直觉反应状态码看到它你该想到什么200一切正常。请求成功数据拿到了。404你访问的路径不存在。检查 URL 拼写或者看后端有没有写这个接口。500服务器崩了。代码抛了异常去查日志。其他状态码以后再认1xx 是“等一下还没处理完”3xx 是“你要的东西搬到别处了”4xx 系列里还有 401未授权、403禁止访问5xx 系列里还有 502/503网关/服务问题。响应头里同样是一堆Key: Value——Content-Type告诉浏览器返回的是什么类型HTML、JSON、图片等Content-Length告诉浏览器数据有多大。响应体就是浏览器真正要渲染或处理的内容比如 HTML、JSON 数据、图片二进制流。总结今天你完成了从零到一的 SpringBoot Web 应用搭建理解了 SpringBoot 的定位——不是替代 Spring而是让你更快用上 Spring。体验了 SpringBoot 的“快”——三步建项目、写 Controller、启动就让浏览器里出现了Hello World。拆解了 Web 通信的三要素——IP、端口、资源路径对应到你的localhost:8080/hello。认识了 HTTP 协议的基本格式——请求行/头/体响应行/头/体以及 GET 和 POST 传参的区别。下一节我们会让这个Hello World变得更“有用”——接收参数、返回 JSON、连接数据库。但今天先享受这行字出现在你自己服务器上的成就感吧。

相关新闻

2026/8/4 3:17:58

学术会议投稿筛选与录用率提升全攻略

1. 学术会议投稿全攻略:如何高效筛选高价值会议刚开年就收到实验室师弟的求助:"师兄,导师让我投个会议,但搜出来几十个选项完全不会选..."这场景太熟悉了。作为发过7篇顶会的老油条,我整理了一份2026上半年值…

2026/8/4 3:17:58

Oracle定时任务实战:DBMS_JOB与存储过程实现自动化作业

1. 项目概述:为什么我们需要在Oracle里“定闹钟”?在数据库运维和业务开发里,我们经常会遇到一些需要周期性、自动化执行的任务。比如,每天凌晨两点清理临时表里的历史数据,每周一早上八点给业务部门发送一份统计报表&…

2026/8/4 4:23:02

Linux grep命令深度解析:从正则表达式到高效日志排查实战

1. 项目概述:为什么grep是Linux工程师的“瑞士军刀”?在Linux世界里,处理文本和日志是家常便饭。无论是排查一个线上服务的错误,还是从成千上万的配置文件中找到某个特定的参数,我们都需要一种高效、精准的“搜索”能力…

2026/8/4 4:23:02

HikariCP连接池:高性能Java数据库连接管理原理与实战配置

1. 从“连接”说起:为什么我们需要连接池?如果你写过任何需要和数据库打交道的Java应用,那么对DriverManager.getConnection()这行代码一定不陌生。这行代码的职责很简单:建立一条从你的应用进程到数据库服务器的网络连接。在早期…

2026/8/4 4:23:02

C++桌面应用系统通知开发指南:WinToast库集成与实战

1. 项目概述:为什么我们需要WinToast?如果你在Windows平台上用C开发桌面应用,尤其是那些需要和用户进行轻量级、非阻塞交互的工具,比如一个下载完成提醒、一个后台任务的状态更新,或者一个即时通讯软件的来新消息提示&…

2026/8/4 4:23:02

企业系统越多,数据越不通,这层打通到底难在哪

很多公司的数字化是这样的:销售用一套系统、仓储用一套、财务用一套、售后又一套。每个系统都挺好用,问题在于它们各自记账、各自编码、各自定义什么叫"客户"。 于是出现一个尴尬的局面——明明公司里数据多得是,但真要回答一个跨部…

2026/8/4 4:23:02

老板想看一份数据,为什么全公司要忙三天

很多老板都有过这样的经历:开早会随口问了一句"上周各区域回款怎么样,跟目标差多少",本以为是个很简单的问题,结果底下忙活三天才给出一张表。 不是员工不努力,而是这张表背后牵扯了一堆事——回款在财务系统…

2026/8/4 4:18:02

Unity C#源码深度解析:从API调用到引擎原理的进阶指南

1. 项目概述:为什么Unity C#源代码值得深挖?如果你在Unity开发这条路上已经走了一段时间,从跟着教程做Demo到能独立完成一些小功能,可能会遇到一个瓶颈:很多API你只是会用,但不知道它内部是怎么跑的。比如&…

2026/8/3 21:14:30

如何用免费工具突破游戏窗口限制:SRWE完整使用指南

如何用免费工具突破游戏窗口限制:SRWE完整使用指南 【免费下载链接】SRWE Simple Runtime Window Editor 项目地址: https://gitcode.com/gh_mirrors/sr/SRWE 你是否遇到过这样的困扰?想为心爱的游戏截图,却发现游戏不支持自定义分辨率…

2026/8/4 0:02:01

dealsea是什么?跨境卖家必知的美国deal站入门指南

说实话,第一次听说美国这个老牌折扣网站的跨境卖家,十个有八个会问同一个问题:这个平台到底是干嘛的?我见过一个做家居出口的朋友,他在亚马逊上月销二十万美金,却从来没用过它。我给他看了首页——一屏一屏…

2026/8/3 22:40:58

实测才敢推 AI论文网站 2026最新测评与推荐

2026年真正好用的AI论文网站,核心看生成的论文质量、低AI味、格式正确、学术适配四大指标。综合实测,千笔AI、ThouPen、豆包、DeepSeek、Grammarly 是当前最值得推荐的梯队,覆盖从免费到付费、从中文到英文、从文科到理工的全场景需求。一、综…

2026/8/3 13:26:41

2026必备!AI论文网站测评:最新推荐与深度对比

2026年真正好用的AI论文网站,核心看生成的论文质量、低AI味、格式正确、学术适配四大指标。综合实测,千笔AI、ThouPen、豆包、DeepSeek、Grammarly 是当前最值得推荐的梯队,覆盖从免费到付费、从中文到英文、从文科到理工的全场景需求。 一、…

2026/8/3 16:43:13

摆脱论文困扰!盘点2026年全网爆红的的AI论文写作工具

一天写完毕业论文在2026年已不再是天方夜谭。2026年最炸裂、实测能大幅提速的AI论文写作工具,覆盖选题构思、文献整理、内容生成、格式排版等核心场景,真正帮你高效搞定论文难题。 一、全流程王者:一站式搞定论文全链路(一天定稿首…