Sping web MVC介绍和实现原理

从字面上来看,Spring web MVC就是使用Spring框架和MVC的设计模式来实现web项目,Spring技术使用Spring容器管理项目繁多的对象,使用IOC和AOP实现项目组件的解耦,MVC是在企业项目中普遍采用的经典的设计模式。
MVC核心就是将项目中的组件分类处理,MVC全名是Model View Controller,是模型(model)-视图(view)-控制器(controller)的缩写,项目组件划分为这三部分,它们之间的协作调用关系如下:
这里写图片描述
这三部分功能分别是:
控制器:接收请求,分发处理。
模型:业务处理
视图:界面响应

在熟悉了MVC的结构和运行流程后,可以将MVC的设计思想整合到Java web的开发中,Java web实现技术有Servlet,JavaBean,JSP等,正好对应MVC的控制器,模型,视图。
这里写图片描述
上图就是使用MVC设计思想实现web项目的流程图,直接使用这样的程序结构不太适合企业大型项目的开发,因为Controller控制器过于臃肿,因为大型项目请求非常多,在控制器中去判断太多请求类型使得分支太多,而且不利于扩展,当前使用较多的框架如Struts2,Spring MVC都是基于此设计思想构建的,在分解Controller控制器的复杂性这里提出了不同的解决方案。

看看Spring web MVC的实现流程和原理。
Spring web MVC提供了DispatcherServlet,HanderMapping,ViewResolver三个重要组件。
DispatcherServlet负责接收请求,进行请求分发。
HanderMapping负责解析xml文件,根据请求名找到对应的业务控制器,业务控制器就是具体Controller组件,不宜添加过多的业务处理的代码,主要是 调用对应的JavaBean进行数据处理。
ViewResolver负责调用视图组件,生成响应信息。

流程图如下 :
这里写图片描述

处理流程是:客户端提出请求,进入DispatcherServlet,DispatcherServlet调用HanderMapping解析xml文件,按照xml中的定义,根据请求名找到对应的业务控制器,业务控制器可以调用进行数据处理的业务逻辑组件,DispatcherServlet此时可以调用ViewResolver视图解析器,视图解析器根据数据处理的结果调用相应视图组件,生成响应信息返回客户端。

按照上图思想,可以写一个简单demo实践一下,加深理解。

猜你喜欢

转载自blog.csdn.net/superxiaolong123/article/details/79865543