SpringMVC (精华)

SpringMCV

1、回顾MVC

1.1、MVC三层架构

1、MVC是模型(Model)、视图(View)、控制器(Controller)的简写,是一种软件设计规范

2、是将业务逻辑、数据、显示分离的方法来组织代码。

3、MVC主要作用是降低了视图与业务逻辑间的双向偶合。

4、MVC不是一种设计模式,MVC是一种架构模式。当然不同的MVC存在差异。

  • Model(模型):数据模型,提供要展示的数据,因此包含数据和行为,可以认为是领域模型或 JavaBean 组件(包含数据和行为),不过现在一般都分离开来:Value Object(数据) 和 服务层(行为)。也就是模型提供了模型数据查询和模型数据的状态更新等功能,包括数据和业务。
  • View(视图):负责进行模型的展示,一般就是我们见到的用户界面,客户想看到的东西。
  • Controller(控制器):接收用户请求,委托给模型进行处理(状态改变),处理完毕后把返回的模型数据返回给视图,由视图负责展示。

5、基于 Servlet 的 MVC 模式的具体实现如下。

  • 模型:一个或多个 JavaBean 对象,用于存储数据(实体模型,由 JavaBean 类创建)和处理业务逻辑(业务模型,由一般的 Java 类创建)。
  • 视图:一个或多个 JSP 页面,向控制器提交数据和为模型提供数据显示,JSP 页面主要使用 HTML 标记和 JavaBean 标记来显示数据。
  • 控制器:一个或多个 Servlet 对象,根据视图提交的请求进行控制,即将请求转发给处理业务逻辑的 JavaBean,并将处理结果存放到实体模型 JavaBean 中,输出给视图显示。

5、基于 Servlet 的 MVC 模式的流程图

SpringMVC (精华)

1.2、MVC框架

1、概念

是为了解决传统mvc模式(jsp+servlet+javabean)问题而出现的框架。

2、传统的mvc模式的不足

  • 所有的servlet和servlet的映射都需要配置在web.xml中,如果项目太大,web.xml的行数就会相当庞大,并且不能实现模块化管理。
  • servlet的主要功能就是接收参数,调用逻辑、跳转页面,比如像其它字符编码、文件上传等功能都要写在Servlet中。
  • 接收参数比较麻烦,不能通过model接收,只能单个参数进行接收,接收完成后转换封装model。
  • 跳转页面方式比较单一(forward、redirect),并且,当页面名称发生改变时需要修改Servlet的源代码。

3、MVC框架要做哪些事情

  • 将url映射到java类或java类的方法。
  • 封装用户提交的数据。
  • 处理请求–调用相关的业务处理–封装响应数据。
  • 将响应的数据进行渲染 ,jsp / html 等表示层数据。

4、说明

  • 常见的服务器端MVC框架有:Struts、Spring MVC、ASP.NET MVC、Zend Framework、JSF。
  • 常见前端MVC框架:vue、angularjs、react、backbone,由MVC演化出了另外一些模式如:MVP、MVVM 等等…

2、SpringMVC