springMVC
1、什么是springMVC
在介绍什么是 SpringMVC 之前,我们先看看 Spring 的基本架构。如下图:
我们可以看到,在 Spring 的基本架构中,红色圈起来的 Spring Web MVC ,也就是本系列的主角 SpringMVC,它是属于Spring基本架构里面的一个组成部分,属于SpringFrameWork的后续产品,是一个基于MVC设计模式的框架。
2、springmvc工作原理图
3、springmvc工作流程
1、用户向服务端发送一次请求,这个请求会先到前端控制器DispatcherServlet(也叫中央控制器)。
2、DispatcherServlet接收到请求后会调用HandlerMapping处理器映射器。根据请求信息(如url)得知,获取到相应的handler
3、DispatcherServlet调用HandlerAdapter处理器适配器,告知处理器适配器应该去执行哪个handler
4、HandlerAdapter处理器适配器根据handler规则执行不同类型的handler,执行完成后得到ModelAndView(数据和视图)对象,并返回给DispatcherServlet
5、DispatcherServlet将获得的ModelAndView交给ViewReslover(视图解析器)进行解析,然后返回真正的view(视图)。
6、DispatcherServlet对view进行渲染视图
7、最后DispatcherServlet将结果响应给用户
4、组件和对象说明
- DispatcherServlet:前端控制器,也称为中央控制器,它是整个请求响应的控制中心,组件的调用由它统一调度。
- HandlerMapping:处理器映射器,它根据用户访问的 URL 映射到对应的后端处理器 Handler。也就是说它知道处理用户请求的后端处理器,但是它并不执行后端处理器,而是将处理器告诉给中央处理器。springmvc提供了不同的映射器实现不同的映射方式,根据一定的规则去查找,例如:xml配置方式,实现接口方式,注解方式等。由框架实现
- HandlerAdapter:处理器适配器,它调用后端处理器中的方法,返回逻辑视图 ModelAndView 对象。
- ViewResolver:视图解析器,将 ModelAndView 逻辑视图解析为具体的视图(如 JSP)。
- Handler:后端处理器,对用户具体请求进行处理,也就是我们编写的 Controller 类。
- ModelAndView是springmvc的封装对象,将model和view封装在一起。
-
View:是springmvc的封装对象,是一个接口, springmvc框架提供了很多的View视图类型,包括:jspview,pdfview,jstlView、freemarkerView等。一般情况下需要通过页面标签或页面模版技术将模型数据通过页面展示给用户,需要由程序员根据业务需求开发具体的页面。
5、springMVC的优点
1.具有Spring的特性
2.可以支持多种视图,不仅仅局限于jsp,(jsp,freemaker)等
3.配置方便
4.非侵入
5.分层更加清晰,实现了业务系统各个组件之间的解耦,利于团队开发的代码维护和扩展,以及可读性好。