考试知识点梳理

《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 卷所有题型(选择、判断、简答、读题写结果、填空、编程)所涉及的考点,既包括基础概念,也包含实战细节。建议同学结合课堂项目和实验代码对照复习。