Skip to content

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认证信息
CookieCookie信息

HTTP响应头

响应头说明
Content-Type响应体类型
Content-Length响应体长度
Set-Cookie设置Cookie
Location重定向地址
Cache-Control缓存控制

Web服务器介绍

常见Web服务器

服务器说明
Apache老牌Web服务器,功能强大
Nginx高性能Web服务器,反向代理
TomcatServlet容器,运行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(安全框架)
    ├── 认证
    └── 授权

学习路线

  1. Java基础 → 掌握Java语法、面向对象
  2. Web基础 → 理解HTTP、HTML、CSS、JavaScript
  3. Servlet → 学习Servlet、JSP基础
  4. Spring Framework → 掌握IoC、AOP、MVC
  5. Spring Boot → 快速开发Web应用
  6. Spring Cloud → 微服务架构
  7. 实战项目 → 综合应用所学知识

下一步

继续学习 Servlet基础,了解Java Web开发的核心技术。