诸暨网站制作,优化seo招聘,网上企业管理系统免费版,房产网站如何做MVC模式是什么
MVC 模式#xff0c;全称为 Model-View-Controller#xff08;模型-视图-控制器#xff09;模式#xff0c;它是一种软件架构模式#xff0c;其目标是将软件的用户界面#xff08;即前台页面#xff09;和业务逻辑分离#xff0c;使代码具有更高的可扩展…MVC模式是什么
MVC 模式全称为 Model-View-Controller模型-视图-控制器模式它是一种软件架构模式其目标是将软件的用户界面即前台页面和业务逻辑分离使代码具有更高的可扩展性、可复用性、可维护性以及灵活性。 通常情况下一个完整的 Java Web 应用程序其结构如下图Java Web 应用的结构所示 MVC 模式将应用程序划分成模型Model、视图View、控制器Controller等三层如下图所示。 分层描述Model模型它是应用程序的主体部分主要由以下 2 部分组成 实体类 Bean专门用来存储业务数据的对象它们通常与数据库中的某个表对应例如 User、Student 等。业务处理 Bean指 Service 或 Dao 的对象专门用于处理业务逻辑、数据库访问。 一个模型可以为多个视图View提供数据一套模型Model的代码只需写一次就可以被多个视图重用有效地减少了代码的重复性增加了代码的可复用性。View视图指在应用程序中专门用来与浏览器进行交互展示数据的资源。在 Web 应用中View 就是我们常说的前台页面通常由 HTML、JSP、CSS、JavaScript 等组成。Controller控制器通常指的是应用程序的 Servlet。它负责将用户的请求交给模型Model层进行处理并将 Model 层处理完成的数据返回给视图View渲染并展示给用户。 在这个过程中Controller 层不会做任何业务处理它只是 View视图层和 Model 模型层连接的枢纽负责调度 View 层和 Model 层将用户界面和业务逻辑合理的组织在一起起粘合剂的效果。
MVC模式 VS 三层架构
和 MVC 模式类似三层架构同样将系统划分成了 3 层
表示层UI用来实现与用户的交互接收用户请求并将请求交给业务逻辑层BLL和数据访问层DAL进行处理最后将处理结果返回给用户。业务逻辑层BLL起到承上启下的作用接收表示层传递来的请求并针对业务对数据进行处理以实现业务目标。数据访问层DAL用于实现与数据库的交互和访问例如从数据库中获取数据、保存或修改数据库中的数据等。
虽然三层架构和 MVC 模式一样都是将应用划分成了 3 层但它们的划分方式是不同的。
下图为三层架构的划分方式。
从上图可以看出三层架构是由表示层UI、业务逻辑层BLL和数据访问层DAL三个层次构成的而 MVC 则是由视图View层、控制Controller层以及模型Model层且它们之间并不是一一对应的 三层架构和 MVC 模式中各层对应关系如下 三层架构中的表示层UI包含 HTML、JSP 等前台页面以及后台的 Servlet即它相当于 MVC 模式中的 View 层 Controller 层。 三层架构中的业务逻辑层BLL则只包含了 Service 接口及其实现类Servicelmpl的代码即它相当于 MVC 模式中 Model 层的一部分并不包含 Dao 和实体类。三层架构中的数据访问层DAL则只包含了 Dao 接口及其实现类DaoImpl的代码即它相当于 MVC 模式中 Model 层的一部分并不包含 Service 和实体类。 三层架构将应用中的各个模块划分为表示层UI、业务逻辑层BLL和数据访问层DAL等三层各层之间采用接口相互访问并通过实体类作为数据传递的载体。不同的实体类一般对应于数据库中不同的数据表且实体类的属性与数据库表的字段名一一对应 。
MVC 的工作流程
MVC 的工作流程如下
用户发送请求到服务器在服务器中请求被控制层Controller接收Controller 调用相应的 Model 层处理请求Model 层处理完毕将结果返回到 ControllerController 再根据 Model 返回的请求处理结果找到相应的 View 视图View 视图渲染数据后最终响应给浏览器。
MVC 的优点
MVC 模式具有以下优点
降低代码耦合性在 MVC 模式中三层之间相互独立各司其职。一旦某一层的需求发生了变化我们就只需要更改相应层中的代码即可而不会对其他层中的代码造成影响。有利于分工合作在 MVC 模式中将应用系统划分成了三个不同的层次可以更好地实现开发分工。例如网页设计人员专注于视图View层的开发而那些对业务熟悉的开发人员对 Model 层进行开发其他对业务不熟悉的开发人员则可以对 Controller 层进行开发。有利于组件的重用在 MVC 中多个视图View可以共享同一个模型Model大大提高了系统中代码的可重用性。
MVC 的不足
MVC 模式存在以下不足之处
增加了系统结构和实现的复杂性对于简单的应用如果也严格遵循 MVC 模式按照模型、视图与控制器对系统进行划分无疑会增加系统结构的复杂性并可能产生过多的更新操作降低运行效率。
视图与控制器间的联系过于紧密虽然视图与控制器是相互分离的但它们之间联系却是十分紧密的。视图没有控制器的存在其应用是很有限的反之亦然这样就妨碍了它们的独立重用。视图对模型数据的低效率访问视图可能需要多次调用才能获得足够的显示数据。对未变化数据的不必要的频繁访问也将损害操作性能。
MVC 并不适合小型甚至中型规模的项目花费大量时间将 MVC 应用到规模并不是很大的应用程序中通常会得不偿失因此对于 MVC 设计模式的使用要根据具体的应用场景来决定。 Spring MVC 使用 MVC 架构模式的思想将 Web 应用进行职责解构把一个复杂的 Web 应用划分成模型Model、控制器Contorller以及视图View三层有效地简化了 Web 应用的开发降低了出错风险同时也方便了开发人员之间的分工配合。 Spring MVC 各层的职责如下 Model负责对请求进行处理并将结果返回给 ControllerView负责将请求的处理结果进行渲染展示在客户端浏览器上Controller是 Model 和 View 交互的纽带主要负责接收用户请求并调用 Model 对请求处理然后将 Model 的处理结果传递给 View。 Spring MVC 的特点
Spring MVC 具有以下特点
Spring MVC 是 Spring 家族原生产品可以与 IoC 容器等 Spring 基础设施无缝对接Spring MVC 支持各种视图技术例如 JSP、Thymeleaf、 JSP 和 FreeMaker 等。 Spring MVC 基于原生的 Servlet 实现通过功能强大的前端控制器 DispatcherServlet对请求和响应进行统一处理Spring MVC 对表示层各细分领域需要解决的问题全方位覆盖并提供一整套全面的解决方案代码清新简洁大幅度提升开发效率内部组件化程度高可插拔式组件即插即用想要使用什么功能配置相应组件即可