1.1 什么是SpringMVC
SpringMVC是一种基于Java的实现了Web MVC设计模式的请求驱动类型的轻量级Web框架,即使用了MVC架构模式的思想,将web层进行职责解耦,基于请求驱动指的就是使用请求-响应模型,框架的目的就是帮助我们简化开发,Spring Web MVC也是要简化我们日常Web开发的。
简单说,SpringMVC是Spring框架的一个模块,是一个基于MVC的Web框架。
1.2 SpringMVC优势
1. 清晰的角色划分:前端控制器(
DispatcherServlet
)、请求到处理器映射(HandlerMapping)、处理器适配器(HandlerAdapter)、视图解析器(ViewResolver)、处理器或页面控制器(Controller)、验证器( Validator)、命令对象(Command 请求参数绑定到的对象就叫命令对象)、表单对象(Form Object 提供给表单展示和提交到的对象就叫表单对象)。2. 分工明确,而且扩展点相当灵活,可以很容易扩展,虽然几乎不需要;
3. 由于命令对象就是一个POJO,无需继承框架特定API,可以使用命令对象直接作为业务对象;
4. 和Spring 其他框架无缝集成,是其它Web框架所不具备的;
5. 可适配,通过HandlerAdapter可以支持任意的类作为处理器;
6. 可定制性,HandlerMapping、ViewResolver等能够非常简单的定制;
7. 功能强大的数据验证、格式化、绑定机制;
8. 利用Spring提供的Mock对象能够非常简单的进行Web层单元测试;
9. 本地化、主题的解析的支持,使我们更容易进行国际化和主题的切换。
10. 强大的JSP标签库,使JSP编写更容易。
11. 还有比如RESTful风格的支持、简单的文件上传、约定大于配置的契约式编程支持、基于注解的零配置支持等等。
1.3 SpringMVC框架介绍
架构图
步骤说明
第一步:发起请求到前端控制器(DispatcherServlet)第二步:前端控制器请求HandlerMapping查找Handler(可以根据xml配置或注解进行查找)第三步:处理器映射器HandlerMapping向前端控制器返回Handler第四步:前端控制器调用处理器适配器去执行Handler第五步:处理器适配器去执行Handler第六步:处理器向处理器适配器返回ModelAndView(ModelAndView是springmvc框架的一个底层对象,包括Model和view)第七步:处理器适配器向前端控制器返回ModelAndView第八步:前端控制器请求视图解析器去进行视图解析(根据逻辑视图名解析成真正的视图(jsp))第九步:视图解析器向前端控制器返回view第十步:前端控制器进行视图渲染(视图渲染将模型对象(在ModelAndView对象中)填充到request域)第十一步:前端控制器向用户响应结果
组件说明
1. 前端控制器 DispatcherServlet作用:接受请求,响应结果,相当于转发器,中央处理器,有了DispatcherServlet减少了其他组件之间的耦合度2. 处理器映射器 HandlerMapping作用:根据请求的URL查找Handler3. 处理器适配器 HandlerAdapter作用:按照特定规则(HandlerAdapter要求的规则)去执行Handler注意:编写Handler要按照HandlerAdapter要求的去做,这样适配器才可以去正确执行Handler,比如必须实现某接口4. 视图解析器 View resolver作用:进行视图解析,根据逻辑视图名解析成真正的视图view5. 视图ViewView是一个接口,实现类支持不同的View类型(jsp、pdf。。。)