Web开发概述

web开发简介

web开发设计两方面,即web前端和web后端

前端重点提供用户界面,后端重点为数据处理

常见的网络应用程序体系结构有两种,一种是客户端/服务器的C/S结构,另一种是浏览器/web服务器的B/S结构

C/S只有客户端和服务器端

B/S就是我们所熟悉的浏览器+Web服务器+数据库模式,具有多层架构

客户端技术

Vue.js: 渐进式 JavaScript 框架

Vue.js 是一个用于构建用户界面的前端 JavaScript 框架。它的核心库只关注视图层,易于上手,并且可以方便地与其它库或现有项目整合。

  1. 响应式数据绑定

    Vue 的核心。通过 data 对象,将 JavaScript 状态与 DOM 视图自动同步。当数据变化时,视图会自动更新。

  2. 组件系统

    允许你将 UI 拆分为独立、可复用的组件,每个组件都有自己的模板、逻辑和样式。这是构建现代大型前端应用的基础。

  3. 声明式渲染

    你只需声明"当数据是什么样子时,视图应该是什么样子"({``{ message }}v-ifv-for),Vue 会自动处理如何高效地更新 DOM。这与 jQuery 那种手动操作 DOM 的命令式方式完全不同。

  4. 虚拟 DOM

    Vue 在内存中维护一个虚拟的 DOM 树。当状态变化时,它会计算出最小化的变更,然后高效地应用到真实 DOM 上,极大提升了性能。

Vue 负责管理整个前端应用的视图、状态和交互逻辑 。它是你应用的前端"大脑"。但当它需要从服务器获取数据时,它本身不具备网络请求能力,这时就需要 AJAX 技术 ,而 Axios 是实现 AJAX 的一个优秀工具。

AJAX: 异步通信的技术理念

AJAX 全称 Asynchronous JavaScript and XML , 但它现在已不再局限于 XML。AJAX 是一种技术理念编程模式 ,它允许网页在不重新加载整个页面的情况下,通过 JavaScript 异步地向服务器发送请求、获取数据并更新部分页面内容

核心原理

  1. 异步:请求在后台发送,不会阻塞用户界面,用户依然可以操作页面。

  2. 基于 XMLHttpRequest (XHR) 对象 :这是浏览器原生提供的、实现 AJAX 的核心 API(尽管现在也有 Fetch API)。

  3. 数据格式 :最初是 XML,但现在最主流的是 JSON

Axios: 基于 Promise 的 HTTP 客户端

是什么? Axios 是一个独立、流行的 JavaScript 库 ,专门用于在浏览器和 Node.js 环境中发送 HTTP 请求。它是实现 AJAX 理念的一个具体、强大的工具

  1. 简洁的 API

  2. 强大的功能

    • 拦截器:可以在请求发出前或响应返回后进行统一处理(如添加 token、处理错误)。

    • 自动转换 JSON 数据:请求和响应的数据会自动与 JSON 进行转换。

    • 客户端支持防御 XSRF

  3. 在 Vue 生态中的友好集成

    • 虽然不是 Vue 官方库,但因其优秀的设计,成为 Vue 社区事实上的标准 HTTP 客户端。许多 Vue 教程和项目都默认使用 Axios。

服务器端技术

XML(可扩展标记语言)

XML是一种用于存储和传输数据的标记语言,它使用自定义标签来描述数据结构。

核心特性

  • 自描述性:标签具有语义,能描述数据含义

  • 跨平台:纯文本格式,与平台无关

  • 可扩展性:用户可以自定义标签

  • 树状结构:数据以层次化方式组织

在Web开发中的应用

  1. 配置文件:web.xml、pom.xml、Spring配置文件

  2. 数据交换:SOAP Web服务

  3. 文档格式:Office文档、SVG图形

  4. RSS订阅:网站内容聚合

Tomcat

Tomcat是一个开源的Web应用服务器,实现了Java Servlet、JSP等规范。

核心组件

text

Tomcat架构:

┌─────────────────────────────────┐

│ Catalina (Servlet容器) │

├─────────────────────────────────┤

│ Coyote (HTTP连接器) │

├─────────────────────────────────┤

│ Jasper (JSP引擎) │

├─────────────────────────────────┤

│ Cluster (集群模块) │

├─────────────────────────────────┤

│ Realm (安全认证模块) │

└─────────────────────────────────┘

HTTP协议详解

请求结构

text

GET /index.html HTTP/1.1 # 请求行

Host: www.example.com # 请求头

User-Agent: Mozilla/5.0

Accept: text/html,application/xhtml+xml

Accept-Language: en-US,en;q=0.5

Accept-Encoding: gzip, deflate

Connection: keep-alive

空行分隔

name=value&age=25 # 请求体(GET通常没有)

响应结构

text

HTTP/1.1 200 OK # 状态行

Content-Type: text/html; charset=utf-8 # 响应头

Content-Length: 1234

Server: Apache/2.4.1

Date: Mon, 18 Jan 2026 10:00:00 GMT

空行分隔

<!DOCTYPE html> # 响应体

<html><head>...</head></html>

HTTP方法

方法 安全 幂等 描述
GET 获取资源
POST 创建资源
PUT 更新资源(完全替换)
DELETE 删除资源
PATCH 部分更新资源
HEAD 只获取响应头
OPTIONS 获取服务器支持的HTTP方法

状态码分类

分类 描述 常见状态码
1xx 信息响应 100 Continue, 101 Switching Protocols
2xx 成功响应 200 OK, 201 Created, 204 No Content
3xx 重定向 301 Moved Permanently, 302 Found, 304 Not Modified
4xx 客户端错误 400 Bad Request, 401 Unauthorized, 403 Forbidden, 404 Not Found
5xx 服务器错误 500 Internal Server Error, 502 Bad Gateway, 503 Service Unavailable

Servlet

Servlet是运行在服务器端的Java程序,用于处理客户端请求并生成动态响应。它是Java EE规范的核心组件。

Servlet生命周期

text

  1. 类加载

  1. 实例化(调用无参构造器)

  1. 初始化(调用 init() 一次)

  1. 服务(对每个请求调用 service() → doGet()/doPost())

│ ↑

│ └── 多线程并发处理

  1. 销毁(调用 destroy(),应用卸载时)

Thymeleaf模板引擎

Thymeleaf是一个现代的服务器端Java模板引擎,用于Web和独立环境。

核心优势

  1. 自然模板:Thymeleaf模板是有效的HTML文件,可以直接在浏览器中打开

  2. Spring集成:与Spring框架无缝集成

  3. 表达式强大:支持Spring EL表达式

  4. 模块化:支持布局、片段重用

常用Thymeleaf表达式

表达式类型 语法 描述
变量表达式 ${...} 访问模型属性
选择表达式 *{...} 在选定对象上执行
消息表达式 #{...} 国际化消息
URL表达式 @{...} 构建URL
片段表达式 ~{...} 引入模板片段

七、Filter(过滤器)

Filter是Java Web中的组件,用于在请求到达Servlet之前或响应发送到客户端之前进行预处理和后处理。

Filter链的执行顺序

text

请求 → Filter1 → Filter2 → Filter3 → Servlet → Filter3 → Filter2 → Filter1 → 响应

预处理 预处理 预处理 处理请求 后处理 后处理 后处理

Listener(监听器)

Listener用于监听Web应用中各种事件的发生,如应用启动/关闭、Session创建/销毁等。

相关推荐
Front思2 小时前
Vue3仿美团实现骑手路线规划
开发语言·前端·javascript
徐同保2 小时前
Nano Banana AI 绘画创作前端代码(使用claude code编写)
前端
Ulyanov2 小时前
PyVista与Tkinter桌面级3D可视化应用实战
开发语言·前端·python·3d·信息可视化·tkinter·gui开发
计算机程序设计小李同学2 小时前
基于Web和Android的漫画阅读平台
java·前端·vue.js·spring boot·后端·uniapp
干前端2 小时前
Message组件和Vue3 进阶:手动挂载组件与 Diff 算法深度解析
javascript·vue.js·算法
lkbhua莱克瓦242 小时前
HTML与CSS核心概念详解
前端·笔记·html·javaweb
沛沛老爹2 小时前
从Web到AI:Agent Skills CI/CD流水线集成实战指南
java·前端·人工智能·ci/cd·架构·llama·rag
和你一起去月球2 小时前
动手学Agent应用开发(TS/JS 最简实践指南)
开发语言·javascript·ecmascript·agent·mcp
GISer_Jing2 小时前
1.17-1.23日博客之星投票,每日可投
前端·人工智能·arcgis