《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.properties或application.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:run或java -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 查询或批量操作
< 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= new PageInfo < > ( 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 核心步骤(顺序必须掌握) 获取数据库连接 (DriverManager.getConnection())创建 Statement / PreparedStatement 执行 SQL 语句 处理结果集 (ResultSet)释放资源 (依次关闭 ResultSet、Statement、Connection)9.2 Statement 与 PreparedStatement 的区别 对比项 Statement PreparedStatement 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 完整流程 实体类 :创建与表对应的 Java 实体类(使用 Lombok 简化)。Mapper 接口 :定义数据访问方法,用@Mapper标记。Mapper.xml :编写 SQL 映射文件,实现动态 SQL。Service 接口 :声明业务方法。Service 实现类 :用@Service标记,@Autowired注入 Mapper,实现业务方法。Controller :用@RestController标记,@Autowired注入 Service,暴露 API。前端 :用 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 + AxiosAPI 测试 :Apifox / Postman代码简化 :Lombok分页插件 :PageHelper整理说明 :以上知识点完全覆盖 A 卷所有题型(选择、判断、简答、读题写结果、填空、编程)所涉及的考点,既包括基础概念,也包含实战细节。建议同学结合课堂项目和实验代码对照复习。