Java Web开发概述
Web开发基础概念
什么是Web开发
Web开发是指创建基于浏览器的应用程序的过程。Web应用程序运行在服务器上,用户通过浏览器访问。
Web应用程序的特点
- 跨平台 - 任何有浏览器的设备都可以访问
- 无需安装 - 用户不需要安装客户端软件
- 易于维护 - 更新只需要在服务器端进行
- 可扩展性强 - 易于横向扩展
B/S与C/S架构
C/S架构(Client/Server)
┌─────────────┐ ┌─────────────┐
│ 客户端 │◄──────►│ 服务器 │
│ (需要安装) │ │ │
└─────────────┘ └─────────────┘优点:
- 响应速度快
- 用户体验好
- 可以充分利用客户端资源
缺点:
- 需要安装客户端
- 维护成本高
- 跨平台困难
B/S架构(Browser/Server)
┌─────────────┐ ┌─────────────┐ ┌─────────────┐
│ 浏览器 │◄──────►│ Web服务器 │◄──────►│ 数据库 │
│ (无需安装) │ │ │ │ │
└─────────────┘ └─────────────┘ └─────────────┘优点:
- 无需安装客户端
- 维护简单
- 跨平台
缺点:
- 响应速度相对较慢
- 用户体验不如C/S
- 依赖网络
HTTP协议基础
HTTP协议概述
HTTP(HyperText Transfer Protocol)是超文本传输协议,是Web开发的基础。
HTTP请求结构
请求行:GET /index.html HTTP/1.1
请求头:Host: www.example.com
Content-Type: application/json
空行
请求体:{"name": "张三"}HTTP请求方法
| 方法 | 说明 | 是否有请求体 |
|---|---|---|
| GET | 获取资源 | 否 |
| POST | 提交数据 | 是 |
| PUT | 更新资源 | 是 |
| DELETE | 删除资源 | 否 |
| PATCH | 部分更新 | 是 |
| HEAD | 获取响应头 | 否 |
| OPTIONS | 获取支持的方法 | 否 |
HTTP响应结构
状态行:HTTP/1.1 200 OK
响应头:Content-Type: text/html
Content-Length: 1234
空行
响应体:<html>...</html>HTTP状态码
| 状态码 | 类别 | 说明 |
|---|---|---|
| 1xx | 信息性 | 请求正在处理 |
| 2xx | 成功 | 请求成功处理 |
| 3xx | 重定向 | 需要进一步操作 |
| 4xx | 客户端错误 | 请求有误 |
| 5xx | 服务器错误 | 服务器处理出错 |
常见状态码:
- 200 OK - 请求成功
- 201 Created - 资源创建成功
- 204 No Content - 成功但无返回内容
- 301 Moved Permanently - 永久重定向
- 302 Found - 临时重定向
- 400 Bad Request - 请求语法错误
- 401 Unauthorized - 未认证
- 403 Forbidden - 禁止访问
- 404 Not Found - 资源不存在
- 500 Internal Server Error - 服务器内部错误
HTTP请求头
| 请求头 | 说明 |
|---|---|
| Host | 目标主机名 |
| User-Agent | 客户端信息 |
| Accept | 可接受的响应类型 |
| Content-Type | 请求体类型 |
| Authorization | 认证信息 |
| Cookie | Cookie信息 |
HTTP响应头
| 响应头 | 说明 |
|---|---|
| Content-Type | 响应体类型 |
| Content-Length | 响应体长度 |
| Set-Cookie | 设置Cookie |
| Location | 重定向地址 |
| Cache-Control | 缓存控制 |
Web服务器介绍
常见Web服务器
| 服务器 | 说明 |
|---|---|
| Apache | 老牌Web服务器,功能强大 |
| Nginx | 高性能Web服务器,反向代理 |
| Tomcat | Servlet容器,运行Java Web应用 |
| Jetty | 轻量级Servlet容器 |
| Undertow | 高性能Web服务器 |
Servlet容器
Servlet容器是运行Servlet的Web服务器,负责:
- 管理Servlet生命周期
- 处理HTTP请求响应
- 提供Web应用部署环境
Servlet 6.1新特性:
- 要求Jakarta EE 11
- 支持HTTP/2
- 改进的WebSocket支持
- 新的HttpOnly Cookie属性
Java Web技术栈
传统Java Web技术栈
┌─────────────────────────────────────┐
│ 前端技术 │
│ HTML + CSS + JavaScript + jQuery │
├─────────────────────────────────────┤
│ Web层 │
│ Servlet + JSP + Filter + Listener │
├─────────────────────────────────────┤
│ 业务层 │
│ JavaBean + Service │
├─────────────────────────────────────┤
│ 数据层 │
│ JDBC + DataSource │
├─────────────────────────────────────┤
│ 数据库 │
│ MySQL / Oracle / PostgreSQL │
└─────────────────────────────────────┘现代Java Web技术栈
┌─────────────────────────────────────┐
│ 前端技术 │
│ Vue.js / React / Angular │
├─────────────────────────────────────┤
│ Web层 │
│ Spring MVC + REST API │
├─────────────────────────────────────┤
│ 业务层 │
│ Spring Framework + Spring Boot │
├─────────────────────────────────────┤
│ 数据层 │
│ Spring Data JPA / MyBatis │
├─────────────────────────────────────┤
│ 数据库 │
│ MySQL / PostgreSQL / MongoDB │
├─────────────────────────────────────┤
│ 中间件 │
│ Redis / RabbitMQ / Kafka │
└─────────────────────────────────────┘Spring生态系统
Spring生态系统
├── Spring Framework(核心框架)
│ ├── IoC容器
│ ├── AOP
│ ├── MVC
│ └── Data Access
├── Spring Boot(快速开发)
│ ├── 自动配置
│ ├── 起步依赖
│ └── 内嵌服务器
├── Spring Cloud(微服务)
│ ├── 服务发现
│ ├── 配置中心
│ ├── 网关
│ └── 断路器
└── Spring Security(安全框架)
├── 认证
└── 授权学习路线
- Java基础 → 掌握Java语法、面向对象
- Web基础 → 理解HTTP、HTML、CSS、JavaScript
- Servlet → 学习Servlet、JSP基础
- Spring Framework → 掌握IoC、AOP、MVC
- Spring Boot → 快速开发Web应用
- Spring Cloud → 微服务架构
- 实战项目 → 综合应用所学知识
下一步
继续学习 Servlet基础,了解Java Web开发的核心技术。