当前位置: 首页 > news >正文

考试知识点梳理

《Web应用技术》期末考试知识点整理

本知识点梳理基于试卷,覆盖选择题、简答题、读题写结果题、代码填空题、综合编程题五大题型所涉及的全部考点。

一、Spring Boot 核心基础

1.1 Spring Boot 简介与优势

  • 核心定位:Spring Boot 是 Spring 框架的扩展,旨在简化 Spring 应用的初始搭建和开发过程。
  • 与传统 Spring 框架的区别
    • 传统 Spring 需要大量 XML 或 Java 配置,Spring Boot 通过自动配置减少配置量。
    • Spring Boot 提供起步依赖(Starter),一个依赖包含多个相关库,简化 Maven 管理。
    • Spring Boot 内置 Web 服务器(默认 Tomcat),可打包成可执行 JAR 直接运行,无需外部部署。

1.2 配置文件

  • 默认配置文件application.propertiesapplication.yml
  • 主要作用:配置项目运行参数,如:
    • 服务器端口(server.port
    • 数据库连接信息(spring.datasource
    • 日志级别等

1.3 核心注解

注解作用使用位置
@SpringBootApplication标记启动类,组合了@Configuration+@EnableAutoConfiguration+@ComponentScan启动类
@RestController标记 REST 控制器,相当于@Controller+@ResponseBody,方法返回数据而非视图Controller 类
@Controller标记控制器,返回视图或配合@ResponseBody返回数据Controller 类
@Service标记业务逻辑层组件Service 实现类
@Mapper标记 MyBatis 数据访问层接口Mapper 接口
@Component通用组件注解,可被 Spring 容器扫描管理任意类
@Autowired按类型进行依赖注入字段、构造方法、setter 方法
@Resource按名称进行依赖注入(Java 标准)字段、setter 方法

1.4 依赖注入(DI)与控制反转(IoC)

  • 概念:将对象所需依赖关系的创建和管理交给 Spring 容器,而非对象自身创建。
  • IoC(控制反转):对象的创建权由程序本身反转给 Spring 容器。
  • DI(依赖注入):容器在创建对象时,自动将其依赖的对象注入进去。
  • 优点:降低代码耦合度,提高可测试性和可维护性。
  • 注入方式
    • 字段注入(@Autowired直接写在字段上)
    • 构造方法注入(推荐)
    • setter 方法注入

1.5 请求映射注解(Spring MVC)

注解说明示例
@RequestMapping通用请求映射@RequestMapping(value = "/book", method = RequestMethod.GET)
@GetMapping映射 GET 请求@GetMapping("/book/{id}")
@PostMapping映射 POST 请求@PostMapping("/book")
@PutMapping映射 PUT 请求(更新)@PutMapping("/book/{id}")
@DeleteMapping映射 DELETE 请求(删除)@DeleteMapping("/book/{id}")

1.6 参数接收注解

注解作用示例
@PathVariable接收 URL 路径中的参数@DeleteMapping("/user/{id}")@PathVariable Integer id
@RequestParam接收 URL 查询参数@RequestParam("page") Integer page
@RequestBody接收请求体中的 JSON 数据@RequestBody Student student

1.7 启动类与运行

  • 启动类:包含main方法,使用@SpringBootApplication标记。
  • 运行方式mvn spring-boot:runjava -jar xxx.jar

二、MyBatis 持久层框架

2.1 MyBatis 简介

  • 定位:半自动化的 ORM(对象关系映射)框架。
  • 特点
    • 需要开发者编写 SQL 语句(与全自动 ORM 如 Hibernate 的区别)。
    • 将 SQL 与 Java 代码解耦,提高维护性。
    • 通过 XML 或注解配置 SQL 与方法的映射关系。

2.2 核心注解

注解作用
@Mapper标记接口为 MyBatis 的 Mapper 接口,生成代理实现类
@Select在方法上直接编写查询 SQL
@Insert在方法上直接编写插入 SQL
@Update在方法上直接编写更新 SQL
@Delete在方法上直接编写删除 SQL
@Param为 Mapper 方法的多个参数命名,便于 SQL 中引用

2.3 Mapper.xml 映射文件

  • 核心标签
标签作用
<select>定义查询 SQL
<insert>定义插入 SQL
<update>定义更新 SQL
<delete>定义删除 SQL
<where>动态生成 WHERE 子句,自动处理多余 AND/OR
<if>条件判断,用于动态 SQL
<foreach>循环,用于 IN 查询或批量操作
  • 动态 SQL 示例
<selectid="search"resultType="Student">select * from student<where><iftest="name != null and name != ''">and name like concat('%', #{name}, '%')</if></where></select>

2.4 参数传递

  • 单参数#{参数名}直接引用。
  • 多参数:使用@Param注解,如@Param("studentName") String studentName,SQL 中用#{studentName}引用。
  • 对象参数:直接用对象的属性名,如#{id}#{name}

三、Vue.js 前端框架

3.1 核心概念

  • Vue 实例:通过new Vue({ ... })创建。
  • 核心选项
    • el:挂载点,指定 Vue 管理的 DOM 元素。
    • data:声明响应式数据(必须是函数形式返回对象)。
    • methods:定义方法,通过this.属性名访问 data 中的数据。
    • mounted:生命周期钩子,页面加载完成后自动执行。

3.2 常用指令

指令作用示例
v-for循环渲染列表<tr v-for="item in list">
v-if/v-else条件渲染<div v-if="visible">
v-bind(简写:)动态绑定属性:href="'update.html?id='+item.id"
v-on(简写@)绑定事件@click="deleteItem(id)"
v-model双向数据绑定<input v-model="form.name">

3.3 模板语法

  • 插值表达式{{ 变量名 }},在 HTML 中显示数据。
  • 属性绑定:使用:简写,如:href

3.4 生命周期(重点)

  • mounted:页面 DOM 渲染完成后执行,适合发送初始数据请求(如查询列表)。

3.5 与 Axios 配合

  • Axios:基于 Promise 的 HTTP 库,用于发送 Ajax 请求。
  • GET 请求axios.get('/api/books').then(res => { ... })
  • POST 请求axios.post('/api/book', data).then(res => { ... })
  • DELETE 请求axios.delete('/api/book/' + id).then(res => { ... })
  • 响应处理:通常先检查res.data.code判断业务是否成功,再使用res.data.data获取数据。

四、前后端分离开发

4.1 核心思想

  • 前端负责UI展示用户交互,后端负责业务逻辑数据持久化
  • 前后端通过RESTful API进行数据通信,常见数据格式为JSON

4.2 优势

  • 并行开发:前后端团队可独立开发,只需提前约定 API 接口。
  • 独立部署:前端可部署在 Nginx/CDN,后端部署在服务器。
  • 技术栈解耦:前端可选用 Vue/React,后端可选用 Java/Node.js 等。
  • 可扩展性:同一后端 API 可供 Web、App、小程序等多端使用。

4.3 后端开发人员主要职责

  • 设计数据库表结构。
  • 编写业务逻辑层(Service)和数据访问层(Mapper)代码。
  • 设计并实现 RESTful API 接口(Controller)。
  • 使用 Apifox/Swagger 编写和维护 API 接口文档。
  • 进行接口自测,保证接口的正确性和稳定性。

五、Apifox 接口测试工具

5.1 主要作用

  • API 文档定义与管理
  • 接口调试与测试
  • Mock 数据模拟
  • 团队协作

5.2 使用场景

  • 前后端开发前约定接口规范
  • 后端开发完成后进行接口测试
  • 前端在接口未完成时使用 Mock 数据开发

六、PageHelper 分页插件

6.1 核心用法

// 1. 设置分页参数:页码,每页条数PageHelper.startPage(page,pageSize);// 2. 执行查询(自动在 SQL 后拼接 LIMIT)List<Student>list=mapper.findAll();// 3. 封装为 PageInfo 对象(包含总记录数、总页数等)PageInfo<Student>pageInfo=newPageInfo<>(list);

6.2 PageInfo 关键字段

字段说明
total总记录数
pageNum当前页码
pageSize每页条数
pages总页数
list当前页数据列表
isFirstPage/isLastPage是否首页/末页

6.3 前端分页需要的关键字段

  • 总记录数(total):用于计算总页数、显示“共 X 条”。
  • 当前页数据列表(list):用于在表格中渲染展示。

七、Maven 项目管理工具

7.1 核心配置文件

  • pom.xml:项目对象模型文件,管理项目依赖、构建插件、项目信息。

7.2 核心标签

标签作用
<dependency>声明项目依赖的外部库
<groupId>定义项目组 ID
<artifactId>定义项目构件 ID
<version>定义项目版本号
<plugins>配置构建插件

7.3 主要功能

  • 依赖管理(自动下载所需 jar 包)
  • 项目构建(编译、打包、测试)
  • 生命周期管理

八、Lombok 插件

8.1 主要作用

  • 通过注解在编译时自动生成样板代码,无需手动编写。
  • 不会修改源码,而是通过注解处理器在字节码层面生成代码。

8.2 常用注解

注解生成内容
@Datagetter、setter、toString、equals、hashCode、无参构造
@AllArgsConstructor全参构造方法
@NoArgsConstructor无参构造方法
@Getter/@Setter仅生成 getter 或 setter

九、JDBC 基础(了解层次)

9.1 核心步骤(顺序必须掌握)

  1. 获取数据库连接DriverManager.getConnection()
  2. 创建 Statement / PreparedStatement
  3. 执行 SQL 语句
  4. 处理结果集ResultSet
  5. 释放资源(依次关闭 ResultSet、Statement、Connection)

9.2 Statement 与 PreparedStatement 的区别

对比项StatementPreparedStatement
SQL 注入存在风险可防止
执行效率较低(每次都编译)较高(预编译)
参数处理字符串拼接?占位符 + setXxx

十、RESTful API 设计规范

10.1 核心原则

  • 使用HTTP 方法表示操作类型。
  • 使用URL表示资源。
  • 使用HTTP 状态码表示结果。

10.2 常见映射

操作HTTP 方法URL 示例
查询列表GET/api/books
查询单条GET/api/books/{id}
新增POST/api/books
修改PUT/api/books/{id}
删除DELETE/api/books/{id}

10.3 常见状态码

状态码含义
200 OK请求成功
201 Created创建成功
400 Bad Request请求参数错误
404 Not Found资源不存在
500 Internal Server Error服务器内部错误

十一、分层架构与解耦思想

11.1 三层架构(MVC 模式)

对应组件职责
表现层(Controller)@RestController接收 HTTP 请求,调用 Service,返回响应数据
业务逻辑层(Service)@Service封装业务逻辑,协调多个 Mapper 操作,事务管理
数据访问层(Mapper/DAO)@Mapper直接操作数据库,执行 SQL

11.2 分层解耦的优势

  • 高内聚:每层只关注自己的核心职责。
  • 低耦合:层与层之间通过接口通信,依赖于抽象而非具体实现。
  • 易于维护:某层内部修改不影响其他层。
  • 便于测试:可对每层独立进行单元测试。

十二、典型开发流程(以查询为例)

12.1 完整流程

  1. 实体类:创建与表对应的 Java 实体类(使用 Lombok 简化)。
  2. Mapper 接口:定义数据访问方法,用@Mapper标记。
  3. Mapper.xml:编写 SQL 映射文件,实现动态 SQL。
  4. Service 接口:声明业务方法。
  5. Service 实现类:用@Service标记,@Autowired注入 Mapper,实现业务方法。
  6. Controller:用@RestController标记,@Autowired注入 Service,暴露 API。
  7. 前端:用 Vue + Axios 调用 API,渲染数据。

12.2 新增流程

前端触发 → Vue methods → Axios POST 请求 → Controller 接收 → Service 调用 → Mapper 执行 INSERT → 返回结果

12.3 删除流程

点击删除按钮 → Vue methods 确认 → Axios DELETE 请求 → Controller 接收@PathVariable→ Service 调用 → Mapper 执行 DELETE → 刷新列表

十三、JSON 与数据交互

13.1 基本格式

{"id":1,"name":"张三","major":"计算机"}

13.2 前后端数据传递

  • 后端返回:Controller 方法直接返回对象或Result封装对象,Spring Boot 自动转为 JSON。
  • 前端接收res.data即为 JSON 对象。
  • POST 请求传 JSON:设置请求头Content-Type: application/json,后端用@RequestBody接收。

十四、综合注意事项

14.1 常见易错点

  • @RestController方法不返回视图,而是返回 JSON 数据。
  • PageHelper 必须在查询之前调用,且只对其后的第一个查询生效。
  • Mapper 接口方法多参数时必须用@Param
  • MyBatis 中#{}是预编译占位符,${}是字符串替换(存在 SQL 注入风险)。
  • Vue 的data必须是函数形式,return { ... }
  • 操作数据库后务必释放资源(JDBC 中)。

14.2 开发工具链

  • 构建工具:Maven
  • 后端框架:Spring Boot + MyBatis
  • 前端框架:Vue.js + Axios
  • API 测试:Apifox / Postman
  • 代码简化:Lombok
  • 分页插件:PageHelper

整理说明:以上知识点完全覆盖 A 卷所有题型(选择、判断、简答、读题写结果、填空、编程)所涉及的考点,既包括基础概念,也包含实战细节。建议同学结合课堂项目和实验代码对照复习。

http://www.jsqmd.com/news/1112980/

相关文章:

  • GBase 8c数据库多模存储与多态部署简介
  • G-Helper终极指南:华硕笔记本色彩修复与性能优化完整方案
  • 近期AI量化工具选择,要服务从想法到Python实现
  • 5分钟掌握VinXiangQi:高效实用的AI象棋连线工具终极指南
  • 推荐国内海钓路亚品牌
  • AI学习机实用指南:如何选择真正匹配孩子认知节奏的学习系统
  • 【学习记录】Week9(一):glibc堆结构精读与堆风水方法论——堆利用的基石
  • Seedance2.0实测:轻量级AI短剧生成闭环工具链
  • C++面向对象编程(OOP)核心:类与对象全面精讲
  • 2026年先进的算法、机器学习与数据科学国际会议(AAMLDS 2026)
  • 20260602 Ceph 文件系统
  • Qwen3.6-35B-A3B在AMD与NVIDIA桌面一体机上的实测对比
  • Linux CPU瓶颈排查神器!mpstat命令超全详解|多核CPU精准监控
  • AI的灵感创作
  • 大模型轻量化推理技术选型与实践指南
  • 4K60 over IP 网线延长pcba芯片方案
  • 鸿蒙NEXT原生开发实战:用ArkTS+ArkUI从零构建智能礼物推荐应用
  • 基于鸿蒙NEXT的AI健康管家应用开发全解析:从零构建离线智能健康推荐引擎
  • 多模型路由网关实战:Node.js安全接入Claude与GPT-4o
  • MuleSoft实现企业级AI编排:LLM与ERP/CRM/SAP的可靠集成
  • DeepSeek V4本地部署三步落地:GGUF量化、API代理与中文Tokenizer实战
  • 5个大模型写Todo List实测:前端代码生成能力深度拆解
  • Kimi K2.5:可调度AI协作者系统如何驱动工作模式变革
  • JMeter邮件服务器压测实战:SMTP/POP3协议性能瓶颈定位与优化
  • php路由 if路由
  • 基于Python的重庆市图书馆管理系统
  • 【新闻】英特尔亮相第四届链博会,AI PC生态伙伴艾为电子以全链路芯片点亮 AI PC 新升级
  • utshell核心功能解析:如何实现Bash、Korn和C shell的完美整合
  • 偏度与峰度:数据分布的形状罗盘与建模避坑指南
  • OpenClaw 4核8G低内存优化实战:从5.2GB到1.3GB RSS