# 动态web程序设计2401
**Repository Path**: gufl-edu/dwp2401
## Basic Information
- **Project Name**: 动态web程序设计2401
- **Description**: No description available
- **Primary Language**: Unknown
- **License**: Not specified
- **Default Branch**: master
- **Homepage**: None
- **GVP Project**: No
## Statistics
- **Stars**: 3
- **Forks**: 0
- **Created**: 2026-02-28
- **Last Updated**: 2026-03-20
## Categories & Tags
**Categories**: Uncategorized
**Tags**: None
## README
# 动态Web程序设计学习文档
#### 导语
欢迎来到软件工程系的《动态Web程序设计》课程!
与侧重于底层基础的传统Web技术不同,本课程直接对接**当前互联网企业的核心技术栈**。
我们将基于《Spring+Spring MVC+MyBatis+Spring Boot框架整合开发》全新教材,带你从零构建现代化的企业级Web应用。
无论你是为了应对未来的毕业实习,还是希望在简历上增添一个拿得出手的全栈项目,这门课都将是你进阶路上的重要基石。
为了让大家学得轻松、写得爽快,课程会结合生动有趣的案例(如电商购物车、名片管理系统等),并鼓励大家在理解原理的基础上,尝试使用AI辅助工具来提高编码效率。
---
## 课程简介
- 1-8周,每周两次课
- 总共32学时,理论:16,实践:16
- 学分:2.0
- 最终成绩组成:平时成绩(50%)+期末测验(50%)
- 平时成绩评定:课堂表现(20%)+作业(30%)+项目实战或测验(50%)
- 期末考试形式1:开卷机试,要求在限定时间内完成一个小型的Web应用开发任务。
- 期末考试形式2:小组形式完成一个基于Spring Boot的完整项目,包含前后端交互和数据库操作,并进行现场演示和答辩。
> 课程思维导图:
>
## 一、 开发环境配置与起航
> “工欲善其事,必先利其器。” 第一堂课我们将从搭建一套专业的开发环境开始。
* **环境搭建教程**:[README_ENV.md](ENV.md) (包含 JDK 17+, IntelliJ IDEA, Maven, MySQL 8.0 的安装与配置)
* **必备生产力工具箱**:
* [IntelliJ IDEA 官方下载](https://www.google.com/search?q=https://www.jetbrains.com/idea/download/)(推荐Ultimate旗舰版,对Spring Boot支持更完美)
* [Navicat / DataGrip] 数据库可视化管理工具
* [Postman] 接口测试利器
---
## 二、 课程知识脉络与学习计划
本课程共计 **16次课**(包含期中、期末2次测验),核心教学内容分为 **14讲**。
每次课都包含核心原理解析、企业级代码演示以及课后巩固闯关。
### 第一阶段:基石筑基 (核心框架原理)
这一阶段我们将掌握Spring的“灵魂”,理解现代JavaWeb是如何解耦和运转的。
* **[第一讲:开宗明义——开发环境构建与Spring初探](lessons/lesson01/README.md)**
* *要点*:课程背景介绍、IDEA环境配置、Maven包管理入门、跑通第一个Spring/Spring Boot Demo。
* *练习*:完成本地环境搭建,并成功输出 "Hello, Spring!"。
* **[第二讲:把控制权交出去——Spring IoC与依赖注入](lessons/lesson02/README.md)**
* *要点*:IoC容器概念、Bean的生命周期、基于注解(`@Component`, `@Autowired`)的依赖注入。
* *练习*:不使用 `new` 关键字,利用IoC容器组装一个“汽车制造”或“奶茶订单”的小程序。
* **[第三讲:无痛增强代码——Spring AOP与动态代理](lessons/lesson03/README.md)**
* *要点*:面向切面编程思想、JDK与CGLIB动态代理、基于注解开发AspectJ。
* *练习*:为你的系统悄悄加上“操作日志记录”功能,而不修改原有业务代码。
### 第二阶段:Web通信与数据流转 (Spring MVC + MyBatis)
彻底告别繁琐的Servlet,学习如何优雅地接收前端请求并与数据库打交道。
* **[第四讲:优雅的请求分发——Spring MVC初体验](lessons/lesson04/README.md)**
* *要点*:MVC设计模式、`DispatcherServlet`工作原理、`@Controller`与`@RequestMapping`。
* *练习*:编写一个简易的“天气查询”接口,接收城市参数并返回结果。
* **[第五讲:前后端对话——数据绑定与JSON交互]**
* *要点*:各种参数类型的接收(实体Bean、URL参数等)、Restful风格、`@ResponseBody`与JSON转换。
* *练习*:实现一个用户注册接口,接收前端提交的JSON表单数据并进行格式化打印。
* **[第六讲:坚固的城墙——拦截器与全局异常处理]**
* *要点*:拦截器的执行流程、用户登录权限验证案例、`@ControllerAdvice`统一异常处理。
* *练习*:为系统添加VIP鉴权拦截器,并友善地处理并返回所有的空指针/数学运算异常。
* **[第七讲:告别硬编码——MyBatis持久层框架入门]**
* *要点*:MyBatis工作原理、核心配置、Mapper接口开发模式、基础的CRUD操作。
* *练习*:建一张“图书表”,使用MyBatis完成对图书的增删改查。
* **[第八讲:智能的SQL——MyBatis动态SQL与级联查询]**
* *要点*:``、``等动态标签、一对多/多对多级联查询、缓存机制简介。
* *练习*:实现一个带有多个可选筛选条件(价格区间、分类、名称模糊匹配)的商品高级搜索功能。
### 第三阶段:起飞!Spring Boot 极速开发
摒弃繁琐的XML配置,拥抱“约定大于配置”的现代开发模式。
* **[第九讲:化繁为简——Spring Boot核心特性解析]**
* *要点*:Starters机制、`application.yml`全局配置、自动配置原理(底层源码浅析)。
* *练习*:将之前的SSM工程重构为纯Spring Boot工程,体验“零XML”的快感。
* **[第十讲:让页面动起来——Thymeleaf模板引擎]**
* *要点*:Thymeleaf基础语法、数据渲染、结合BootStrap实现响应式页面。
* *练习*:开发一个动态的“教务新闻公告列表”页面。
* **[第十一讲:企业级神兵利器——MyBatis-Plus极速入门]**
* *要点*:MP核心组件、BaseMapper内置方法、条件构造器(Wrapper)、代码生成器(极大解放生产力)。
* *练习*:使用代码生成器一键生成“学生选课模块”的Controller/Service/Mapper/Entity层代码。
* **[第十二讲:对自己写的代码负责——JUnit 5与接口测试]**
* *要点*:单元测试环境构建、断言机制、Postman的高级用法(环境变量、自动化脚本)。
* *练习*:为你写的核心业务逻辑(如购物车计算金额)编写单元测试,并提供完整的Postman接口文档。
### 第四阶段:真刀真枪搞项目 (综合实践)
融合所学,团队协作或独立完成一个具备商业雏形的系统,为实习和毕业设计打下坚实基础。
* **[第十三讲:项目实战(上)——系统设计与后台管理开发]**
* *要点*:需求分析、数据库表结构设计(以名片管理系统或电商子系统为例)、基于模块化的后台RBAC权限与商品/数据管理实现。
* *挑战*:完成系统的骨架搭建与管理员登录及后台数据统计接口。
* **[第十四讲:项目实战(下)——前台业务闭环与项目部署]**
* *要点*:前台用户注册登录、业务主流程打通(如下单、加入收藏)、Linux服务器部署预览。
* *挑战*:完成完整的前后端联调,并尝试将其打包为 `jar` 文件运行。
---
## 三、 拓展武器库
在开发过程中,除了写代码,如何管理代码和提升效率同样重要。
### 1. 代码版本控制 (Git)
团队协作的核心技能,企业开发的必备素养。
* [Git 基础命令速查与 Gitee 推送指南](https://www.google.com/search?q=GIT.md)
* [推荐教程:廖雪峰的 Git 教程](https://www.liaoxuefeng.com/wiki/896043488029600)
### 2. 拥抱 AI 辅助开发
在当前的开发环境下,学会让大语言模型(如通义千问、文心一言或内置的代码助手)成为你的“结对编程”伙伴。
* **推荐尝试**:在编写复杂的 SQL、正则表达式,或者遇到了难以排查的报错提示时,尝试向 AI 提问并分析它的回答,这会极大加速你的Debug过程。
---
** 老师的寄语:**
编程不仅是一门工程科学,更是一门手艺。看懂代码和写出代码之间,隔着无数次报错与重构。请务必多敲键盘,多看报错日志。祝大家在这门课中满载而归,学习愉快!如果需要老师随时帮忙解决BUG,准备好你的报错截图来找我吧!