关键词:通用框架;网络应用系统;struts;mvc
摘要:针对目前比较流行的网络管理系统,分析其具有的共性,同时利用java和struts技术开发一个通用的网络管理系统框架.通过此框架可以提高系统开发的效率,缩短系统开发周期.
结合当前比较流行的网络开发技术java和struts,针对信息管理系统的共性,开发了适用于多数信息管理系统的通用框架结构,使用此结构进行系统地开发可以提高系统开发的效率,降低开发的成本,有利于系统的维护.
1信息管理系统的共性
信息管理系统主要是针对数据进行处理,尽管每个行业对于处理的信息有所不同,例如人员信息、产品信息、车辆信息等.但是对于这些信息管理系统来说,存在着很多的共性.例如,它们都使用关系型数据库、xml或其他格式的数据文件来存储这些信息;对这些信息都需要显示、查询、添加、修改、删除等操作.如果能够将这些操作封装到一个共同的模块中,无疑将会加快开发的进度,降低程序产生bug的数量,程序员就可以把大部分精力投放到具体业务的处理上面.
除了上面一些共同点外,一个成功的软件产品,还需要良好的操作界面、统一的界面风格,或者可定做的各种属性.而这些也都完全可以封装到一个模块中,定义成属性文件.根据客户的不同喜好,只需要修改属性文件,就产生了外观完全不同的另一套软件产品.
利用mvc良好的设计模式,使用struts技术,完全可以对上述的基本操作功能和操作界面进行完全的封装,开发出适用于信息管理系统的通用框架.
2模型一视图一控制器
模型一视图一控制器模式简称mvc模式,即mode—view—control,是交互式应用程序广泛使用的一种体系结构.它可有效地存储和展示数据的对象中区分功能模块以降低它们之间的藕合度,这种架构模式能将传统的输入、处理和输出的模式转化为图形显示用户交互模式.mvc体系结构具有3个层面,即模型(model)、视图(view)和控制(controller).
mvc架构模式是针对交互式系统,基于“分而治之”的思想,将系统分成不同的逻辑部件.换言之,这是对系统不同责任的划分过程.这种架构模式除了对系统本身带来的优点以外,对于项目管理也有很大的好处.它可以将开发团队按照mvc分成小组,擅长界面设计的人员开发视图组件,精通业务的开发模型,对于整个系统都比较熟悉的可进行控制器设计.
3struts技术
struts是一种基于mvc经典设计模式的开放源代码的应用框架,也是目前web开发中比较成熟的一种框架.通过把servlet,jsp,javabean、自定义标签和信息资源整合到一个统一的框架中,为web开发提供了具有高可配置性的mvc开发模式.
struts体系结构实现了mvc设计模式的概念,它将model,view和controlle:分别映射到web应用中的组件.model由代表系统状态和业务逻辑的action来构建.在struts中,系统的状态主要由actiomformbean体现,对于业务逻辑通常由javabean或ejb组件来实现.view是由jsp和struts提供的自定义标签来实现,struts自身包含了一组可扩展的自定义标签库(taglib),可以简化创建用户界面的过程.controlle:负责控制流程,由actionservlet和actionmapping来完成.actionservlet类是struts框架中的核心组件,主要负责接收http请求信息,并转发给相应的action对象.action类负责调用模型的方法、更新模型的状态,并帮助控制应用程序的流程.当actionservlet接收http请求信息时,把用户请求转发给哪个action对象,这就需要一些描述用户请求的路径和action映射关系的配置信息.在struts中,这些配置映射信息都存储在struts-config.xml文件中,在该配置文件中,每一个action的映射信息都通过一个(action)元素来配置.这些配置信息在系统启动时会被读人内存,供struts在运行期间使用.在内存中,每一个(action)元素都对应一个actionmapping类的实例.
4通用框架设计
首先从整体上对通用框架进行设计,图1是所要设计通用框架的结构图.该框架在设计时,考虑了当前数据库尽管主要是以关系型数据库为主,但也加人了对xml等文件存储格式的数据处理.下面对框架中的主要部分进行说明.
4.1dao/dpo
在该框架中采用了数据访问对象(dataaccessobject,简称dao)设计模式.dao模式提供了访问关系型数据库系统所需的所有操作接口,其中包括了创建数据库,定义表、字段和索引,建立表间的关系,更新和查询数据库和执行存储过程等.
dao模式将底层数据访问操作与高层业务逻辑分离开,对上层提供面向对象的数据访问接口另外,该通用框架还提供了数据解析对象(dpo)设计模式.同dao类似,它主要是提供了对xml或其他文件格式的数据进行操作的所有接口.
同时在该框架中,还对应2种设计模式提供了2个类,即dataaccessobject和dataparseobject.对于dataaccessobject,还提供了数据库连接池,通过配置文件,可以设置是否使用连接池,同时还可以使用应用服务器提供的连接池.由于当前数据库种类繁多,通过配置文件可以设置使用不同的数据库,例如oracle,sqlserver,mysql等.
通过对数据操作的封装,使通用框架具有了通用性.它把具体的业务对象和数据库操作完全分离,不仅可以使程序员更专注于具体业务的处理,而且程序也易于维护和调试.
由于目前大多数信息管理系统都采用关系数据库,因此也有很多的dao组件,例如hibernate,cas-for.freeform等,在通用框架中也可以采用这些成熟的dao组件.
4.2业务对象(bo)
业务对象,即businessobject,是对真实世界实体的软件抽象,它包含数据和行为.它们对应着数据库中的一条或多条记录,尽管不同业务之间的差距非常大,但是它们都共享一些公共的属性,例如版本号、描述、操作者、操作时间、表名、列数等.因此,为了避免每个业务对象都重复定义这些公共属性,需定义一个抽象父类来存放这些公共属性,如果需要还可以在这个类中定义公共的业务逻辑,如分页等.
该框架定义了一个抽象父类,即basebusines-sobject.它包含了业务对象所用到的公共属性,所有的业务对象都必须继承该父类.由于几乎每个业务对象都需要分页显示,因此,在父类中还添加了分页显示的功能.在具体的项目中如果还有其他的公共属性,程序员还可以对该类进行扩充.
4.3界面封装设计
bis结构的操作界面基本是html/jsp/servlet,其中jsp是最常用且是最多的.对于jsp的各种标签,如按钮、文本框、下拉框等,为了保持它们的界面风格统一,可以采用自定义标签,定义属性文件,也可以采用struts提供的一些标签.
在该框架中,除了对界面风格提供了属性配置文件外,为了最大限度地减少jsp页面中的java代码,还对jsp的操作进行了封装.现以员工基本信息为例进行说明.建立一个员工信息页面一personlist.jsp,该网页包含3个通用网页,即common.jsp,list_tool_top.jsp和list_data.jsp,common,jsp页面中导人了常用类、struts标签、自定义标签、页面css样式文件、javascript函数文件和共同变量等;list_tool_top.jsp中包含了查询、删除、保存、修改、排序等通用操作的逻辑处理,界面操作按钮、分页和操作类型的标签;,listdata.jsp文件主要用于数据显示的功能.
personlist.jsp除了包含上述3个文件外,还需要定义本功能模块action的target.因此,personlist.jsp作为一个完整功能模块的数据操作界面,需要编写的代码行数仅有10行左右.
另外,通过在javascript函数对list-tool-top.jsp文件中操作类型的设置,可以把数据录人、修改和查看3个功能在同一个界面中实现.这样1个功能模块的操作界面仅需要2个界面就完全实现了.
5结束语
该通用框架是利用mvc和struts,抽取了当前信息管理系统的共同性进行设计并实现的,并且在辽宁盘锦沥青有限公司信息管理系统的设计和开发中得到了验证.实践证明,利用这样的应用框架不但能提高开发效率,还能够实现框架和代码的重用,且有利于系统维护.