什么是SpringMVC?
SpringMVC是实现了MVC设计模式的轻量级web层框架,使用方便。SpringMVC的优势是什么?
1、职责划分清晰:
前端控制器((dispatcher servlet ) ) ) ) ) ) ) ) ) )。
请求到处理器的映射(HandlerMapping )
处理器适配器(HandlerAdapter ) )。
“视图解析器”。
或页面控制器
验证器
命令对象(绑定有命令请求参数的对象称为命令对象)
表单对象(Form Object为查看和提交表单提供的对象称为表单对象。
2、分工明确,且扩张点相当灵活,容易扩张。 虽然几乎不需要。
3、因为指令对象是POJO,所以不需要继承框架特定的API,可以直接将指令对象用作业务对象。
4、与Spring其他框架无缝集成是其他Web框架所没有的。
5、可适应,通过HandlerAdapter支持任何类作为处理器。
6、定制性、处理程序映射、视图资源器等非常容易定制。
7、强大的数据验证、格式和绑定机制。
8、利用Spring提供的Mock对象,可以非常简单地进行Web层单元测试。
9、支持本地化、主题分析,便于国际化和主题切换。
10、强大的JSP标记库,便于创建JSP。
例如,rest风格支持、简单文件上传、约定大于配置的契约型编程支持,以及基于注释的零配置支持。
与Struts2的对比:
共同点:都是基于MVC设计模式的表示层框架,底层实现离不开原始servlet,处理请求的机制都是核心控制器
不同: Spring MVC的入口是servlet,Struts2是过滤器
虽然Spring MVC是基于方法设计的,但Struts2是基于类的,每次运行Struts2时都会创建一个操作类。 所以Spring MVC会比Struts2快一点。
相比之下,SpringMVC完全超过了Struts2。
执行流程:
dispatcher servlet :是整个springmvc框架的核心。
前控制器/核心控制器:的所有请求和响应都由该控制器指定。
前端控制器的所有工作都是基于组件的。
三个主要组件:
HandlerMapping:根据客户端请求查找相应的hadler,找到后将其返回给dispatcher servlet;
HandlerAdapter:执行找到的Handler方法。 方法执行后,返回值传递给HandlerAdapter,HandlerAdapter将返回值传递给DispatcherServlet。
ViewResolver:根据dispatcher servlet指定的结果搜索相应的页面,并将搜索结果返回给dispatcher servlet。
dispatcher servlet负责最终响应,默认情况下是传输操作。
执行流程图:
画中有几个灵魂,大致流程是这样的。 请参考理解。
谢谢你玩得开心!