web前端基础到入门——09day

发布时间:2026/9/20 1:56:44

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/9/20 1:56:44

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

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

2026/9/20 1:56:45

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

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

2026/9/21 1:12:26

2026年9月知名GEO机构哪家好榜单TOP5:谁更适合你的企业一文看懂

随着AI搜索时代的全面降临,传统营销的逻辑正在经历一场降维打击式的重构。知名GEO机构哪家好已成为超过68%的国内中大型企业在制定年度数字化预算时的核心关切。在DeepSeek、豆包、文心一言等生成式引擎占据用户流量入口的当下,品牌若无法在AI的“答案区…

2026/9/21 1:12:26

还在为geo优化公司怎么选发愁?深度测评与选型避坑清单

geo优化公司怎么选?在2026年9月的当下,这已不再是一个关于营销渠道的次优选,而是关乎企业在AI流量红利期生存主权的核心命题。更具冲击力的数据是,超过68%的中大型企业已将生成式引擎优化(GEO)正式纳入年度…

2026/9/21 1:12:26

2026国产AI编程平台选型指南:主流产品能力对比与落地建议

2026年了,AI编程平台在企业里早就不是什么新鲜词。上个月帮朋友公司做研发效能工具的选型,我把国内主流通义灵码、百度Comate、腾讯AI代码助手、字节Trae、华为CodeArts Snap、智谱CodeGeeX这些方案几乎挨个过了一遍。说句实话,从2023年那个“…

2026/9/21 1:07:26

AI编程与本地部署实战:从工具链到企业级应用

打开今天的AI热搜榜,和前几天最大的不一样,是AI编程和本地部署这两个方向明显压过了单纯的对话、生图类话题。从“ai编程提示词”“ai大模型本地部署配置”到“spring ai”“ai agent”,再到“ai短剧”“ai应用开发学习路线”,热度…

2026/9/20 0:04:49

GAMP 5 基于风险的计算机化系统验证:软件分类与审计追踪实践

简介:《A Risk-Based Approach to Compliant GxP Computerized Systems》即业内熟知的GAMP 5指南,面向制药企业质量与IT合规人员、验证工程师及计算机化系统管理者,用于解决GxP法规环境下系统合规性难以科学落地的问题。文档以风险管理为主线…

2026/9/20 0:04:49

安全托管MSSP实战:从静态防御到人机协同的攻防运营与应急响应

简介:这份PPT围绕互联网业务安全托管服务展开,面向企业安全负责人、IT运维人员及关注MSSP/MSS选型的读者,重点回应传统安全过度依赖人工、碎片化静态防御难以对抗产业化攻击等痛点。资源共1个pptx文件,包体约30.63MB,以…

2026/9/21 0:02:23

OpenResearch:构建可复现的开放式研究工作流

第一次看到“OpenResearch”这个名字,我脑子里冒出的不是某个具体软件,而更像一种研究方式的宣言:开放、可复现、可验证。这三件事放在一起,其实比大多数人想象中难得多。过去几年我一直在折腾自己的研究工作流,从纯纸…

2026/9/20 4:54:47

USB Type-C PCB布局分区设计:电源、高速信号与PD协议全攻略

做硬件这行,Type-C接口算是典型的“看着简单,做起来全坑”的东西。光引脚就24个,高低速信号、电源、控制线全部塞在一个小小的连接器里,如果PCB布局不做规划,打样回来基本就是“插上没反应”、“高速掉线”、“静电一打…

2026/9/20 5:01:23

系统编程学习原型如何补齐稳定性边界

系统编程学习原型如何补齐稳定性边界预算有限时&#xff0c;我先优化明显多余的复制&#xff0c;而不是猜测性地换容器。用借用传递只读数据通常就能减少分配&#xff1a; fn parse(line: &str) -> Result<Item, Error> { /* ... */ }用基准确认热点确实在分配&am…

2026/9/20 5:09:33

雨花区哪家财务公司代理记账比较好?

在雨花区&#xff0c;企业处理财税事务常常面临诸多挑战&#xff0c;选择一家靠谱的财务公司至关重要。湖南巨勤财务管理咨询有限公司就是本地正规实体财税服务机构&#xff0c;深耕本地工商财税行业多年&#xff0c;熟悉当地工商局、税务局最新政策与申报流程。主营公司注册、…

还想了解更多?直接咨询顾问

免费诊断 + 免费方案 + 透明报价。

全国咨询热线400-8866-253
免费获取方案
咨询二维码