Web 后端基础
1) Web 基本概念
- 静态资源:HTML/CSS/JS/图片等,内容不随请求变化
- 动态资源:后端生成的数据/接口(现在主流用 Spring 体系)
- 架构:BS(浏览器/服务器,维护方便) vs CS(客户端/服务器,体验好但维护成本高)
2) SpringBootWeb 入门
-
SpringBoot 优点:简化配置、快速开发
-
spring-boot-starter-web会引入 内嵌 Tomcat,运行启动类 main 即可启动 Web(默认 8080) -
写接口核心注解:
@RestController:返回数据(自动 JSON)@RequestMapping:映射请求路径
3) HTTP 协议(请求/响应)
-
HTTP:浏览器与服务器数据传输规则,特点:基于 TCP、请求-响应、无状态
-
请求格式:请求行(方法+路径+版本)+ 请求头 + 请求体
-
响应格式:响应行(版本+状态码)+ 响应头 + 响应体
-
GET vs POST:
- GET:参数在 URL,请求长度有限,安全性低
- POST:参数在请求体,长度限制少,相对更安全
-
常见状态码:200 / 404 / 500
4) 请求与响应的获取/设置
- Tomcat 会把请求封装成
HttpServletRequest(可取参数、URL、method、header) - 响应可用
HttpServletResponse或ResponseEntity(实际项目一般不手动设置状态码/头,框架自动处理)
5) SpringBootWeb 案例要点
- Controller 返回 对象/集合 ⇒ 自动转 JSON 返回前端
@RestController = @Controller + @ResponseBody
6) 分层架构与解耦(重点)
-
三层架构:
- Controller:接收请求/返回响应
- Service:业务逻辑
- Dao:数据访问(文件/数据库)
-
目的:单一职责、高内聚低耦合、易维护可扩展
-
IOC/DI:
- IOC:对象交给容器创建管理(bean)
- DI:容器把依赖注入进来
-
常用注解:
- bean 声明:
@Controller/@Service/@Repository/@Component - 注入:
@Autowired(按类型)
- bean 声明:
-
多实现类冲突解决:
@Primary/@Qualifier/@Resource(name=...) -
扫描规则:默认扫描 启动类所在包及子包(
@SpringBootApplication内含扫描)