MVC架构模式

2024-10-01

MVC架构模式(共7篇)

MVC架构模式 篇1

1 MVC模式

MVC模式主要由3个部分组成:模型 (Model) 、视图 (View) 和控制器 (Controller) , 在各个对象之间取得高层接口, 使应用程序的输入、处理和输出分开, 同时在程序与程序之间进行重用。

1.1 模型 (Model)

是程序执行的关键部分。所有的操作都是在这一部分实现的, 提供应用业务逻辑类。它若需要取得视图中的对象或更新视图时, 需要通过控制器来进行处理。模型表示业务逻辑和业务规则等, 在MVC的3个部件中, 拥有最多的处理任务。它可以用Java Bean和EJB等组件技术来处理数据库的访问。模型能为多个视图提供数据。由于应用于模型的代码只需写一次就可以被多个视图重用, 所以减少了代码的重复性。

1.2 视图 (View)

视图是模型在屏幕上的显示 (HTML页面、JSP页面、Swing GUI) , 是用户接口。视图可以通过模型访问数据, 并根据客户端的要求来显示数据。视图必须保证当模型改变的时候, 数据显示也必须同时改变。在本系统中, 是用对应各个功能模块的JSP (Declare JSPs, Proposer JSPs, Unit JSPs等) 和对应这些JSP网页进行组织的模版JSP来实现的。这些JSP经过组合展示给用户程序的输入输出网页。

1.3 控制器 (Controller)

控制器处理用户与应用系统的交互操作, 其职责是控制提供模型中任何变化的传播, 确保用户界面与模型间的对应联系, 它接受用户的输入, 将输入反馈给模型, 进而实现对模型的计算控制, 是模型和视图协调工作的部件。

控制器接受用户的输入并调用模型和视图去完成用户的需求。当用户单击Web页面中的超链接和发送HTML表单时, 它只是接收请求并决定调用哪个模型组件去处理请求, 然后确定用哪个视图来显示模型处理返回的数据。控制器连接不同的模型和视图去完成用户的需求, 给定一些可重用的模型和视图。控制器可以根据用户的需求选择模型进行处理, 然后选择视图将处理结果显示给用户。如图1所示, 描述了模型、视图、控制器它们三者的关系:

MVC的处理过程是:首先控制器接收用户的请求, 并决定应该调用哪个模型来进行处理;然后, 模型用业务逻辑来处理用户的请求并返回数据;最后, 控制器用相应的视图格式化模型返回的数据, 并通过表示层呈现给用户。

MVC模型具有如下优点:

(1) MVC模式很好地解决了软件工程中如何使软件系统各模块之间最大限度地降低其复杂的耦合关系, 以及系统显示逻辑和业务逻辑之间的矛盾 (即用户界面的多变性和业务逻辑的相对不变性) , 尽可能地提高了系统的可维护性和可扩展性。

(2) 模型、视图、控制器三者的相互独立, 使得我们改变其中一个而不会影响其他两个 (或者说影响甚小) , 据此可以构造良好的松耦合构件。

(3) 所有的模型和视图都是由控制器连接和调用的, 控制器的这种桥梁枢纽作用使得它可以根据用户不同阶段的不同需求选择不同的模型进行处理, 并选择不同的视图将处理结果显示给用户, 极大地提高了系统的灵活性。

(4) 一个模型可以拥有多个视图或者说多个视图可以共享一个模型。多个视图能够提供多种数据显示方式, 以满足不同用户的需求。变化传播机制可以确保所有相关的视图和其模型达到同步, 当然这一切都在于控制器的协调。

(5) 模型的可移植性和伸缩性。模型的相对独立性使得它很容易被移植到新的平台工作, 很容易被改变业务规则而不影响 (或者说这种影响甚小) 视图和控制器。

(6) 潜在的框架结构。可以基于此模型建立应用程序框架, 而不仅是用在界面的设计中。

2 Struts架构

Struts架构是建立在标准的Servlet框架之上的, 它提供了一种简单的编程模式, 体现了所有开源架构的特点。它采用的主要技术是Servlet, JSP和custom tag library (用户定义标签库) 。Struts框架的基本构成如图2所示。

作为一个MVC的框架, Struts对Model、View和Controlle都提供了对应的实现组件, 对应上面的UML图, 分别进行介绍。

2.1 模型 (Model)

Struts的Model层由Action和Action Form对象组成, Action对象封装着具体的处理逻辑, 由它来调用业务逻辑模块, 并且把响应提交给View组件。Act ion Form对象用来描述客户端的表单数据, 利用它和Struts定义的标签实现对表单数据的良好封装的支持。Action对象和Action Form对象可以直接交互, 不需要Request和Response对象的支持。Struts一般用一组Java Bean来表示系统内部状态, 也可以用Entity EJB和Session EJB来实现更复杂的应用。

2.2 控制器 (Controller)

在Struts架构中, 主要的控制组件是Action Servlet和Action Mapping。由Act-ion Servlet接受所有的http请求, 并把请求填充进Form Bean。Form Bean对数据进行有效性检测, 检测通过后将参数传给模型部分的Action类。每一个请求到Action处理器的映射都由Action Mapping对象实现, 并且可以在Struts-confing.xml文件中配置。要修改映射, 只要修改这个配置文件。

2.3 视图 (View)

这部分由JSP技术实现。通过Struts提供的标记库html、Bean、Logic以及Temp late来创建JSP表单, 并实现了和Mode部分的Action Form的映射, 完成对用户数据的分装。这有利于显示与逻辑的分开。而且把用户名和密码保存到Action Form Bean中, 这样就不需和Request、Response对象进行数据交互。从而避免直接从不是很安全的HTTP连接发送这些重要信息。

Struts框架的处理流程清楚地体现了MVC系统的特点, 简单的Struts组件结构如图3所示。Struts Controller Action Servlet处理客户请求, 利用配置的Action Mapping对象把请求映射到Action处理器对象进行处理。Action处理对象访问Action Form中的数据, 处理和响应客户请求, 它还调用后台的Bean组件, 这些组件封装了具体的业务逻辑。Action处理器对象根据处理结果通知Controller, Controller进行下一步的处理。

Struts的核心是Controller, 即Action Servlet, 而Action Servlet的核心就是Struts2config。xml, Struts2config。xml集中了所有页面的导航定义。根据配置文件指定, 才使得Servlet Action、Action Mapping、Action、Action Form这几个不同层次的组件相互交互并协调工作。

Struts由一组相互协作的类、Serlvet以及JSP、Tag Lib组成。基于Struts构架的Web应用程序基本上符合MVC2的设计标准, 可以说是MVC设计模式的一种变化类型。根据上面对framework的描述, 我们很容易理解为什么说Struts是一个Web framwork, 而不仅仅是一些标记库的组合。但Struts也包含了丰富的标记库和独立于该框架工作的实用程序类。

3 结束语

Struts由一组相互协作的类和标记库构成, 它们构成一个可重用的MVC实现。相反, 在未使用Struts框架开发的Web应用中, 系统的业务数据处理功能通常与显示功能交织在一起, 这使得代码的可维护性很差, 并且不利于程序的调试和测试。

摘要:在互联网时代, 基于Web开发应用系统是一个必然选择, 它为用户提供高效、方便的使用环境。要开发结构良好、维护方便的Web应用系统, 首先应当选择合适的设计框架。Struts是目前流行的基于J2EE的架构方案, 是一个基于模型—视图—控制器MVC模式的开源架构, 非常适合于Web应用系统的开发。

关键词:MVC,Struts,开源架构,业务逻辑,J2EE

参考文献

[1]陈川.基于MVC设计模式构筑JSP/Servlet+EJB的Web应用[J].计算机工程, 2001 (11) .

[2]PETERSON, TOMMY.AJAX:MVC Redux[J].Computer World, 2005 (7) .

[3]叶晓彤.基于Struts与JDO的J2EE企业应用系统架构[J].微机发展, 2005 (7) .

[4]徐宪武, 刘永泰.基于MVC模式的WEB应用经典框架-STRUTS[J].科技情报开发与经济, 2004 (7) .

[5]E ALTHAMMER, W PREE.Design and implementation of an MVC-based architecture for E-commerce applications[J].InternationalJournal of Computers, 2001 (2) .

[6]曾钦宏, 徐学洲.基于Struts的文档管理系统[J].微机发展, 2005 (8) .

MVC架构模式 篇2

传统的Web平台使用ASP以及PHP等语言开发设计的Web应用,开发过程当中数据操作脚本同页面脚本之间是混编成一块的,所以无法体现业务模型的整体问题,这就导致设计实现的过程当中重用性以及灵活性显著下降,难以符合不断变更的用户提出的要求。MVC设计模式的使用在应用程序的设计实现当中通过分层设计,要做额外设计工作,产品设计的结构非常清晰,并且产品功能可以借助于模型得到更加理想的实现。系统在MVC设计模式实现的过程当中使用Struts框架,是个基于J2EE平台的框架,采用Servlet以及JSP实现,可以满足Web应用设计开发的要求,同时使得设计开发的过程更加快速简便。

1 MVC 设计模式概述

MVC设计模式出现于上世纪九十年代的人工智能语言当中,主要目的是解决Web应用类似的问题。MVC的M即是mode1,指的是数据模型,V则是View,指的是用户界面,C则是Controller,指的是控制器。MVC使用的作用在于实现M以及V的分离,这样就使得一个程序能够通过不同形式展现出来。C的作用则是保证M以及V保持同步,M一旦出现变化,V就要进行更新,处理步骤如下:首先是控制器接收请求,然后决定调用哪一个模型加以处理,进而模型使用业务逻辑处理请求之后返回结果,控制器则使用视图格式化的模型来返回结果,借助于表示层反馈给用户。

MVC模型有以下几个方面的优点。第一,MVC模式较为理想地解决软件设计开发的过程中如何将软件不同模块间尽可能地减少复杂耦合的关系,包括系统的显示逻辑以及业务逻辑间存在的矛盾,也就是用户界面多变但是业务逻辑保持不变,从而尽量改善系统维护性以及扩展性。第二,各个模型以及视图都通过控制器来连接加以调用。控制器的枢纽作用确保其能够根据不同用户的不同要求而选择合适的模型加以处理,同时选择相应的视图把处理结果反馈给用户,从而在很大程度上改善系统灵活性。第三,一个模型能够拥有不同视图,不同视图能够共享同一个模型。因此多个视图可以提供不同的数据显示方式,从而以满足用户不同的需求,并且变化传播机制能够确保相关视图以及模型的同步。

2 Suts 架构概述

Struts是Apache Jakarta的一个组成成分,项目开发人员希望通过这方面的研究,改善标签库、Servtet还有面向对象方面的技术水平,是基于MVC模式的具体实现的过程。Struts是由相互协作的一组类、Struts标记以及Servlet共同组成的。

Struts同Turbine以及Tomcat等项目类似,属于开源软件,这就使得开发设计人员可以更加深入地理解内部设计实现的原理。使用MVC的设计模式可以将页面的显示部分同业务逻辑部分实现分离,从而确保程序的结构更加清晰,从而利于开发设计人员进行维护,并且也改善了系统的重用性。此外,Struts有着非常丰富的标签能够加以设计使用,通过灵活使用其标记库,能够显著改善设计开发的效率。同时页面导航作为今后Web开发设计的一个重要的发展趋势,通过Struts架构能够使得系统脉络更为清晰,并且借助于配置文件能够将全部系统的各个部分加以联系,对于系统的后期维护有着非常大的便利。特别是不同的开发设计人员接手这一项目的时候,这一优势能够更加明显地体现出来。Struts架构的核心组件有以下几个部分。

第一,Action Servlet。这一组件的主要作用是当作Struts框架的控制器,同时在Struts当中能够将这一组件当作Web应用的调度者,并且调度依据是Action Mapping的对象具体提供,基本的作用是获取用户的请求,然后将用户请求封装并完成数据验证工作,在验证结束之后则把用户的数据Action Form反馈给用户Action当中完成业务逻辑的处理,最后则根据处理的结果来返回对象,这个对象是在Struts-config.xml当中定义的JSP页面。

第二,Action Form。Web应用当中每一个表单都要创建相应的Action Form Bean,从而持续Web应用的会话状态,不过Action Form能够对应多个不同的表单,因此有着比较理想的重用性。不过这一表单要求出现的不同字段都定义属性,从而作为视图以及模型之间交互信息的纽带,主要作用就在于存储用户在表单当中所输入的那些数据,在验证数据之后,由控制器再传输给Action方法并完成相关的业务操作。

第三,Action。Action是实现程序业务操作的处理类,可以说是Struts的一个关键组件,主要作用是接收控制器传输的请求,同时根据业务逻辑的数据以及处理结果来指明应用流向。Action属于控制Web应用的流程,而并非用来控制应用当中的业务逻辑。一般情况下需要将业务逻辑放置在EJB当中实现,从而能够为Web提供最为理想的重用性以及灵活性。

第四,标记库。视窗组件使用Struts的标记库主要有四种标记。Bean标记:主要用来在JSP当中实现对于bean的管理。逻辑标记:主要用来在JSP当中实现流程控制。HTML标记:主要用于HTML标记的生成,并且在表单当中显示数据,同时借助于会话ID来实现URL编程。模板标记:主要使用动态模板来构造普通页面。

3 基于 MVC 设计模式 Struts 架构的设计实现

在Struts框架设计实现Web应用前,首先需要配置JSP服务器,从而让服务器在接受用户请求的时候,懂得将指定后缀的那些请求转到相应的控制中心加以处理,这部分配置信息通常情况下都在服务器启动的过程中用Web.xml文件载入,并且能够在Web.xml当中定义不同的Contro1loer,也就是为每个应用都定义一个,Web.xml的文件配置包括以下部分:

第一,控制器(Contro1loer)。控制器是框架当中的主要控制程序,在客户端以及服务器出现沟通的时候,都是通过控制器来实现控制的。控制器通过配置文件里面关于配置的信息进一步决定HTTP的请求转发到那里,Action在接收转发请求之后,来完成业务逻辑方面的处理工作。

第二,模型(Model)。模型是在控制用户请求的整体过程当中,处理用户请求并且保存结果的部分,在全部的过程当中,通常是使用Java Bean将这部分信息存储起来,之后在不同的对象间进一步传递。

第三,Struts-config.xml文件。该文件可以说是框架的中心。Web.xml文件接受请求之后发送到相应的位置,后续工作则由该文件进行管理以及控制。这是因为系统只通过这样一个配置文件保持系统模块化,从而提高系统维护的便利性。通过使用这一配置文件描述请求的控制过程以及相互之间的关系,而非将代码当中的对象关系加以固定。在系统当中出现变动的情况下,只需修改这一配置文件,而无需反复编译设计并发布系统程序。该文件主要的内容包括以下几个方面。首先是控制器。控制器借助于Struts-config.xml配置信息来确定出现请求的时候需要调用哪一个具体的对象来进行处理,并且从执行效率方面加以考虑,这部分信息在系统的启动过程中载入系统内存的。其次是视图对象。一般情况下视图对象都是JSP页面。Struts框架并未真正实现JSP规范要求。在Struts当中借助于标签定义的JSP页面可以把用户表单所输入的数据存储到Java Bean当中,并且借助于Action类来完成调用,之后则校验用户输入数据,要是发现非法数据,则通过Struts通用机制把错误信息反馈显示给用户。再次是Struts框架提供不同的标签库,这些标签库自身有着各自的用途,并且这些标签库是能够离开Struts框架而使用的,并且有个重要的作用就是借助于系统资源文件这一方式来实现Web应用的多语言特点。全部的控制流程都可以在struts-config.xml这个文件当中实现管理,这样的集中管理方面能够树立改变应用的流程,无论Servlet或者是JSP页面当中都不需重新编写并获取从数据库调用的数据代码。

在基于MVC模式Struts架构的具体设计实现方面,首先需要将模型控制器还有视图存放于3个包中,模型、视图以及控制器代码都需要存放到SRC文件夹当中,并且这部分代码在之后发布的过程中并不需要上传服务器,而只需要把已经编译完成的文件上传到服务器发布。Web-inf当中则存放系统配置的文件,在系统设计开发的过程当中,可以使用多个配置文件,让每个设计人员使用单独配置文件,并且无论怎样修改都避免给其余的设计人员带来影响,这类配置文件在命名的过程当中都是用struts-config的标记。由于使用Struts的框架,因此无论是系统视图、逻辑模型还是控制器,都能够很方便进行管理,并且在团队开发的过程当中,容易整合不同的开发设计人员设计的不同模块,只需要将相应模块复制到一个包中,进而修改Web.xml这一文件,同时加入Struts-config文件配置,就能够整合开发模块。除需要分类存放各自的文件外,系统还可以调用Struts软件包,并在各个包中进一步开发应用的具体代码。

MVC架构模式 篇3

一、关于.NET技术的概念及基于.NET技术的常见架构模式

.NET开发平台是一个新型网络体系结构, 今年由微软集团新推出, 该系统支持应用程序通过Internet实现数据的共享和通讯的畅通, 并且在Microsoft.NET框架下, 我们可以更加快捷方便的建立起大型的Web服务和Web应用。目前, 在我国常用的基于.NET技术的网络架构模式主要有两种——五层架构模式和四层架构模式。其中五层构架模式是指将网络体系分为五层进行管理的构架模式, 这五层自上而下依次为用户界面层、门面层、逻辑层、数据访问层和数据存储层;而四层架构模式则是.NET的经典构架模式, 依次分为用户界面层、业务逻辑层、数据访问层和数据库Data Base层。而本文重点要分析的则是另外一种新型网络构架模式——基于MVC模式和.NET技术的新架构模式, 该模式也分为五层, 自上而下分别用户界面层、控制层、业务层、数据访问层和数据库层。该模式是在五层构架模式和四层构架模式的运用实践基础之上开发出来的新型构架模式, 在实用性、适用性、开发性、扩展性等各个方面均具有优势。

二、关于MVC设计模式的概念

MVC是模型 (Model) +视图 (View) +控制器 (Controller) 的简称, 顾名思义, MVC模式就是基于这三大部分组成的设计模式, 该模式最初在第一代基于视窗的计算机被应用于进行GUI和用户交互的管理, 后来被推广使用在J2EE平台上, 近几年MVC这个广为人知的著名设计模式开始随着在大型Web应用上ASP.NET技术的地位逐渐凸显且得以巩固, 也开始逐渐在.NET平台上推广应用。

该模式将各个层有机区分开来, 却又互相配合, 并且组成各有机层的组件也被允许有机耦合, 这样一来, 该模式在实际运用中就能够减少代码重复, 使用起来也就更加灵活多变。首先看模型层, 该层的组件主要包括应用程序的相关数据以及这些访问和修改这些数据的相关规则, 所体现出来的是应用程序在这些数据以及规则之下的运行状态;其次看视图层, 该层组件展示的是用户与应用程序相互交流的界面, 该视图层的主要工作是从模型访问数据之后来确定如何表示数据, 并且在模型改变时也要保证所表示数据的一致性, 除此之外还要将用户请求和动作实时传达给控制器;最后一大部分就是控制器层, 该层的组件主要的工作就是负责模型和视图之间的相互交流, 对应用程序的种种行为进行定义, 并对用户的请求动作进行解释, 还要对用户输入的响应方式和流程进行控制。简单总结来说就是两大任务, 即将用户请求的相关数据提供给相应的模型, 然后即时的将模型的种种改变反馈到视图上。

三、基于.NET技术和MVC设计模式的新构架模式及其实际应用

基于.NET技术和MVC设计模式的新构架模式简单来说就是以模型 (Model) +视图 (View) +控制器 (Controller) 这三大部分为主要结构, 通过户界面层、控制层、业务层、数据访问层和数据库层这五层分工合作形成的网络管理构架模式。在此, 我们就以一家书店的图书样本选货厅系统为例, 具体分析该模式在实际情况下的应用。

该图书样本选货厅系统的构架图在此新型构架模式下分为五层, 即用户界面层 (UI Layer) 、控制层 (Control Layer) 、业务层 (Business Layer) 、数据访问层 (Data Access Layer) 和数据库层 (Databasa Layer) 。用户界面层 (UI Layer) 的数据主要来源于Form Screen和Device这两大途径, 即图书样本选货厅的客户通过RF终端对所选图书样本的条码进行扫描并输入所需图书的数量来下订和生成订单;然后控制层 (Control Layer) 根据用户界面层 (UI Layer) 得到的相关数据形成程序运行的系统模型 (Mode) 来对页面间的流转进行有效控制并将最终结果显示在视图 (View) ;之后业务层 (Business Layer) 再运用一定的逻辑对应用程序系统的相关业务进行合理有效的处理;第四层数据访问层 (Data Access Layer) 的工作则较为复杂, 简单来说, 有三个主要任务, 其一是运用DAO类对数据库的操作行为进行封装, 其二是通过DATASET类对系统数据库中的所有表结构进行处理, 最后是运用Dbmanager类来对数据源的链接服务进行负责理对;最后一层数据库层则是用于存储该系统运行的所有数据以便于取用和检查。

通过这种新型的基于.NET技术和MVC设计模式的构架模式所开发的图书样本选货厅系统使得客户能够快捷方便的选购所需图书的种类和数量, 并能够随时查看、修改、添加和删除订单信息, 形成最终订单, 并在第一时间将订单下发仓库进行准确快速的配运货服务。

通过实践证明, 基于.NET技术和MVC的新架构模式应用到实际工作中, 可谓是条理清晰、分工明确, 又相互配合无间, 使得系统的可扩展性和可移植性大大提高, 并且相比起人工服务更为准确, 且省时省力, 适用于大型的或者业务较为复杂的情况。

参考文献

[1]朱传宝, 李从东.基于.NET平台的电力基建信息管理系统[J].计算机工程, 2006, 32 (14) :255-257.

MVC模式在B/S架构中的应用 篇4

由于B/S(Browser/Server)结构具备开发简单、无需专门的客户端软件等天然优势,在一些领域已经取代传统的C/S(Client/Server)结构,成为管理软件开发的首选,因此本系统采用了B/S这种架构。

结合“高内聚、低耦合”[1]的开发思想,开发模式上,本系统选用的是MVC设计模式,将整个业务划分为“表示层、业务逻辑层、数据访问层、数据库”几个部分[2],明确地将客户端的表示层、业务逻辑访问、和数据访问及数据库操作划分出来,十分有利于系统的开发,维护、部署和扩展。

1 B/S架构

B/S架构(Browser/Server,浏览器/服务器模式),是WEB兴起后的一种网络结构模式,WEB浏览器是客户端最主要的应用软件。这种模式最大的优点是统一了客户端,将系统功能实现的核心部分集中到服务器上,简化了系统的开发、维护和使用。用户通过校园网络访问教务管理系统,获得相应的服务。客户机只要安装浏览器就能分享本教务管理系统为其提供的服务。教务管理系统的核心是WEB服务器与数据库服务器,数据库服务器可以安装Oracle、Sybase、Informix或SQL Server等数据库,本系统选用SQL Server数据库,客户端浏览器通过Web Server同数据库进行数据交互。

B/S架构最大的优点就是可以在任何地方进行操作,而不用安装任何专门的软件,只要有一台能上网的电脑就能使用,从而实现客户端零维护[3,4]。目前,软件系统的改进和升级越来越频繁,B/S架构的软件升级极为方便,只需要更新、升级服务器,而客户端只是浏览器,根本不需要做任何的维护和升级。本系统采用了B/S结构,就是考虑到“瘦”客户机、“胖”服务器[5],这种结构具有易于升级、维护的特点。

2 MVC设计模式

MVC(Model-View-Controller),即“模型-视图-控制器”模式,即把一个应用的输入、处理、输出流程按照Model、View、Controller的方式进行分离,这样一个应用被分成三个层——模型层、视图层、控制层。MVC的基本思想就是实现显示逻辑、控制逻辑和数据(业务)逻辑的分离,模型(Model)用于维护数据并提供数据访问方法,视图(View)用于绘制模型的部分数据或所有数据的可视图,控制器(Controller)定义了用户界面对用户输入的响应方式。

基本MVC开发模式,基于B/S(Browser/Server)结构的信息管理系统主要包括页面、Servlet、数据库等3个主要元素。本教务管理系统提供给用户浏览、操作的前台网页,包括静态页面和动态页面,对应于MVC模型中的View;Servlet是用C#语言编写的服务器(Server)端程序,依据用户的请求调用与之相应的业务处理模块,在服务器端进行业务处理。Servlet对应于MVC模型中的Controller。数据库DB存储整个系统所依赖的数据[6]。用户页面的显示内容取决于数据库中的数据,如学号不同的两个学生,查询课程成绩,所看到内容是不同的。服务器端的业务处理程序通过JDBC或者ODBC与数据库相连,对应于MVC模型中的Model,如图1所示。

3 基于B_S架构的教务管理系统的体系构

3.1 教务管理系统架构设计

“教务管理系统”的业务主要包括与教学管理相关的业务,系统的总体架构包括客户端浏览器、系统WEB服务器和数据库服务器三大部分。WEB服务器和数据库服务器是系统的核心,其中WEB服务器提供用于教务管理的各种服务,数据库服务器则用来存储各个业务所依赖或者建立的数据。本文教务管理系统的总体功能结构如图2所示。

本教务管理系统主要有4种用户角色,如学生、教师、教务员、辅导员,以上用户通过浏览器(如IE浏览器)访问教务管理系统WEB服务器,获取本系统提供的相应服务,从某种意义上说,以上用户可视为客户端。学生向教务管理系统WEB服务器发出查询请求,WEB服务器对客户端的请求进行相应的处理,并将处理后的结果返给客户端,在客户端显示服务器的处理结果,这样就完成了一次完整的网络会话。

教务管理系统WEB服务器是本系统的核心部分,所有的业务处理都在服务器端完成,按照教务管理的业务流程可将系统划分为以下主要的功能模块:学生管理模块、教工管理模块、班级管理模块、学籍管理模块、课程管理模块、成绩管理模块。

教务管理系统WEB服务器首先将来自客户端的请求进行分类,将用户请求发送给不同的业务模块进行后台处理,然后将处理后的结果再返回给客户端[7]。客户端浏览到的内容依赖于数据库存储的数据信息,当数据库的数据发生变化时,客户端浏览到网页显示内容也发生相应的变化。

3.2 教务管理系统技术实现

教务管理系统WEB服务器是处理用户请求的主体,当接收到客户请求,进行消息分发,调用不同的功能模块,对客户请求进行后台处理,并根据需要查询、更新数据库服务器中的数据。系统的设计与实现主要包括对教务管理系统WEB服务器的功能模块设计和对数据库的设计。

数据库的设计主要是在对以上功能模块的分析的基础上,建立数据模型,画出E-R图,创建数据库以及数据表[8],本系统选用SQL Server2005数据库服务器。从业务流程的角度看,各个功能模块是相互独立而又紧密联系的,共同维护、更新数据库中的数据。每个用户都可以通过网络间接的查询、更新数据库中的数据,从而实现了教务管理系统教学、教务资源的共享。

下面以学生查询成绩为例,介绍学生成绩查询业务流程。WEB服务器收到客户端发出的“成绩查询”请求,首先解析请求信息,获得相应的学生(学号:Stu ID)信息,然后对消息进行分发,调用成绩查询子模块对成绩查询请求进行处理,成绩查询子模块再调用成绩查询方法(get Stu Score()),查询学生表(tbl P_Course Grade)中该学生的成绩记录,并将查询后的结果返给用户,学生就可以在浏览器上看到自己的成绩信息。处理流程如图3所示。

4 结束语

基于微软.NET平台开发的这套教务管理系统,充分利用了校园的网络资源。将MVC模式应用在基于B/S架构的信息管理系统,有效的将业务逻辑、数据访问、数据显示三者分离开来,便于系统的开发,维护、部署和扩展[9],具有实现简单、环境搭建容易、易于理解和操作等优点,开发的软件具有较高的灵活性和健壮性,功能扩展容易、升级方便,同时兼具较高的数据安全、保密性。

摘要:结合教务管理系统的设计与实现,探索了基于“模型-视图-控制器”的MVC模式在B/S架构教务管理系统的业务流程及数据交互方式中的应用。实践表明,基于MVC模式开发的教务管理系统具有较高的灵活性和健壮性,同时兼具较高的数据安全性。

关键词:B/S架构,MVC,Web,教务管理系统

参考文献

[1]王立,郭威,聂靖松,等.一种轻量级跨平台通信架构的设计与实现[J].微电子学与计算机,2006(23):2.

[2]钱勇.基于ASP.NET技术的教务管理系统的设计与实现[J].电脑与信息技术,2009,17(4):69-72.

[3]Building Website With ASP.NET MVC[EB/OL].www.pcquest.com.November.

[4]李爽.基于ASP.NET的WEB教务管理系统的安全研究[J].天津职业院校联合学报,2009(9):69.

[5]赵万平.面向服务的高等学校数字化校园模型研究[J].大庆石油学院,2009(5):3-8.

[6]Robert Vieira.sql Server2005编程入门经典[M].北京:清华大学出版社,2007(4).

[7]章立民.用实例学ASP.NET[M].北京:电子工业出版社,2004.

[8]Building Web Apps Without Web Forms[EB/OL].msdn magazine.http://msdn.microsoft.com/en-us/magazine/cc337884.aspx.

MVC架构模式 篇5

使用像ASP,PHP,或者CFML这样的基于过程化开发的语言来开发一般的Web应用程序,它们的输入、处理和输出都不能很好地进行分离,因而很难体现出业务模型和业务重用性,以至于代码难以结构混乱和难以维护。虽然有经验比较丰富地开发者会将数据从表示层分离开来,但这不是很容易做到的,它需要精心的计划和不断的尝试。MVC从根本上强制性的将它们分开。MVC三层模式的好处显而易见,由于运用MVC的应用程序的3个部件是相互对立,改变其中一个不会影响其他两个,所以依据这种设计思想能构造良好的松偶合的构件。

MVC有它的优点,由于在抽象出业务处理的模型时,虽然能够屏蔽掉其他层次不相关的处理细节,但也限制了与之相关的功能扩展。或者可以根据MVC分离式设计,经由修改内部代码来扩展功能和业务,但好的扩展性是体现在添加而不是修改。需求总是会变的,若要扩展业务或功能时,开发人员就不得不重新在模型里面添加代码甚至改变内部结构以适应新的需求。

2 插件式设计

插件式设计模型如图1所示。

基于插件式设计比起许多设计模式更简单,更容易理解。基于插件设计的应用程序由应用程序框架、插件接口、插件和公共函数库4部分组成。

应用程序框架负责应用程序的整体运作,它清楚程序整个流程,但并不知道每个过程具体要做什么。它在适当的时候调用一些插件,来完成真正的功能。插件接口是一个协议。插件按照这个协议实现出来,就可以加入到应用程序中来。当然,对于复杂的系统,插件接口可能有多个,各自具有独立的功能。插件是完成实际功能的实体,实现了要求的插件接口。尽管实现什么以及怎么实现,完全是插件自己的自由。在实际情况,一般还是有些限制,因为插件接口本身可能就是一个限制。如,实现编译功能的插件,自然不能实现成一个聊天功能的插件。公共函数库是一组函数或者类,应用程序框架和插件都可以调用。它通常是一个独立的库。应用程序框架本身是公用的,是代码复用的一种方式。但并不是所有可复用代码都可以放在框架中,特别是插件会用到的公共代码,那会造成插件对框架的依赖。把这些公共代码提取到一个独立的库中,是一种好的方法。

3 开发设计模型的改进

基于笔者对MVC模型的一点看法,插件式设计为系统设计找到一个平衡点,它能把扩展功能从框架中剥离出来,降低了框架的复杂度,让框架更容易实现。扩展功能与框架以一种很松的方式耦合,两者在保持接口不变的情况下,可以独立变化和发布。公开插件接口,让第三方有机会扩展应用程序的功能,共同分享成果。

为更好地体现出系统的灵活性和可扩展性,本系统采用了MVC三层模式开发和插件设计的混合开发模式,实现表现层和业务层的分离,加上事件处理(Action)和过滤器(Filter)处理的机制,在系统适当的地方,放置相关的钩子(Hook),即插件接口,来运行用户扩展的功能插件,如在数据库存取数据时,进行格式化数据。

3.1 系统整体模式架构

系统整体模式架构如图2所示。

3.2 插件式开发架构

系统提供通用插件接口:

init:

位置:初始化模型Init_model

说明:系统函数库或类库装载完毕,准备初始化插件,通常在插件被加载时调用。

shutdown:

位置:系统扩展钩子Generate系统关闭,让插件停止。

至于插件要完成什么功能,要插到哪里,在执行init后决定,它调用公共函数库里的函数把自己注册到系统中某个位置。

专用插件接口:

这些插件接口是专用的,看到它的接口函数说明,就可以大致了解它的功能了。如edit_post、delete_post。

3.3 模块结构

标签模块(helpers/template-tags)用于前台视图的内容显示,包括6类标签库;业务模块:业务辅助函数库helpers目录下的为数据的获取、处理及输出、Helpers/admin目录下的为相关数据库的数据跟新、删除和添加操作;控制模块(controllers目录下)控制器模块主要分为前台控制器(GeneralController)、后台控制器(admin/PrivilegedController),还有安装控制器(setup/VXblog),扩展钩子(setup/Setup、Generate)。前台控制模块GeneralController

目录位置:controllers/。个前台控制器子类均对应不同的浏览方式,或操作(Comment对应浏览者的发布评论操作,Postpass进行对密码保护的文章验证操作)。台控制模块PrivilegedController后台控制器有两种工作方式,加载存在的视图模板和执行相应的$action操作;装控制器负责系统的安装(创建数据库配置文件、创建数据表、初始数据的录入);展钩子:实例化控制器前检查系统是否已经安装,若没有数据库配置文件中则执行安装程序;成器:Generate:在控制器操作执行完毕后,如果是前台控制器,则定位到相应的模板执行显示输出,此位置同时放置了shutdown的插件接口,为插件提供系统关闭时的插件接口;驱动模块Init_model:用于加载类库、函数库和系统运行前的基本配置;系统初始华完毕后,启动init接口操作,为插件提供系统正式运行前的加载或处理操作。

4 核心模块设计

系统核心模块的流程如图3-图5所示。

5 基准测试统计数据

基准测试统计数据如表1所示。

6 结语

尽管提出一种结合插件式设计的开发模型,为系统提出一种扩展办法,但一种开发模型并不能解决所有的问题,而且还需要付出相应的代价和努力,还有许多仍待解决的缺陷和不足。同时,插件式开发在插件接口上的问题也如出一辙,问题同样出于插件接口的管理,放置插件接口的地方和时机的考虑并不容易;插件接口越多、可开发的插件种类就越多,不同种类的插件可能对应用程序造成的许多不同问题;插件越多,系统的资源开销就越大等。

参考文献

[1](美)Alan Shalloway,James R.Trott.设计模式解析(第2版)[M].人民邮电出版社.

[2](澳)Hugh E.Williams,David Lane,PHP&MySQL Web数据库应用开发指南(第二版)[M].东南大学出版社.

[3](美)(Vasani V).,MySQL完全手册[M].电子工业出版社.

[4](美)Michael Blaha,James Rumbaugh[M].UML面向对象建模与设计(第2版).民邮电出版社.

[5]李金明.中文版Photoshop CS3完全自学教程[M].人民邮电出版社.

MVC架构模式 篇6

1 相关技术介绍

1.1 ASP.NET MVC框架

ASP.NETMVC是微软公司提供的以MVC模式为基础的ASP.NETWeb应用程序框架, 通过把项目分成Model、View和Controller, 使得复杂项目更加容易维护, 可以方便的控制应用程序的行为, 适合大型团队项目开发。

1.2 ASP.NET MVC的模型绑定技术

ASP.NET MVC模型绑定通过引入自动填充控制器操作参数的抽象层、处理通常与使用ASP.NET请求数据有关的普通属性映射和类型转换代码来简化控制器操作。模型绑定的过程包括2个步骤:从请求收集值并使用这些值填充模型。这2个步骤分别由值提供程序和模型绑定程序来完成, 这部分的实现可以参考ASP.NETMVC的相关资料, 这里就不做阐述了。

2 实现方案

ASP.NET MVC的项目包括Model、View和Controller, 下面我们通过一个简单的表单逐一介绍这些模块的实现。

2.1 Model和数据层

在我们进行到填报模块的开发的时候, 数据库结构通常都已经确定了, 我们需要实现各个表单对应的实体和其数据访问层, 这部分的代码和数据库表相对应, 而且基本相似, 可以通过代码生成器来生成。我们使用代码生成器生成对应的数据实体类主要代码如下:

每个数据库字段对应一个实体类的属性, 并用一个自定义的元数据指明这个字段映射的数据库表名, 字段名称, 以及其数据类型。

同时, 我们使用代码生成器生成了该实体的数据库操作类, 实现了对该表单的基本数据库操作实现。

2.2 View和页面逻辑实现

报表通常都有自己固定的样式, 所以, 在实现用户界面之前, 我们可以通过word, excel或者其他工具先把这个报表的样子按照需要做出来, 并在其对应的数据部分标明为数据库字段, 然后通过另存为、导出之类的方式得到包含数据库字段标签的HTML文档, 再通过正则表达式进行查找替换, 将标签替换为实体变量, 这样就得到了View的基本代码, 这个过程的代码示例如下:

替换前的Html源码:

替换后的View代码:

这部分Html代码的样式都由设计工具生成, 我们只替换了数据部分的代码, 为每个字段提供了一个呈现和一个文本框输入。

由于报表的特殊性, 字段之间的值可能使用公式来计算获得, 基于JavaScript引擎, 我们实现了一个简单的公式添加方法, 只要在视图上定义一个公式数组即可, 如:

当用户修改对应文本框的值的时候, 页面会自动进行公示计算。

2.3 控制器和模型绑定

当用户访问这个报表的时候, 有2种情况, 新建一个报表进行填写或者修改这个报表的数据, 对于这种情况, 我们需要提供一个针对HttpGET请求的访问控制器, 主要代码如下:

同时我们需要提供一个处理HttpPost的访问控制器以处理用户新建或者修改报表后的回发, 主要代码如下:

这个控制器仅用一行代码就完成了数据库操作, 实现这个神奇过程的关键正是ASP.NETMVC的模型绑定技术。

3 结语

通过上面的示例, 我们实现了一个简单报表填报页面的搭建, 整个过程需要书写的关键代码大概有10来行, 在报表的字段非常多的时候, 使用本方案可以大幅的减少开发时间, 提高效率。

摘要:报表在企业信息系统中具有极其重要的作用, 随着互联网技术的发展, 传统C/S模式的企业信息系统都在向B/S模式迁移, 报表填报作为信息系统中的一个重要模块, 在开发过程中占据了相当大的比重。本文介绍了一种基于ASP.NET MVC框架的快速开发报表填报的模块的方案。

关键词:报表填报,ASP.NET,MVC,模型绑定

参考文献

[1]李金方.Web报表系统的研究与实现[D].北京交通大学, 2009.

[2]宋建松.基于ole技术调用EXCEL实现复杂报表生成[J].内蒙古电大学刊, 2006 (10) .

MVC架构模式 篇7

关键词:网上营业厅,MVC,ASPX

网上营业厅是指利用互联网实现客户服务的综合性营销服务窗口, 为客户提供7×24小时方便、快捷的服务, 拓展企业服务渠道, 提高服务效率, 降低企业成本, 让客户足不出户即可办理各种通信业务, 拉近企业与客户的距离, 提高企业服务水平和竞争力。

网上营业厅以现有业务处理系统为支撑点, 以互联网为通信手段, 以WEB页面为窗口, 为客户提供一种新的服务方式;是开展业务受理、费用查询等服务的新渠道。网上营业厅与业务运营支撑系统、网络运营支撑系统、企业管理支撑系统进行接口连接, 完成业务处理的全过程;与数据业务系统、卡类业务系统、话费查询系统、支付系统等其它业务系统进行互连, 为这些系统提供各类业务数据, 获取相应的处理结果, 为客户提供互动式服务。系统结构示意图如下图所示。

1. 系统功能

网上营业厅通过互联网面向公司客户提供业务与服务。主要业务种类包括:固定电话、小灵通、宽带、增值业务等, 并逐步将业务种类进行扩充, 在网上营业厅实现所有适合开展的业务。系统业务功能主要是为客户提供的各类业务服务, 包括面向客户提供的差异化的业务受理、信息查询等适合网上开展的服务功能。

(1) 业务受理类:受理公司各种产品服务包括固定电话业务、小灵通业务、宽带业务及其增值业务等的开通、变更类业务。

(2) 信息查询类:对不同类型的客户提供相应的查询功能, 其中包括:业务使用费查询、资费标准查询、使用情况查询、工单状态查询等。

(3) 客服中心:提供业务咨询、产品业务信息展示和在线产品推荐等服务。

系统除了为客户提供各种业务服务功能外, 还提供了各种管理功能, 满足所提供服务功能的后台支撑要求, 同时为内部管理提供各项服务。

(1) 客户认证管理:客户认证管理指网上营业厅平台为客户登录提供身份认证功能, 身份认证包括认证和授权。

(2) 客户资料管理:客户资料管理主要是管理客户在网上营业厅上进行所有活动记录的管理, 包括:客户信息、客户订单等。

(3) 信息管理:指网上营业厅平台的内容信息管理, 主要包括:信息采集、信息发布、信息修改、信息删除管理等。

(4) 数据统计分析:对网上营业厅平台上的相关数据进行统计分析, 形成营业情况统计报表、生产作业统计报表等, 可以进行简单的决策分析。

2. 系统设计原则

2.1 建设原则

(1) 以客户为中心:

以提高客户体验效果、提升客户满意度为目标, 采用人性化、个性化设计, 为客户提供便捷的服务接入途径;增强客户服务的信息化支撑能力, 提高对客户的服务水平。

(2) 以产品为导向:

随着市场环境的变化, 要求系统能够提供灵活、方便的实现方式, 支持新的电信产品和服务, 实现符合条件的全业务运营, 并能提供灵活、方便的实现方式。

(3) 统一规划:

统一规划网上营业厅的网站功能、业务范围、页面风格。

(4) 规范管理:

市公司公司建立清晰的生产组织机构、规范化的管理和服务机制以及明确的职能分工, 从而形成畅通的管理沟通渠道和业务处理流程。

2.2 实施管理原则

(1) 分步实施:

公司统一领导, 共同努力, 分阶段、分步骤进行有组织、有计划、有重点的实施建设。

(2) 统一入口:

公司统一组织建设网上营业厅, 建设公司集中平台, 形成统一的入口。

(3) 共享信息:

网上营业厅充分使用已有系统的共享数据信息, 避免产生数据冗余和不一致, 做到与其它系统信息共享。

(4) 安全性:

良好的安全性是整个系统正常运转的前提条件和基础, 也是系统的重要要求之一。系统的安全性从网络层面、系统层面和应用层面做充分的考虑, 防止恶意攻击和非法入侵, 对敏感数据进行加密, 对用户身份进行可靠验证, 对用户密码、证书和权限进行管理, 对Session进行验证等, 通过对系统安全的全面规划来构建安全的网上服务系统。

(5) 可靠性和稳定性:

网上营业厅是直接面向客户的一种自助服务手段, 对系统的稳定性与可靠性要求非常高, 因此系统应该具有备份容灾能力和稳定可靠的运行能力, 保证应用系统在稳定可靠的环境下良好运行。

(6) 可扩展性:

采用组件化设计思想, 灵活构建系统架构, 通过建立具有良好可扩展性的系统, 使网上营业厅能够满足业务在功能和分布区域上不断拓展的要求, 满足未来发展的需要, 保护既有投资。

3. 系统实现

系统采用MVC程序设计框架, 即Web层由aspx页面负责前台展示和传递客户请求;业务规则层包含各种业务规则和逻辑的实现, 完成主要的业务处理任务所需要的所有的行为处理, 将处理结果响应到Web层显示;数据访问层为业务规则层提供数据服务。当某一方面需要变更时, 只需改变相应层次而不改变其他层次, 体现了模块层次间的独立性。

4. 结束语

通过网上营业厅项目, 建设了形象统一、服务功能齐全、安全实用、技术先进的网上业务服务窗口, 实现了网上“一点接触, 全面服务”, 提高了服务质量, 降低服务成本。

本系统完成后满足了新的业务需求, 增强公司的服务能力、提高企业服务水平和管理水平, 提高企业的竞争力, 为企业获得更多的间接经济效益;同时, 有利于改善公司通信服务质量, 从而推动国民经济的发展, 取得了良好的社会效益。

参考文献

[1]James Rumbaugh, Ivar Jacobson, Grady Booch;The Unified Modeling Language Reference Manual[M];Addison-Wesley Professional;2004年6月

[2]Vladimir L Pavlov, Anton Yatsenko;Using Pantomime in Teaching OOA&OOD with UML[M];Proceedings of the18th Conference on Software Engineering Education&Training;Apr.2005年

[3]王功明, 关永, 赵春江.面向对象数据库的关键技术和实现[J].微计算机信息.2006年06期

[4]刘宝哲.电信企业信息化管理控制体系研究[D].北京邮电大学.2007

[5]黄立卓.电信企业投资管理信息化业务模型研究[D].北京邮电大学.2007

上一篇:财务运转下一篇:绿色消费与社会发展