1. Spring MVC是什么?
1. Spring MVC 简介
Spring MVC 是一个用于构建 Web 应用程序的 Java 框架,遵循 模型 - 视图 - 控制器 设计模式。它实现了一个 Spring 核心框架的所有基本功能,如 IoC(控制反转)、DI(依赖注入)等。
Spring MVC 通过使用 DispatcherServlet
,使得我们能够方便地在 Spring 框架中使用 MVC ,其中 DispatcherServlet
是一个接收传入请求并将其映射到正确的资源类。
2. Spring MVC 结构
- Model:包含应用程序的数据,数据可以是单一对象,也可以是对象的集合;
-
Controller:包含应用程序的业务逻辑,通常使用
@Controller
注解将类标记为 Controller. - View:一特定格式提供的信息,通常使用 JSP + JSTL 来创建视图页面,此外,Spring 也支持 Themeleaf 和 FreeMaker 等视图技术;
-
Front Controller:Spring MVC 中,由
DispatcherServlet
类充当前端控制器,负责管理 Spring MVC 应用程序的流程。
3. Spring MVC 工作流程
- 如上图所示,首先,传入的请求(
request
)被工作在 前端控制器(front Controller
)的DispatcherServlet
所拦截; - 然后
DispatcherServlet
从 XML 配置文件中获取 处理器映射器(Handler Mapping
)的条目,同时将请求转发给控制器(Controller
); - 接着 控制器(
Controller
)返回一个ModelAndeView
对象; - 最后
DispatcherServlet
根据控制器(Controller
)返回的对象去检查 XML 配置文件中对应的 视图解析器(ViewResolver
)条目,同时调用指定的视图组件,在前端呈现出视图(View
)。
4. Spring MVC 的优势
- 简化 Web 层的开发,易于维护;
- 天生与 Spring 框架集成;
- 提供强大的约定大于配置的契约式编程支持;
- 易于对 Web 单元测试;
- 支持灵活的 URL 到页面控制器的映射;
- 支持静态资源;
- 支持 RESTful 风格;
- 灵活的数据验证、格式化和数据绑定机制,能使用任何对象进行数据绑定,不必实现特定框架 API;
- 提供强大的 JSP 标签库,简化 JSP 开发;
- 支持灵活的本地化、主题等解析;
- 更加简单的异常处理;