历史发展
Model1
在早期 Java Web 的开发中,统一把显示层、控制层、数据层的操作全部交给 JSP 或者 JavaBean 来进行处理。
![](https://img.haomeiwen.com/i1186939/a1fce9e48ee7d00f.png)
-
JSP 和 Java Bean 之间严重耦合,Java 代码和 HTML 代码也耦合在了一起
-
前端和后端相互依赖
-
代码难以复用
Model2
首先用户的请求会到达 Servlet,然后根据请求调用相应的 Java Bean,并把所有的显示结果交给 JSP 去完成,这样的模式我们就称为 MVC 模式。
![](https://img.haomeiwen.com/i1186939/cc1f195a91fd8527.png)
-
M 代表 模型(Model)
模型是什么呢? 模型就是数据,就是 dao,bean -
V 代表 视图(View)
视图是什么呢? 就是网页, JSP,用来展示模型中的数据 -
C 代表 控制器(controller)
控制器是什么? 控制器的作用就是把不同的数据(Model),显示在不同的视图(View)上,Servlet 扮演的就是这样的角色。
Model3(Spring MVC)
![](https://img.haomeiwen.com/i1186939/455d15212d87b82b.png)
MVC简介
MVC 是 Model、View 和 Controller 的缩写
- 模型:一个或多个 JavaBean 对象,用于存储数据(实体模型,由 JavaBean 类创建)和处理业务逻辑(业务模型,由一般的 Java 类创建)。
- 视图:一个或多个 JSP 页面,向控制器提交数据和为模型提供数据显示,JSP 页面主要使用 HTML 标记和 JavaBean 标记来显示数据。
- 控制器:一个或多个 Servlet 对象,根据视图提交的请求进行控制,即将请求转发给处理业务逻辑的 JavaBean,并将处理结果存放到实体模型 JavaBean 中,输出给视图显示。
![](https://img.haomeiwen.com/i1186939/6080e976659a53ee.png)
工作流程
![](https://img.haomeiwen.com/i1186939/7635b02203f95c99.png)
- 客户端请求提交到 DispatcherServlet。
- 由 DispatcherServlet 控制器寻找一个或多个 HandlerMapping,找到处理请求的 Controller。
- DispatcherServlet 将请求提交到 Controller。
- Controller 调用业务逻辑处理后返回 ModelAndView。
- DispatcherServlet 寻找一个或多个 ViewResolver 视图解析器,找到 ModelAndView 指定的视图。
- 视图负责将结果显示到客户端。
网友评论