论文部分内容阅读
【摘 要】本文介绍了MVC2模型与Struts框架的概念、工作原理,并探讨了其在电力营销系统开发中的应用。
【关键词】电力营销系统;软件开发;MVC2;Struts
电力营销系统是大型分布式行业应用软件,具有技术复杂、软件规模大、复杂度和数据处理量大的特点,然而代码的复用率、可維护性和可扩展性就成为这类软件是否具有生命力的关键因素。技术人员一直试图解决软件开发的复杂性问题,尽力使开发的软件使用寿命延长,并努力提高软件代码的复用率,使各部分形成松耦合,使系统的层次结构更加清晰,易于分工协作,从而提高系统的可扩展性和可维护性,提高代码复用率。MVC模型及Struts框架就是符合这种需求的一种软件开发技术。
1.MVC模型
MVC由Trygve Reenskaug提出,首先被应用在SmallTalk-80环境中,是许多交互和界面系统的构成基础。MVC不是一种具体的程序设计、开发工具,而是一种思想、一种开发模式,这种思想(模式)就是程序框架的思想(模式),框架是可重用的。MVC的主要思想就是在各个对象之间取得高层接口,同时在程序与程序之间进行重用。MVC主要由3个部分组成:模块(Model)、视图(View)和控制器(Controller)。MVC模型如图1所示。
各部分主要功能如下:
(1)模块是程序执行的关键部分。所有的操作都是在这一部分实现的。他提供应用业务逻辑类。他若需要取得视图中的对象或更新视图时,需要通过控制器来进行处理。
(2)视图是屏幕上的显示,模块进行操作之后,其结果就是通过视图来显示的。
(3)控制器用于管理用户与视图发生的交互。一旦用户想对模块进行处理时,他不能直接去执行模块,而是通过控制器来间接地实现。控制器具有处理视图和模块的指针。具体来说,就是能从控制器视图中取值,然后将相应的值传给模块进行处理。
MVC2是专门针对Web应用程序开发的MVC模型。他由3个主要组成元素:JSP,Servlet和JavaBeane。其中JSP对应于MVC模型的view,Servlet对应于Controller,Bean对应于Model。MVC2的结构如图2所示。
MVC2与MVC的主要区别是:在MVC模型中,View和Model间是登录和通知的关系,当Model对象的数据发生变化时,通知己登录的View对象,显示新的数据,这是所谓Observer的设计模型。在Observer模式下,每次Model的变化都会传给View,但并不是所有的View都对变化的数据感兴趣,同时也增加了网络的负担,影响运行效率。而在MvC2模型中,View和Model间是工作在非Observer模式,这是由web应用软件的特点所决定的。因为在HTTP协议中,客户端发出请求,收到服务器的应答数据后,客户端和服务器间的链接就断开了,在该模式下网络流量降低,提高了系统性能。
MVC是一种模型,可以有各种不同的具体实现MVC思想的程序框架,Struts则是一种具体实现MVC2模式的优秀的程序框架。
2.Struts概念
Struts是Apache组织的一个开放源码项目。他由一组相互协作的类、ServIet和JSP标记组成的一个可重用的系统设计[2]。Struts包含了丰富的标记库和独立于该框架运行的实用程序类。Struts体系结构如图3。
作为一个MVC的框架,Struts对Model,View和Controller都提供了相应的实现组件。Struts框架的核心组件是:ActionServlet,Action,ActionMapping,ActionFor-ward,ActionForm。他们与MVC模型的关联描述如下:
(1)Model:MVC系统中的Model部分从概念上可以分为2类:系统的内部状态和改变系统状态的动作。Struts为Model部分提供了Action和ActionForm对象,所有的Action处理器对象都是开发者从Struts的Action类派生的子类。Action处理器对象封装了具体的处理逻辑,调用业务逻辑模块,并且把响应提交到合适的View组件以产生响应。Struts提供的ActionForm组件对象,他可以通过定义属性描述客户端表单数据。开发者可以从他派生子类对象,利用他和Struts提供的自定义标记库结合可以实现对客户端的表单数据的良好封装和支持,Ac-tion处理器对象可以直接对他进行读写操作,而不再需要和request,response对象进行数据交互。通过ActionF-orm组件对象实现了对View和Model之间交互的支持。Struts通常建议使用一组JavaBean表示系统的内部状态,根据系统的复杂度也可以使用象Entity Bean和SessionBean等组件来实现系统状态。Struts建议在实现时把Action和业务逻辑分离,这样便于实现代码复用。
(2)View:Struts应用中的view部分是通过JSP技术实现的。Struts提供了白定义的标记库,通过这些自定义标记可以很好地和系统的Model部分交互,通过使用这些自定义标记创建的JSP表单,可以实现和Model部分中的ActionForm的映射,完成对用户数据的封装,同时这些自定义标记还提供了像模板定制等多种显示功能。
(3)Controller:控制器的作用是从客户端接受请求,并且选择执行相应的业务逻辑,然后把响应结果送回到客户端。在Struts中Controller功能由图中ActionServlet和ActionMapping对象构成,核心是一个Servlet类型的对象ActionServlet,他用来接受客户端的请求。ActionServ-let包括一组基于配置的ActionMapping对象,每个Ac-tionMapping对象实现了一个请求到一个具体的Model中Action处理器对象之间的映射。 Struts框架根椐配置文件中的信息,使ActionServlet,Action,ActionMapping,ActionForm,ActionForward这几个不同层次的组件交互、协调工作。这些配置文件在系统启动时,读入内存中,供控制器使用。Struts的核心是Ac-tionServIet,ActionServIet的核心是Struts-config.xml[3]。
3.Struts工作原理
用户发起一个HTTP请求,Struts控制器的ActionS-ervlet首先接收用户请求,然后调用ActionMapping的方法得到ActionFom对象。最后把Action Form作为参数传给动作对象的execute方法,这个方法结束之后会返回给控制组件一个ActionForward对象,控制组件进行下一步的处理。
Struts是符合MVC2模型的程序框架,只要遵循他的规则,就可以提高程序的开发效率,提高代码的复用率、可维护性以及可扩展性。
Struts系统中通过对struts-config.xml和web.xml的配置,实现系统各个模块之间的交互。
4.应用
电力营销系统是一个分布式Web应用系统,MVC2模型是一种很好的开发模式。在具体实现中以ApacheStruts为核心,根据业务需求对ActionServlet的功能进行了扩展,构成Controller;应用JSP实现页面展示,作为View;由JavaBean和EJB组件实现业务逻辑,构成Mod-el。应用struts开发系统时的步骤如下:
(1)收集和定义应用需求。
(2)基于数据采集和显示的原则定义和开发“屏幕显示”需求。
(3)为每一个“屏幕显示”定义访问路径。
(4)定义ActionMapping,建立业务逻辑之问的关系。
(5)开发满足“屏幕显示”需求的所有支持对象。
(6)根椐用户的数据模型创建ActionForm。
(7)开发被ActionMapping调用的Action对象。
(8)开发业务逻辑对象JavaBean或EJB组件。
(9)对应ActionMapping设计的流程创建JSP页面。
(10)创建配置文件Struts-config.xml,web.xml等。
(11)開发/部署。
5.结束语
综上所述,MVC及MVC2模型将应用系统的表示逻辑、业务处理逻辑和数据彻底分开,提高了系统部署的灵活性、可维护性、可扩展性以及程序代码的复用性,实现了软件生产的分工协作。Struts是符合MVC2模型的web应用程序开发框架,由于其开放性,Struts框架提供了许多现成的对象组件以及M、V、C之间的调度控制机制,大大提高了程序开发效率和软件的标准化程度。因此,采用基于MVC2模式的Struts框架开发的电力营销系统具有便于部署、便于扩充、维护方便、开发效率高、代码复用率高等特点,是一个真正意义上的分布式web应用系统。
参考文献:
[1]王家骐,于海霞.基于MVC设计模式的web应用框架研究[J].计算机与信息技术,2006(11):12-14.
[2]王飞,卢建军,郑文彦.struts在J2EE web层中的研究与应用[M].现代电子技术,2006,29(18):68-70.
【关键词】电力营销系统;软件开发;MVC2;Struts
电力营销系统是大型分布式行业应用软件,具有技术复杂、软件规模大、复杂度和数据处理量大的特点,然而代码的复用率、可維护性和可扩展性就成为这类软件是否具有生命力的关键因素。技术人员一直试图解决软件开发的复杂性问题,尽力使开发的软件使用寿命延长,并努力提高软件代码的复用率,使各部分形成松耦合,使系统的层次结构更加清晰,易于分工协作,从而提高系统的可扩展性和可维护性,提高代码复用率。MVC模型及Struts框架就是符合这种需求的一种软件开发技术。
1.MVC模型
MVC由Trygve Reenskaug提出,首先被应用在SmallTalk-80环境中,是许多交互和界面系统的构成基础。MVC不是一种具体的程序设计、开发工具,而是一种思想、一种开发模式,这种思想(模式)就是程序框架的思想(模式),框架是可重用的。MVC的主要思想就是在各个对象之间取得高层接口,同时在程序与程序之间进行重用。MVC主要由3个部分组成:模块(Model)、视图(View)和控制器(Controller)。MVC模型如图1所示。
各部分主要功能如下:
(1)模块是程序执行的关键部分。所有的操作都是在这一部分实现的。他提供应用业务逻辑类。他若需要取得视图中的对象或更新视图时,需要通过控制器来进行处理。
(2)视图是屏幕上的显示,模块进行操作之后,其结果就是通过视图来显示的。
(3)控制器用于管理用户与视图发生的交互。一旦用户想对模块进行处理时,他不能直接去执行模块,而是通过控制器来间接地实现。控制器具有处理视图和模块的指针。具体来说,就是能从控制器视图中取值,然后将相应的值传给模块进行处理。
MVC2是专门针对Web应用程序开发的MVC模型。他由3个主要组成元素:JSP,Servlet和JavaBeane。其中JSP对应于MVC模型的view,Servlet对应于Controller,Bean对应于Model。MVC2的结构如图2所示。
MVC2与MVC的主要区别是:在MVC模型中,View和Model间是登录和通知的关系,当Model对象的数据发生变化时,通知己登录的View对象,显示新的数据,这是所谓Observer的设计模型。在Observer模式下,每次Model的变化都会传给View,但并不是所有的View都对变化的数据感兴趣,同时也增加了网络的负担,影响运行效率。而在MvC2模型中,View和Model间是工作在非Observer模式,这是由web应用软件的特点所决定的。因为在HTTP协议中,客户端发出请求,收到服务器的应答数据后,客户端和服务器间的链接就断开了,在该模式下网络流量降低,提高了系统性能。
MVC是一种模型,可以有各种不同的具体实现MVC思想的程序框架,Struts则是一种具体实现MVC2模式的优秀的程序框架。
2.Struts概念
Struts是Apache组织的一个开放源码项目。他由一组相互协作的类、ServIet和JSP标记组成的一个可重用的系统设计[2]。Struts包含了丰富的标记库和独立于该框架运行的实用程序类。Struts体系结构如图3。
作为一个MVC的框架,Struts对Model,View和Controller都提供了相应的实现组件。Struts框架的核心组件是:ActionServlet,Action,ActionMapping,ActionFor-ward,ActionForm。他们与MVC模型的关联描述如下:
(1)Model:MVC系统中的Model部分从概念上可以分为2类:系统的内部状态和改变系统状态的动作。Struts为Model部分提供了Action和ActionForm对象,所有的Action处理器对象都是开发者从Struts的Action类派生的子类。Action处理器对象封装了具体的处理逻辑,调用业务逻辑模块,并且把响应提交到合适的View组件以产生响应。Struts提供的ActionForm组件对象,他可以通过定义属性描述客户端表单数据。开发者可以从他派生子类对象,利用他和Struts提供的自定义标记库结合可以实现对客户端的表单数据的良好封装和支持,Ac-tion处理器对象可以直接对他进行读写操作,而不再需要和request,response对象进行数据交互。通过ActionF-orm组件对象实现了对View和Model之间交互的支持。Struts通常建议使用一组JavaBean表示系统的内部状态,根据系统的复杂度也可以使用象Entity Bean和SessionBean等组件来实现系统状态。Struts建议在实现时把Action和业务逻辑分离,这样便于实现代码复用。
(2)View:Struts应用中的view部分是通过JSP技术实现的。Struts提供了白定义的标记库,通过这些自定义标记可以很好地和系统的Model部分交互,通过使用这些自定义标记创建的JSP表单,可以实现和Model部分中的ActionForm的映射,完成对用户数据的封装,同时这些自定义标记还提供了像模板定制等多种显示功能。
(3)Controller:控制器的作用是从客户端接受请求,并且选择执行相应的业务逻辑,然后把响应结果送回到客户端。在Struts中Controller功能由图中ActionServlet和ActionMapping对象构成,核心是一个Servlet类型的对象ActionServlet,他用来接受客户端的请求。ActionServ-let包括一组基于配置的ActionMapping对象,每个Ac-tionMapping对象实现了一个请求到一个具体的Model中Action处理器对象之间的映射。 Struts框架根椐配置文件中的信息,使ActionServlet,Action,ActionMapping,ActionForm,ActionForward这几个不同层次的组件交互、协调工作。这些配置文件在系统启动时,读入内存中,供控制器使用。Struts的核心是Ac-tionServIet,ActionServIet的核心是Struts-config.xml[3]。
3.Struts工作原理
用户发起一个HTTP请求,Struts控制器的ActionS-ervlet首先接收用户请求,然后调用ActionMapping的方法得到ActionFom对象。最后把Action Form作为参数传给动作对象的execute方法,这个方法结束之后会返回给控制组件一个ActionForward对象,控制组件进行下一步的处理。
Struts是符合MVC2模型的程序框架,只要遵循他的规则,就可以提高程序的开发效率,提高代码的复用率、可维护性以及可扩展性。
Struts系统中通过对struts-config.xml和web.xml的配置,实现系统各个模块之间的交互。
4.应用
电力营销系统是一个分布式Web应用系统,MVC2模型是一种很好的开发模式。在具体实现中以ApacheStruts为核心,根据业务需求对ActionServlet的功能进行了扩展,构成Controller;应用JSP实现页面展示,作为View;由JavaBean和EJB组件实现业务逻辑,构成Mod-el。应用struts开发系统时的步骤如下:
(1)收集和定义应用需求。
(2)基于数据采集和显示的原则定义和开发“屏幕显示”需求。
(3)为每一个“屏幕显示”定义访问路径。
(4)定义ActionMapping,建立业务逻辑之问的关系。
(5)开发满足“屏幕显示”需求的所有支持对象。
(6)根椐用户的数据模型创建ActionForm。
(7)开发被ActionMapping调用的Action对象。
(8)开发业务逻辑对象JavaBean或EJB组件。
(9)对应ActionMapping设计的流程创建JSP页面。
(10)创建配置文件Struts-config.xml,web.xml等。
(11)開发/部署。
5.结束语
综上所述,MVC及MVC2模型将应用系统的表示逻辑、业务处理逻辑和数据彻底分开,提高了系统部署的灵活性、可维护性、可扩展性以及程序代码的复用性,实现了软件生产的分工协作。Struts是符合MVC2模型的web应用程序开发框架,由于其开放性,Struts框架提供了许多现成的对象组件以及M、V、C之间的调度控制机制,大大提高了程序开发效率和软件的标准化程度。因此,采用基于MVC2模式的Struts框架开发的电力营销系统具有便于部署、便于扩充、维护方便、开发效率高、代码复用率高等特点,是一个真正意义上的分布式web应用系统。
参考文献:
[1]王家骐,于海霞.基于MVC设计模式的web应用框架研究[J].计算机与信息技术,2006(11):12-14.
[2]王飞,卢建军,郑文彦.struts在J2EE web层中的研究与应用[M].现代电子技术,2006,29(18):68-70.