zoukankan      html  css  js  c++  java
  • 结合ssh谈MVC架构模式

    这学期在课程学习中我们接触到了ssh的开发框架,这个框架基于模型开发,由于目前MVC的开发模型渐成主流,所以我们来基于ssh深入了解一下MVC模型,首先我们来科普一下什

    么是ssh,什么是MVC?

    ssh是一种框架,它指的是struts+spring+hibernate的集成框架,是以前一种比较流行的web应用程序开源框架,他在职责上分为四层:表示层,业务逻辑层,数据持久层和域模块层,这个框架可以帮助开发人员在相对较短的时间内搭建一个结构清晰,可复用性好,维护方便的web应用程序。在这个框架中,Struts作为系统的整体基础架构,负责MVC的分离,在Struts框架的模型部分,控制业务跳转,利用Hibernate框架对持久层提供支持,Spring做管理,管理struts和hibernate。

     

     

    MVC全名是Model View Controller,是模型(model)-视图(view)-控制器(controller)的缩写,一种软件设计典范,用一种业务逻辑、数据、界面显示分离的方法组织代码,将业务逻辑聚集到一个部件里面,在改进和个性化定制界面及用户交互的同时,不需要重新编写业务逻辑。MVC被独特的发展起来用于映射传统的输入、处理和输出功能在一个逻辑的图形化用户界面的结构中。

    Model(模型)是应用程序中用于处理应用程序数据逻辑的部分。
      通常模型对象负责在数据库中存取数据。

    View(视图)是应用程序中处理数据显示的部分。
      通常视图是依据模型数据创建的。

    Controller(控制器)是应用程序中处理用户交互的部分。
      通常控制器负责从视图读取数据,控制用户输入,并向模型发送数据。

     

     

    在了解了ssh和MVC之后,我们结合实例来聊一下MVC的好处。

    在以往的Java编程中,我们其实经常用到MVC的架构模型,例如我们的JSP+servlet+JavaBean就是最典型的最简单的MVC模型,jsp作为‘v’,servlet作为‘c’,JavaBean作为‘m’,我们以一个小的简单得家庭记账本为例,对MVC进行分析。

    首先我们看记账本的结构:

     

    这里面的结构从上到下分别为:bean层对应MVC的control层,dao层,数据库管理,对应MVC的model层,servlet层以及jsp展示层,对应MVC的view功能,我们已添加一个资金流动为例

     

     

    根据这个可以知道,这里面的数据会提交到Add的action中,对应上图的AddServlet,这个路径是由下面这句话决定的,因为WebServlet中写的是“/Add”,所以在跳转时action 的值要写“/Add”,这是servlet的一个用法,提交请求发送之后,这些数据与这个页面就没有联系了,完全交由下个页面处理,这便做到了客户操作与系统操作的分离,客户只需要看着屏幕去操作自己想要的步骤,而对于这些步骤是如何完成的客户是不需要知道的。

     

    当数据提交到servlet层之后,数据在这里加工,比如存储到数据对象中,这一层中它只需要知道数据该如何处理,根据提交的请求不同,处理的方法不同,例如这里提交的是add请求,即要将传递的数据进行存储,此时,因为是对客户类进行存储,所以将这些数据存储到bean的对象中,调用bean,将其封装,至此,servlet获取数据,将其封装到bean层,再通过dao层调用对象,执行其具体的功能。在这个过程中,控制层完成了对数据的封装,加工,在此次之行中完美执行了MVC的架构概念:低耦合。

    那这样的架构到底有哪些好处?

    1. 上面刚提到的:低耦合。

    因为相互之间的交互减少了,层与层之间功能明确,界限明确,所以极大的降低了耦合度

    1. 可维护性高

    因为层与层之间耦合度降低,在和维护的时候,可以在不改变其他组件的情况下对某些部件进行更改。

    1. 部署快

    因为有了明确的部署结构,所以在部署的时候可以很快地将项目结构搭建完成,使用MVC模式使开发时间得到相当大的缩减,它使程序员(Java开发人员)集中精力于业务逻辑,界面程序员(HTML和JSP开发人员)集中精力于表现形式上。

    1. 可与其他框架完美结合

    就像开始提到的SSH框架就是利用了MVC模型的特性进行开发,SSH框架集,是现在大多数软件设计过程中都会使用的一种框架集。而这种框架是基于MVC的开发,且MVC模式已经成为现代J2EE开发中的一种常用模式,且受到越来越多JSP、PHP等开发者的欢迎。

     

  • 相关阅读:
    java.lang.IllegalStateException: getOutputStream() has already been called for this response
    html5之table嵌入form表单布局(务必注意:table标签必须在form表单内部,不能再form表单外部!)
    两张图搞清楚Eclipse上的Web项目目录
    使用VS 2019发布.net core程序并部署到IIS的最新教程
    国外便宜虚拟主机有哪些?
    怎样收用电汇来收adsense的广告费呢
    程序员同性交友网站github在国内不能访问了
    直接引用MrAdvice.dll文件不能实现AOP拦截,教你1分钟解决这个问题
    VS2019打包WPF安装程序最新教程
    通过VS2017发布.net core程序并使用Web 部署到远程服务器最新教程
  • 原文地址:https://www.cnblogs.com/msdog/p/13098610.html
Copyright © 2011-2022 走看看