一、SpringMVC 概述
1、Spring 为展现层提供的基于 MVC 设计理念(设计思想) 的优秀的 Web 框架,是目前最主流的 MVC 框架之一;
2、Spring3.0 后全面超越 Struts2,成为最优秀的 MVC 框架;
3、Spring MVC 通过一套 MVC 注解,让 POJO 成为处理请求的控制器,而无须实现任何接口。
4、支持 REST 风格的 URL 请求;(Restful)
5、采用了松散耦合可插拔组件结构,比其他 MVC 框架更具扩展性和灵活性;
二、SpringMVC 是什么
1、一种轻量级、基于 MVC 的 Web 应用框架,偏前端而不是基于业务逻辑层。Spring 框架的一个后续产品;
2、Spring 框架结构图

Spring 框架结构图(老版本)

三、SpringMVC 可以做什么
- 天生与 Spring 框架继承,如:(IOC、AOP)
- 支持 Restful 风格;
- 进行更简洁的 Web 层开发;
- 支持灵活的 URL 到页面控制器的映射;
- 非常容易与其他视图技术集成,如:Velocity、FreeMarker 等等
- 因为模型数据不存放在特定的 API 里,而是放在一个 Model 里(Map 数据结构的实现,因此很容易被其他框架使用)
- 非常灵活的数据验证、格式化和数据绑定机制、能使用任何对象进行数据绑定,不必实现特定框架的 API;
- 更加简单、强大的异常处理;
- 对静态资源的支持;
- 支持灵活的本地化、主题等解析;
四、SpringMVC 怎么用
1、将 Web 层进行了职责解耦,基于请求—响应模型;
2、常用主要组件:
(1)DispatchServlet:前端控制器,核心控制器:对请求统一管理,处理;
(2)Controller:处理器/页面控制器,做的是 MVC 中 C 的事情,但控制逻辑转移到前端控制器了,用于对请求进行处理;
(3)HandlerMapping:请求映射到处理器,找谁来处理,如果映射成功返回一个 HandlerExecutionChain 对象(包含一个 Handler 处理器(页面控制器)对象、多个 HandlerInterceptor 拦截器对象);
(4)View Resolver:视图解析器,找谁来处理返回的页面。把逻辑视图解析为具体的 View,进行这种策略模式,很容器更换其他视图技术;如 InternalResourceViewResolver 将逻辑视图名映射为 JSP 视图;
(5)LocalResolver:本地化、国际化;
(6)MultipartResolver:文件上传解析器;
(7)HandlerExceptionResolver:异常处理器;
五、SpringMVC 的 MVC 实现思想

【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 没有源码,如何修改代码逻辑?
· 一个奇形怪状的面试题:Bean中的CHM要不要加volatile?
· [.NET]调用本地 Deepseek 模型
· 一个费力不讨好的项目,让我损失了近一半的绩效!
· .NET Core 托管堆内存泄露/CPU异常的常见思路
· 微软正式发布.NET 10 Preview 1:开启下一代开发框架新篇章
· 没有源码,如何修改代码逻辑?
· PowerShell开发游戏 · 打蜜蜂
· 在鹅厂做java开发是什么体验
· WPF到Web的无缝过渡:英雄联盟客户端的OpenSilver迁移实战
2019-11-03 算法的时间复杂度与空间复杂度
2019-11-03 排序算法
2019-11-03 递归—八皇后问题
2019-11-03 递归—迷宫问题
2019-11-03 递归