学习日记-SpringMVC-day48-9.2

知识点:

1.springmvc文档

|-----------------------------|------------------------------------|----------------------------------------|
| 知识点 | 核心内容 | 重点 |
| Spring MVC 定义 | 基于 Spring 的 Web 层 MVC 框架 | 与 Spring 的关系(属于 Spring 部分) |
| Spring MVC 文档位置 | 在 spring-webmvc 模块的 docs/javadoc 中 | 文档结构(DispatcherServlet、Filter、注解等) |
| Spring MVC 与 Spring 的关系 | Spring MVC 是 Spring 的子模块 | 单独讲解原因(功能重要性) |
| 快速入门流程 | 1. 文档查阅 2. 基础示例 3. 逐层深入 | 依赖包复用(与 Spring 核心包相同) |

2.SpringMVC特点和概述(1)

|-------------------|------------------------------------------|--------------------------------|
| 知识点 | 核心内容 | 重点 |
| Spring MVC 特点 | 比 Struts2 更易用高效,接管 Web 层组件(控制器、视图解析等) | Struts2 与 Spring MVC 的优劣对比 |
| Spring MVC 定位 | Web 层框架(完整名称:Spring Web MVC),支持 MVC 开发模式 | Web 层与 MVC 模式的关系 |
| MVC 架构解析 | 控制器(Servlet)→ 模型(业务逻辑)→ 视图(响应渲染) | 原生 Web 开发与 MVC 框架的差异 |
| 三层架构中的 Web 层 | 接收请求→调用 Service→返回响应(重定向/转发) | Web 层技术多元化问题 |
| 框架接管优势 | 统一开发标准、提升效率、简化组件管理(如控制器、视图解析) | 无框架时的开发痛点 |

3.SpringMVC特点和概述(2)

|---------------------|-----------------------------------------------------|-------------------------------|
| 知识点 | 核心内容 | 重点 |
| Spring MVC控制器实现 | 通过注解(如@Controller)将POJO转为控制器,无需继承类或实现接口 | 对比传统Servlet开发(需继承HttpServlet) |
| 请求映射 | 方法级URL Pattern直接映射,简化开发 | 注解配置与XML配置的区别 |
| 低耦合设计 | 组件化设计提升扩展性和灵活性 | 与紧耦合架构的对比 |
| REST风格支持 | URL直接体现业务语义(增删改查) | RESTful与传统URL差异 |
| Spring依赖关系 | 必须基于Spring IOC容器运行,核心包为spring-web和spring-webmvc | 独立使用Spring MVC的可行性 |

4.Spring SpringMVC SpringBoot关系

|-------------------------------------|-------------------------------------------------------------------------------------------|----------------------------------------|
| 知识点 | 核心内容 | 重点 |
| Spring、Spring MVC、Spring Boot关系 | Spring MVC是Spring处理Web层请求的模块,基于Servlet;Spring Boot是简化开发的框架,包含Spring和Spring MVC,遵循约定优于配置原则 | Spring MVC与Servlet的关系、Spring Boot的包含层级 |
| Spring MVC基石 | 本质基于JAVA Web原生Servlet | 若Servlet基础薄弱,理解Spring MVC会存在障碍 |
| Spring Boot核心特性 | 通过约定优于配置优化Spring配置流程,整合SSM时对比更明显 | "包含Spring和Spring MVC"的层级关系 |

5.SpringMVC快速入门(1)

|----------------|---------------------------------------------------------------|----------------------------|
| 知识点 | 核心内容 | 重点 |
| Spring MVC快速入门 | 完成基本登录测试案例:登录页面→控制器处理→成功页面跳转 | 控制器注解使用 vs 原生Servlet开发 |
| Spring MVC框架优势 | 框架自动处理请求映射、视图解析等底层逻辑 | 初期复杂度 vs 长期开发效率 |
| 请求处理流程 | 极简流程:DispatcherServlet→HandlerMapping→Controller→ViewResolver | 前端控制器与Tomcat的关系 |
| 学习路径设计 | 从简单案例逐步深入底层机制(控制器注入、参数获取等) | 快速实现 vs 深度理解 |
| 视图解析机制 | ModelAndView对象传递→视图解析器配置→JSP页面渲染 | 配置文件路径设置要点 |
| 框架开发理念 | 约定优于配置原则在请求映射中的体现 | 注解驱动 vs XML配置 |

6.SpringMVC快速入门(2)

|--------------------|--------------------------------------------------------------------------------|------------------------------------------------|
| 知识点 | 核心内容 | 重点 |
| Spring MVC项目创建 | 创建外部工程、配置Tomcat、导入Spring MVC开发所需的JAR包(包括Spring基础JAR包和spring-web、spring-webmvc) | JAR包依赖管理(需区分基础Spring包和MVC专用包) |
| Spring配置文件 | 创建applicationContext-mvc.xml文件,用于配置Spring容器和Bean注入 | 配置文件命名和路径(需放在src目录下) |
| 前端控制器配置 | 在web.xml中配置DispatcherServlet,指定URL映射(/)和Spring配置文件路径(contextConfigLocation) | DispatcherServlet的作用(处理所有用户请求,支持REST风格URL) |
| 项目结构规范 | WEB-INF/lib目录存放依赖JAR包,确保DispatcherServlet在项目启动时自动加载 | 目录层级错误(避免将lib放在非WEB-INF目录) |
| REST风格支持 | 通过/配置实现RESTful URL请求处理 | 与传统Servlet路径配置的区别 |

7.SpringMVC快速入门(3)

|---------------------|---------------------------------------------------------|--------------------------------|
| 知识点 | 核心内容 | 重点 |
| Spring MVC控制器创建 | 通过**@Controller注解标识类,无需实现接口或继承类 | @Controller与原生Servlet的区别 |
| 请求映射配置 | 使用
@RequestMapping**(value="/login")为方法配置URL映射 | URL路径拼接规则(工程路径+方法路径) |
| 视图解析器机制 | 返回字符串(如"login_ok")由InternalResourceViewResolver解析为JSP页面 | 返回字符串必须与JSP文件名严格匹配 |
| 登录页面开发 | JSP页面放置于web目录,表单action属性暂留空 | action路径与控制器方法的映射关系 |
| 注解式开发优势 | 对比原生Servlet需配置web.xml,Spring MVC通过注解简化流程 | @RequestMapping替代URL-Pattern配置 |

8.SpringMVC快速入门(4)

|------------------|-----------------------------------------------------------------|--------------------------------|
| 知识点 | 核心内容 | 重点 |
| Spring MVC配置 | 配置application-context-mvc.xml文件,包括自动扫描包和视图解析器 | 扫描包路径必须准确,否则@Controller不生效 |
| 自动扫描包配置 | 通过<context:component-scan>指定com.hsp.edu.web包,扫描@Controller等组件 | 未配置扫描包会导致控制器失效 |
| 视图解析器配置 | 配置InternalResourceViewResolver,设置prefix(路径前缀)和suffix(文件后缀) | 前缀需从web目录开始定位,后缀需与文件类型匹配 |
| 请求路径映射 | login.jsp表单提交路径需不带斜杠,否则会从根路径查找导致404 | 带斜杠 vs 不带斜杠的路径解析差异 |
| Tomcat热加载配置 | 配置Tomcat热部署,确保修改后自动生效 | 需检查application context路径是否正确 |
| 视图跳转逻辑 | 控制器返回字符串(如"loginOK"),视图解析器拼接为完整路径(/WEB-INF/pages/loginOK.jsp) | 返回字符串需与JSP文件名一致 |

9.SpringMVC快速入门注意事项

|--------------------------------|--------------------------------------------------------------------------------|--------------------------|
| 知识点 | 核心内容 | 重点 |
| Spring MVC 注解机制 | @Controller 注解的作用:将普通 Java 类标记为控制器(Handler),接收用户请求并调用业务逻辑 | 不加注解时是普通类,加上后会被扫描为控制器 |
| DispatcherServlet 配置文件加载规则 | 默认配置文件路径:WEB-INF/[servlet-name]-servlet.xml(如未显式配置 contextConfigLocation) | 优先级冲突:显式配置 vs 默认路径规则 |
| 请求映射注解简化 | @RequestMapping 的 value 属性可省略(如 @RequestMapping("/login") 简化为 @RequestMapping) | 隐式路径映射 vs 显式声明 |
| Spring MVC 工作流程底层实现 | 通过自定义 Controller 注解和分发处理器模拟底层机制(后续课程实现) | 扫描机制:注解如何被识别并注册到容器 |
| Web 层控制器的多重命名 | Handler(处理器)与 Controller(控制器)术语差异,实际功能相同 | 命名约定差异(不同框架/文档) |

10.SpringMVC执行流程分析(1)

|----------------------------|------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|----------------------------------------------------------------------------------------------------------------------|
| 知识点 | 核心内容 | 重点 |
| Spring MVC执行流程 | 1. 浏览器请求→前端控制器(DispatcherServlet); 2. 调用处理器映射器(HandlerMapping); 3. 返回处理器执行链(含拦截器+目标Handler); 4. 调用处理器适配器(HandlerAdapter); 5. 执行目标Handler(业务逻辑); 6. 返回ModelAndView; 7. 调用视图解析器(ViewResolver); 8. 视图渲染(数据填充)→响应浏览器 | 关键组件作用: - DispatcherServlet:中央调度; - HandlerMapping:URL映射; 易混淆点: - 处理器执行链 vs 处理器适配器; - ModelAndView结构(数据+视图名) |
| 前端控制器核心作用 | 统一接收请求,协调各组件(映射器、适配器、视图解析器) | - 为什么需要DispatcherServlet?; - 与传统Servlet开发区别 |
| 处理器映射器(HandlerMapping) | 根据请求URL匹配对应的Handler(如@Controller方法) | 易混淆点: - 静态资源映射排除配置; - 默认实现类(如RequestMappingHandlerMapping) |
| 处理器适配器(HandlerAdapter) | 适配不同Handler类型(如基于注解的Controller) | 核心内容: - 为什么需要适配器模式?; - 常见适配器实现类 |
| 视图解析器(ViewResolver) | 解析逻辑视图名→物理视图(如JSP/Thymeleaf路径) | - 配置前缀/后缀(如/WEB-INF/views/); - 前后端分离时无需视图解析 |
| 拦截器(Interceptor) | 处理器执行链中包含的预处理/后处理逻辑(如权限校验) | 易混淆点: - 拦截器 vs 过滤器(Filter); - 执行顺序(preHandle→postHandle) |
| 源码调试建议 | 需先掌握基础流程后再通过DispatcherServlet#doDispatch()方法逐步调试 | 难点: - 组件初始化时机(onRefresh()); - 责任链模式的应用 |

11.SpringMVC执行流程分析(2)

|------------------|----------------------------------|-------------------------------------------|
| 知识点 | 核心内容 | 重点 |
| 前端控制器 | Spring MVC最核心部件,负责请求协调和分发 | DispatcherServlet的作用机制 |
| 处理器映射器 | 通过URL找到目标handler的映射机制 | HandlerMapping与HandlerExecutionChain的区别 |
| 处理器适配器 | 调用目标handler的中间层 | 为什么需要适配器而不是直接调用 |
| ModelAndView | 封装处理结果数据和视图信息 | 数据绑定与视图解析的关系 |
| 视图解析器 | 将逻辑视图名解析为实际视图 | JSP/FreeMarker/Thymeleaf等不同视图技术的处理差异 |
| 视图渲染 | 将模型数据填充到视图模板 | 前后端分离时是否需要进行服务端渲染 |
| 拦截器链 | 多个拦截器组成的处理链 | 与过滤器链(FilterChain)的异同点 |
| 自定义实现 | 手动实现核心分发控制器 | DispatcherServlet的核心逻辑复现 |
| 注解机制 | @Controller/@RequestMapping等注解处理 | 注解扫描与映射关系的建立过程 |
| 参数绑定 | 控制器方法获取请求参数的机制 | 各种参数类型(@RequestParam/@PathVariable等)的处理差异 |

12.RequestMapping(1)

|--------------------------|-------------------------------------|------------------|
| 知识点 | 核心内容 | 重点 |
| RequestMapping基本用法 | 在方法上添加@RequestMapping注解并指定URL值 | 注解必须加在控制器方法上 |
| 类与方法级联路径 | 类上的@RequestMapping会与方法上的路径拼接成完整URL | 路径拼接时不能加斜杠前缀 |
| 请求方法限定 | 通过method=RequestMethod.POST指定HTTP方法 | 默认支持GET/POST两种方法 |
| 常用请求方法类型 | GET/POST/PUT/DELETE四种主要方法 | 需对应RESTful风格使用场景 |
| 工程路径处理 | 请求URL需包含localhost:8080/工程路径前缀 | 前端路径不能以斜杠开头 |
| Handler与Controller区别 | 在Spring MVC中两者概念等价 | 命名习惯差异无功能区别 |
| 视图解析流程 | 通过返回"success"字符串匹配JSP页面 | 需提前配置视图解析器 |
| 开发调试技巧 | 使用Postman进行接口测试 | 需掌握工具基本使用方法 |

13.RequestMapping(2)

|------------------------|-------------------------------|--------------------------------------------|
| 知识点 | 核心内容 | 重点 |
| RequestMapping请求方式 | 可指定POST/GET/PUT/DELETE等HTTP方法 | 必须与控制器方法声明一致,否则报405错误 |
| Spring MVC默认支持 | 控制器默认支持GET和POST方法 | 不指定时两种方式均可调用 |
| 405错误分析 | 请求方式与后端指定方法不匹配时报错 | 典型错误信息:request method GET is not supported |
| JSP修改验证 | 修改JSP请求方式无需重启服务 | 但Java代码变更需要重新发布项目 |
| 请求方式实验 | 通过修改JSP表单method属性验证GET/POST调用 | 未指定method时两种方式均可成功调用 |

相关推荐
西岸行者3 天前
学习笔记:SKILLS 能帮助更好的vibe coding
笔记·学习
悠哉悠哉愿意3 天前
【单片机学习笔记】串口、超声波、NE555的同时使用
笔记·单片机·学习
别催小唐敲代码3 天前
嵌入式学习路线
学习
毛小茛3 天前
计算机系统概论——校验码
学习
babe小鑫3 天前
大专经济信息管理专业学习数据分析的必要性
学习·数据挖掘·数据分析
winfreedoms3 天前
ROS2知识大白话
笔记·学习·ros2
在这habit之下3 天前
Linux Virtual Server(LVS)学习总结
linux·学习·lvs
我想我不够好。3 天前
2026.2.25监控学习
学习
im_AMBER3 天前
Leetcode 127 删除有序数组中的重复项 | 删除有序数组中的重复项 II
数据结构·学习·算法·leetcode
CodeJourney_J3 天前
从“Hello World“ 开始 C++
c语言·c++·学习