定制MVC

版权声明:本文为博主原创文章,未经博主允许不得转载,转载请附原文链接说明出处。 https://blog.csdn.net/xupeng874395012/article/details/78741486

MVC(模型(model)-视图(view)-控制器(controller)的缩写)

要定制一个MVC ,首先要了解MVC的关系
这里写图片描述

这张图片是百度百科上使用的,通过如图我们可以得到以下几点

用户输入
业务处理
数据模型
输出视图

从一个HTTP请求的过程中来谈这个问题的时候。
输入输出就是一些列的报文,服务器端负责解析请求报文,而浏览器负责解析响应报文。
再业务处理的过程中,请求报文对应的会找到一个处理单元,因此服务器必须提供URL和处理单元的map映射关系。处理单元负责连接汇总一些列的model,并做出响应。

springMVC

这里写图片描述
1、用户发送请求至前端控制器DispatcherServlet
2、DispatcherServlet收到请求调用HandlerMapping处理器映射器。
3、处理器映射器找到具体的处理器,生成处理器对象及处理器拦截器(如果有则生成)一并返回给DispatcherServlet。
4、DispatcherServlet调用HandlerAdapter处理器适配器
5、HandlerAdapter经过适配调用具体的处理器(Controller,也叫后端控制器)。
6、Controller执行完成返回ModelAndView
7、HandlerAdapter将controller执行结果ModelAndView返回给DispatcherServlet
8、DispatcherServlet将ModelAndView传给ViewReslover视图解析器
9、ViewReslover解析后返回具体View
10、DispatcherServlet根据View进行渲染视图(即将模型数据填充至视图中)。
11、DispatcherServlet响应用户

3.SpringMVC与Struts2的主要区别?
①springmvc的入口是一个servlet即前端控制器,而struts2入口是一个filter过虑器。
②springmvc是基于方法开发,传递参数是通过方法形参,可以设计为单例或多例(建议单例),struts2是基于类开发,传递参数是通过类的属性,只能设计为多例。
③Struts采用值栈存储请求和响应的数据,通过OGNL存取数据, springmvc通过参数解析器是将request对象内容进行解析成方法形参,将响应数据和页面封装成ModelAndView对象,最后又将模型数据通过request对象传输到页面。 Jsp视图解析器默认使用jstl。

猜你喜欢

转载自blog.csdn.net/xupeng874395012/article/details/78741486
MVC