# 动态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,准备好你的报错截图来找我吧!