毕业设计论文MVCStruts2Hibernate企业资金财务管理系统设计

上传人:痛*** 文档编号:141988131 上传时间:2022-08-24 格式:DOC 页数:47 大小:1.62MB
返回 下载 相关 举报
毕业设计论文MVCStruts2Hibernate企业资金财务管理系统设计_第1页
第1页 / 共47页
毕业设计论文MVCStruts2Hibernate企业资金财务管理系统设计_第2页
第2页 / 共47页
毕业设计论文MVCStruts2Hibernate企业资金财务管理系统设计_第3页
第3页 / 共47页
点击查看更多>>
资源描述
摘 要资金是企业财务活动中一项值得高度重视的、高流动性的资产,是企业高效运营的重要保障。资金管理系统基于Java EE技术,采用B/S模式,以MySQL作为后台数据库,Tomcat作为Web服务器,采用MyEclipse作为开发环境,使用Struts2+Hibernate技术开发完成。该系统从软件体系结构模式的角度入手,首先构建一个MVC(Model-View-Controller)模式的应用软件开发框架,然后在此基础上设计和实现了账务管理系统。在介绍MVC模式、Struts2和 Hibernate等相关理论的基础上,分析整个系统的功能需求,着重研究如何使用这些框架和技术开发跨平台、框架灵活、稳定实用的资金管理系统的问题,并给出了网站系统整体架构设计。论文最后讨论了目前的资金管理系统有待完善和进一步研究的问题。关键词 账务管理 MVC模式 Struts2 Hibernate AbstractFunding, which is a worthwhile enterprise financial activities of high priority, high-liquidity assets, is an important guarantee for efficient operations business. In this paper, it firstly begins with the software architecture patterns, then constructs an application software development framework which is built upon the MVC(Model-View-Controller) pattern, next describes the design and implementation of the Financial Management System. On the basis of introducing MVC model struts2 and Hibernate and other related theories.The paper focuses on how to use these technologies and development frameworks to build a cross-platform, flexible framework and stability practical Financial Management System. It also gives the implementation of the systems overall framework for designing based on Struts, Hibernate, Ajax in the paper. The main advantages of this structure are as follows, it solves the problems of maintainability and extendibility in traditional website systems; it enhances the flexibility of the system and provides a good user experience. Finally, the paper discusses the points to be perfected and the problems to be further studied in the current Financial Management System.Key words financial management MVC pattern Struts2 Hibernate目 录摘要Abstract第一章 绪论 11.1 项目背景 11.2 项目研究目标 31.3 本文主要研究内容及章节结构4第二章 相关理论与工具 52.1 开发平台介绍 52.2 相关技术62.2.1 MVC模式的应用62.2.2 Struts 2框架的应用82.2.3 Hibernate 框架的应用6第三章 系统需求分析 93.1 管理人员功能的需求分析 93.2 决策人员功能的需求分析103.3 普通用户功能的需求分析113.4 系统功能结构图12第四章 系统总体设计124.1 系统整体构架图124.2 数据库设计144.3 资金管理系统构架的优势和不足17第五章 系统实现18 5.1 总体构架的实现18 5.2 业务收支模块的实现19 5.2.1 表示层实现19 5.2.2 逻辑层实现21 5.2.3 持久层实现22第六章 测试 236.1 软件测试介绍 23 6.1.1 软件测试概念23 6.1.2 软件测试内容246.2 系统主要模块的测试结果24 6.2.1 查询收款记录测试24 6.2.2 增加收款记录测试25 6.2.3 修改收款记录测试26 6.2.4 删除收款记录测试27第七章 结论与展望 287.1 本文总结287.2 资金管理系统存在的不足287.3 系统的展望29致谢 31参考文献 32 44 第一章 绪论1.1 项目背景随着科技发展和社会进步,尤其是计算机大范围的普及,计算机应用逐渐由大规模科学计算的海量数据处理转向大规模的事务处理和对工作流的管理,这产生了以台式计算机为核心的管理信息系统在大规模的事务处理和对工作流的管理等方面的应用,在账务管理之中的应用日益增加。近年来我国信息产业发展迅速,采用IT技术提高服务质量和管理水平势在必行。目前,对外开放必然趋势使企业直面全球企业的直接挑战,因此,企业必须提高其工作效率,改善其工作环境。这样,账务管理的信息化势在必行。在传统的账务管理中,其过程往往是很复杂的,繁琐的,账务管理以入帐和出帐两项内容为核心,在此过程中又需要经过若干道手续,效率十分低下,且由于他们之间关联复杂,统计和查询的方式各不相同;且会出现信息的重复传递问题,因此该过程需要进行信息化,以利用计算机进行账目管理。系统开发的整体任务是实现资金管理的系统化、规范化、自动化和智能化,从而达到提高企业管理效率的目的。本系统最关键的问题是要将企业经营中的账务进出记录流程电子化。具体通过部署企业服务器,资金进出记录中各环节的工作人员通过操作终端来完成各项功能,对输出记录要有自动按升序或降序排序的功能。主要有以下几个难点:1、要完整并准确的实现企业的业务流程,由于企业内部运作情况错综复杂,以往的管理中有许多不易用程序简单实现的环节,需要对企业运作状况深入了解分析,与有关资金进出记录的各部门工作人员进行沟通,深刻理解他们的需求。2、资金进出记录系统的电子化要提高资金进出记录全部环节的效率,帮助企业员工提高效率,比如对于输入的数据进行验证,预防粗心造成错误。3、由于现代企业生产经营过程复杂,整个业务流程中涉及大量的数据,资金进出记录系统在将流程电子化的同时,也存储了企业的经营定单数据,这些数据对于企业领导经营决策,内部效益分析都是非常有用的,所以数据的可靠性要求极高。系统要有完善的数据一致性保护机制,定期自动备份机制等等。4、企业生产流程变化极大,对于资金进出记录系统的需求也不会是一成不变的,因此系统应该有良好的架构,保证未来便于进行功能的修改和集成其他系统。要为企业其他环节的系统,例如人事管理,财务管理等系统预留接口。本账务管理系统是针对以上问题开发的,其用户主要面向中小企业的资金管理相关人员,也可用于个人,甚至扩展到大型企业,具有广泛的应用基础。款项管理系统采用B/S架构,更能提高网络在公司中发挥的重要作用。资金管理系统不断的提高公司的信息化程度,加快公司的信息化建设,有助于提高公司在信息时代的竞争能力,适应当今计算机信息化高度发达的社会。1.2 项目研究目标设计、开发、实现账务的计算机自动化管理。随着计算机新技术的发展和应用的普及,人类已从工业时代迈向信息时代。大量复杂信息的产生和传播,随着信息技术的高速发展,在推动社会发展和经济的同时,也增加了个人和组织处理信息工作量和信息存储量。面对这种情况,以计算机等信息技术作为信息处理的重要工具,开发和应用信息系统是个人和组织的迫切需要,也是迎接信息挑战的唯一出路。信息管理系统是一门综合管理科学,信息科学,系统科学,计算机科学和通讯技术的新兴学科,用计算机管理日常事务即自动化管理已取代了传统的管理方式。款项管理系统属于信息管理系统。系统开发的总体任务是实现与资金相关的各种信息的系统化、规范化和自动化,从而为用户带来更丰厚的利润和持续的竞争优势。1.3 本文主要研究内容及结构章节本文主要负责账务管理系统设计和实现的工作,重点探讨了系统整体架构设计与实现的问题。论文在需求分析的基础上进行了功能模块设计和数据库设计,结合MVC三层结构的经典实现框架Struts2,描述了利用此经典框架进行开发的一个具体实例资金管理系统。论文共分为七章,各章节的具体组织如下:本章主要叙述了项目提出的背景,项目的研究目标以及论文的组织结构。第二章探讨了MVC模式,Struts2框架,Hibernate框架等相关理论,并介绍了系统的开发工具。第三章简要说明了款项管理系统的需求分析,并给出系统功能结构图。第四章详细分析了系统的总体设计。这一章重点介绍基于MVC软件构件模式的资金管理系统总体架构设计,以及数据库的设计,向读者展示了系统的流程。读者在读完这一章后对系统的总体框架设计能够有深入的理解。第五章详细介绍了系统的实现。首先介绍了总体架构的实现,然后以业务收支模块为例分别介绍了系统表示层、逻辑层和持久层的具体实现。第六章是系统的测试部分,本次开发过程中以黑盒测试为主,白盒测试为辅,本章中将对部分用例做简单说明。最后总结了全文,指出了系统的需要改进的地方和进一步的研究方向。第二章 相关理论与工具2.1 开发平台介绍系统的开发平台采用的是MySql5.0+Tomcat6.0+Jdk1.6.0+MyEclipse7.0,下面分别对这些开发工具进行介绍。1数据库MySql5.0作为一个支持并发连接、多用户、多线程的关系数据库系统,MySql在Java应用的开发中得到了越来越广泛的应用。MySql提供C、C+、Java等多种语言的API接口,而且它还支持多种平台,拥有灵活和安全的权限系统,对密码进行加密,可以处理大型数据。MySql是开源项目,可以方便地从网上下载,它不像Oracle数据库管理系统那样复杂、庞大,因此MySql被业界认为是Eclipse开发环境中数据库应用开发的最佳搭档。2 服务器Tomcat6.0Tomcat全名是Jakarta Tomcat。它是在Sun公司的JSWDK的基础上发展起来的一款优秀的Servlet/JSP容器,也是Apacher-Jakarta组织的一个子项目。Tomcat是一种免费的开放源代码的Servlet容器。Tomcat作为一个Servlet容器,负责处理客户端的请求,把请求传送给Servlet并把结果返回给客户端。Tomcat服务器除了能够运行Servlet和JSP,还提供Web服务器的功能。3 集成开发环境MyEclipse7.0MyEclipse是在Eclipse集成开发环境中提供Web应用程序开发的插件,在目前软件开发的领域中,MyEclipse是一个使用非常广泛的工具,在该项目开发中选择的版本是MyEclipse7.0。2.2 相关技术资金管理系统采用MVC模式,运用Struts2+Hibernate的技术进行设计和开发,这些框架和技术组合在一起具有很好的可扩展性和可维护性。下面分别介绍这些技术在资金管理系统中的应用。2.2.1 MVC模式的应用MVC英文即Model-View-Controller,即把一个应用的输入、处理、输出流程按照Model、View、Controller的方式进行分离,这样一个应用被分成三个层模型层、视图层、控制层。视图(View)代表用户交互界面,对于Web应用来说,可以概括为HTML界面,但有可能为XHTML、XML和Applet。模型(Model)就是业务流程/状态的处理以及业务规则的制定。业务流程的处理过程对其它层来说是黑箱操作,模型接受视图请求的数据,并返回最终的处理结果。业务模型的设计可以说是MVC最主要的核心。业务模型还有一个很重要的模型那就是数据模型。数据模型主要指实体对象的数据保存(持久化)。控制(Controller)可以理解为从用户接收请求,将模型与视图匹配在一起,共同完成用户的请求,形象的说,是一个分发器。因此,无论何时发生了何种数据变化,控制器都会将变化通知所有的视图,导致显示的更新。这实际上是一种模型的变化-传播机制。MVC模式的处理流程如图2.1所示。图2.1 MVC处理流程当用户请求、数据的采集和处理通过控制器传递给模型,告诉模型做什么,选择符合要求的视图返回给用户;如果用户通过某个视图的控制器改变了模型的数据,所有其它依赖于这些数据的视图都将反映到这些变化。在本系统中,操作员在页面上选择添加业务收支信息,而Action将接受这种请求以及数据,并将这种请求以及信息传递给模型,由模型进行处理,保存到数据库中,下次用户需要查看所有业务收支信息时,模型经过Action将数据在页面显示出来。在本系统中,模型即是数据模型。2.2.2 Struts2 框架的应用系统采用Struts2,Sturts2可以自动封装从页面来的各种数据,这样节省了开发者大量的工作,并且Struts2也提供其他一些很好的功能如拦截器和类型转换。Struts2的工作流程图如图2.2所示:2.2.3 Hibernate 框架的应用Hibernate实现了对象和关系数据库的互操作,封装了数据库的底层实现细节,并向应用逻辑提供接口,实现关系型数据库的透明访问。因而,Hibernate具备层次架构的特点,可以作为单独的层存在,负责数据处理逻辑,实现应用逻辑与数据库的交互。 Hibernate使用映射文件实现持久化类和数据库表的映射关系,在映射文件中,可以定义持久化类之间的各种关系,并使用特定的配置反映到数据库表的结构上,比如:持久化的关联关系,对应到数据库中,就是数据库表之间一对多或者多或多的关系。 在Hibernate配置文件中设置数据库连接信息,导入映射文件后,通过特定的实现启动Hibernate,然后由Hibernate管理数据库的连接以及持久化类和数据库的映射关系;同时,向应用逻辑提供访问接口,实现数据的操作。Hibernate提供了很多可选的扩展接口,你可以通过实现它们来定制你的持久层的行为。第三章 系统需求分析根据资金管理系统的实际需求,系统的用户包括普通员工、决策人员和管理人员,所以系统角色有普通用户、决策人员和管理人员。不同角色的功能需求也不相同,下面是对上述不同角色的需求分析。3.1 管理人员功能的需求分析1)系统初始设置功能:在使用系统前,管理人员需对系统做一些初始设置,例如,对资金账户、部门、收入/支出类别、往来类别等信息的初始化。2)用户信息管理功能:由于此系统为公司内部系统,没有设置注册功能,只能是管理人员根据公司要求分配用户账号,并给一个默认的密码000000;管理员可以修改用户信息,不包括用户名和密码;管理员可以查看用户信息,安全起见,其中密码显示为*。3)数据备份与恢复功能:一些突发情况可能导致数据丢失,为了不影响公司的正常运作,系统设计了数据备份与恢复功能,可以定期备份现有数据。4)收款/付款记录管理功能:管理人员可以通过时间段查询收款/付款记录;管理人员增加新的收款/付款记录,添加单据编号、收款/付款日期、收款/付款项目、付款/收款方、资金账户、金额、责任人、部门等信息;管理人员修改或删除收款/付款记录。在进行这些操作时,其所对应的资金账户余额也需要相应改变,两个操作必须都完成,或者都不完成。5)管理人员对应付/应收记录的管理:管理人员可以通过时间段查询应付/应收记录;管理人员增加新的应收/应付记录,添加单号、收款/付款项目、往来单位、应收/应付款日期、应收/应付金额、实际已收/已付金额、余额、责任人、部门等信息;管理人员修改或删除应收/应付记录。在进行这些操作时,不需对资金账户余额做任何改变。管理人员可以查看每条应收/应付记录对应的已收/已付记录集合;管理人员也可以为某条应收/应付记录添加已收/已付记录,同时也要在收款/付款记录中增加对应的一条记录,并且应收/应付记录中的实际已收/已付金额和余额都要有所修改,这几个操作也是必须都完成,或者都不完成;管理人员也可以修改和删除已收/已付记录,对应的已收/已付记录和收款/付款记录也要修改。6)管理人员对账户转账的管理:管理人员可以通过时间段查询账户转账记录;管理人员增加新的账户转账记录,添加日期、转出账户、转入账户、金额、流转编号等信息;管理人员修改或删除账户转账记录。在对账户转账进行操作时,资金账户的余额也要随之修改,两操作必须都完成,或者都不完成。7)修改密码功能:此系统所有账号密码初始设置为000000,且不同的操作员有不同的权限,为了安全起见,操作员都应该修改自己的密码,确保任何人都不能通过登录其他人账号以获得非法权限。3.2 决策人员功能的需求分析1)查询收款/付款记录功能:决策人员能够通过输入日期间隔查询这段时间内所有收款/付款记录,并导出Excel文件。2)查询账户转账记录功能:决策人员能够通过输入日期间隔来查询这段时间内账户转账记录,并导出Excel文件。3)查询资金余额功能:决策人员可以查询所有资金账户余额,并导出Excel文件。4)查询日记账功能:决策人员可通过输入日期间隔来查询每天的每笔记录,并导出Excel文件。5)查询日期汇总记账功能:决策人员可通过输入日期间隔来查询收入支出金额,通过选择可以以年报、月报、日报的形式显示,并导出Excel文件。6)查询部门报表功能:决策人员可通过输入日期间隔来查询部门报表,并导出Excel文件。7)查询收入/支出项目报表功能:决策人员可通过输入日期间隔来查询收入/支出项目报表,并导出Excel文件。8)查询往来单位报表功能:决策人员可通过输入日期间隔来查询往来单位报表,并导出Excel文件。9)修改密码功能:此系统所有账号密码初始设置为000000,且不同的操作员有不同的权限,为了安全起见,操作员都应该修改自己的密码,确保任何人都不能通过登录其他人账号以获得非法权限。3.3 普通用户功能的需求分析1)查询收款/付款记录功能: 普通用户能够通过输入日期间隔查询自己所在部门的收款/付款记录,并导出Excel文件。2)查询应收/应付记录功能:普通用户能够通过输入日期间隔查询自己所在部门的应收/应付记录(包括已收/已付记录),并导出Excel文件。3)修改密码功能:此系统所有账号密码初始设置为000000,且不同的操作员有不同的权限,为了安全起见,操作员都应该修改自己的密码,确保任何人都不能通过登录其他人账号以获得非法权限。3.4 系统功能结构图图3.1 资金管理系统功能结构图第四章 系统总体设计根据需求分析,这一节详细讨论了资金管理系统的总体框架和数据库的设计方案。4.1 系统整体构架图系统采用MVC模式,运用Struts2+Hibernate框架完成。图4.1为系统整体架构图。图4.1系统整体架构图下面是对图4.1中各层的角色和功能说明以及架构的流程。(1)View层:视图是与用户交互的部分,数据从后台转发过来使用JSP的方式,然后在客户端转换成HTML页面的格式,借助JavaScript和CSS进行显示。(2)Controller层:控制器部分对应系统核心控制器和业务逻辑控制器,系统核心控制器为Struts2框架提供的FilterDispatcher,它根据请求自动调用相应的Action。而业务逻辑控制器是指开发人员自行定义的一系列Action,在Action中负责调用相应的业务逻辑组件来完成处理。(3)Model层:模型是程序的状态表示,其状态包括,消息中传递的状态,以及共享状态或一次会话中的状态,以及持久状态。而操作这些状态的流程也同样包括在模型中。这些模型也就是业务的总体运作流程和数据。在本系统中Hibernate将model层中的Java类映射到数据表并且提供数据查询、恢复等机制,实现数据层对象的持久性。框架的结构流程如下所述:来自客户端的HTTP请求送到Struts2框架中的控制器FilterDispatecher等候处理。FilterDispatecher包括一组基于配置的ActionMapper对象,每个ActionMapper对象实现了一个请求到一个具体的Model部分中Action处理器对象之间的映射。当接收到一个HttpRequest后,FilterDispatecher会根据请求去查找相应的ActionMapper。如果找到了相应的ActionMapper它将会将控制权限交给ActionProxy,ActionProxy将会通过ConfigurationManager来查找配置struts.xml。下一步将会通过ActionInvocation来负责命令模式的实现。在实现过程中,调用业务逻辑模块,由Hibernate在“幕后”完成与数据库的交互。业务逻辑类里通过HQL语句操作业务对象;Hibernate把HQL转换成SQL,通过O/R映射文件实现具体对数据库的操作,即穿过持久层映射到具体的数据库表。一旦action返回,会查找相应的Result,Result类型可以是JSP或者另一个Action等。这些组件和ActionMapper一起返回给请求的url。综上所述,资金管理系统选用基于Structs2+Hibernate的MVC开发框架是十分可取的。它既可以使开发人员在短时间内开发出系统,效率高,同时,也能满足系统的可维护性等需求,节省二次开发时的人力和物力。4.2数据库设计数据库是信息系统的核心和基础,把信息系统中大量的数据按一定的模型组织起来,提供存储、维护、检索数据的功能,使信息系统可以方便、及时、准确地从数据库中获得所需的信息。数据库是信息系统的各个部分能否紧密地结合在一起以及如何结合的关键所在。数据库设计是信息系统开发和建设的重要组成部分。在设计和操作维护数据库时,关键的步骤就是要确保数据正确地分布到数据库的表中。使用正确的数据结构,不仅便于对数据库进行相应的存取操作,而且可以极大地简化应用程序的其他内容(查询、窗体、报表、代码等)。款项管理系统的系统角色主要有三个:管理员,决策人员,普通用户。这三个角色的信息在数据库中都是存储在users表中,users表如表4-1所示:表4-1 users表列名数据类型可否为空说明UserIDint(4)NOT NULL用户ID(主键)UserNamevarchar(50)NOT NULL用户名称UserPasswordvarchar(50)NOT NULL用户密码DepartmentIDint(4)NOT NULL所在部门(外键)(表departments )UserRightsvachar(6)NOT NULL用户权限(分为管理员、决策人员、普通用户三类)revenue表主要存储所有收入信息,如表4-2所示:表4-2 revenue表列名数据类型可否为空说明RevenueIDint(4)NOT NULL单据ID(主键)DateOfRevenuedateNOT NULL收款日期ItemOfRevenueIDint(4)NOT NULL收款项目ID(外键)(表itemsOfRevenue)PartnerIDint(4)NOT NULL付款方(外键)(表partners)AccountIDint(4)NOT NULL资金帐户ID (外键)(表accounts )Amountdouble(12)NOT NULL收款金额ChiefNamevarchar(50)NOT NULL责任人DepartmentID int(4)NOT NULL部门ID (外键)(表departments )ReceivedIDint(4)NULL已收记录ID(外键)(表received)categoriesOfRevenue表主要存储收入类别信息,如表4-3所示:表4-3 categoriesOfRevenue表列名数据类型可否为空说明CatOfRevenueIDint(4)NOT NULL收入类别ID(主键)CatOfRevenueNamevarchar(50)NOT NULL收入类别名称itemsOfRevenue表主要存储收入项目信息,如表4-4所示:表4-4 itemsOfRevenue表列名数据类型可否为空说明ItemOfRevenueIDint(4)NOT NULL收入项目ID(主键)CatOfRevenueIDint(4)NOT NULL类别(外键)(表categoriesOfRevenue)ItemsOfRevenueNamevarchar(50)NOT NULL收入项目名称categoriesOfContact表表主要存储往来类别信息,如表4-5所示:表4-5 categoriesOfContact表列名数据类型可否为空说明CatOfContactIDint(4)NOT NULL往来类别ID(主键)CatOfContactNamevarchar(50)NOT NULL往来类别名称partners表主要存储往来单位信息,如表4-6所示:表4-6 partners表列名数据类型可否为空说明PartnerIDint(4)NOT NULL往来单位ID(主键)CatOfContactIDint(4)NOT NULL类型(外键)(表categoriesOfContact)PartnerNamevarchar(50)NOT NULL往来单位名称Telephonevarchar(15)NOT NULL电话Faxvarchar(15)NOT NULL传真ContactPersonvarchar(50)NOT NULL联系人Addressvarchar(50)NOT NULL地址accounts表主要存储所有资金账户信息,如表4-7所示:表4-7 accounts表列名数据类型可否为空说明AccountIDint(4)NOT NULL账户ID(主键)AccountNamevarchar(50)NOT NULL账户名称OpeningAmountdouble(12)NOT NULL期初金额Balancedouble(12)NOT NULL余额departments表主要存储所有部门信息,如表4-8所示:表4-8 departments表列名数据类型可否为空说明DepartmentIDint(4)NOT NULL部门ID(主键)DepartmentNamevarchar(50)NOT NULL部门名称receivable表主要存储应收记录信息,如表4-9所示:表4-9 receivable表列名数据类型可否为空说明ReceivableIDint(4)NOT NULL单据ID(主键)ItemOfReceivableIDint(4)NOT NULL收款项目ID(外键)(表itemsOfRevenue)PartnerIDint(4)NOT NULL付款方(外键)(表partners)DateOfReceivabledateNOT NULL应收日期Amountdouble(12)NOT NULL应收金额ReceivedAmountdouble(12)NULL实际收回Balancedouble(12)NOT NULL余额Chiefint(4)NOT NULL责任人(外键)(表users )DepartmentID int(4)NOT NULL部门ID (外键)(表departments )UserIDint(4)NULL录入员(外键)(表users )DateOfRecorddateNULL录入日期received表主要存储应收记录的已收记录信息,如表4-10所示:表4-10 received表列名数据类型可否为空说明ReceivedIDint(4)NOT NULL单据ID(主键)ReceivableIDint(4)NOT NULL应收记录ID(外键)(表receivable)DatedateNOT NULL收款日期AccountsIDint(4)NOT NULL资金账户ID (外键)(表accounts )Amountdouble(12)NOT NULL金额UserOfRecordint(4)NULL录入员(外键)(表users )DateOfRecorddateNULL录入日期4.3款项管理系统构架的优势和不足款项管理系统采用MVC模式,运用Struts2+Hibernate框架完成。Struts2框架具有组件的模块化,灵活性和重用性的优点,同时简化了基于MVC的web应用程序的开发。一个模型可对应多个视图,可以减少代码的复制及代码的维护量,一旦模型发生改变,也易于维护。模型返回的数据与显示逻辑分离。应用被分隔为三层,降低了各层之间的耦合,提供了应用的可扩展性。控制层把不同的模型和不同的视图组合在一起,完成不同的请求。因此,控制层可以说是包含了用户请求权限的概念。MVC更符合软件工程化管理的精神。不同的层各司其职,每一层的组件具有相同的特征,有利于通过工程化和工具化产生管理程序代码。在带来这些优势的同时,此架构也存在一些不足。 1增加了系统结构和实现的复杂性。对于简单的界面,严格遵循MVC,使模型、视图与控制器分离,会增加结构的复杂性,并可能产生过多的更新操作,降低运行效率。 2视图与控制器间的过于紧密的连接。视图与控制器是相互分离,但确是联系紧密的部件,视图没有控制器的存在,其应用是很有限的,反之亦然,这样就妨碍了他们的独立重用。3视图对模型数据的低效率访问。依据模型操作接口的不同,视图可能需要多次调用才能获得足够的显示数据。对未变化数据的不必要的频繁访问,也将损害操作性能。第五章 系统实现本系统采用B/S模式架构,选择B/S架构的原因:1B/S对安全以及访问速度的多重考虑,建立在需要更加优化的基础上。2B/S模型的多重结构,要求构件相对独立的功能,能够相对较好的重用。3B/S构件组成方面构件个别的更换,实现系统的无缝升级。系统维护开销减到最小,用户从网上下载安装就可以实现升级。4B/S建立在广域网上,面向不同的用户群,分散地域,这是C/S无法作到的,与操作系统平台关系最小。5B/S建立在浏览器上,有更加丰富和生动的表现方式与用户交互,并且大部分难度减低,降低开发成本。5.1总体架构的实现Struts 2使用核心的FilterDispatcher来过滤用户请求,一旦FilterDispatcher拦截到用户请求后,用户请求将直接转入Struts 2体系内。实际上,Struts 2的FilterDispatcher只会拦截匹配*.action的请求,因此应用中所有的表单请求都以.action作为结尾,而且系统中所有的超级链接都是通过Sruts 2控制器进行转发。通过这种方式,可以让Struts 2控制器进行转发,让Struts 2处理用户请求,即使对于普通JSP页面也必须先通过Struts 2的过滤,这样就保证了用户无法直接浏览任何页面,保证安全性。 Web.xml文件中配置过滤器的片段代码如图5.1所示。图5.1 配置过滤器的片段代码5.2业务收支模块实现款项管理系统按功能分为四个模块:初始设置模块、业务收支模块、资金报表模块和系统维护模块。此处只以业务收支模块为例说明系统的具体实现。系统将业务分为表现层、业务逻辑层以及持久层,这样分层的好处是可以使系统具有更高的聚合度和更低的耦合度。表现层就是展现给用户的界面,即用户在使用一个系统时的所见所得。业务逻辑层设计具体问题的操作,也就是对持久层的操作,对数据逻辑业务进行处理。持久层负责向一个或者多个数据存储器中存储数据的一组类和组件。5.2.1 表示层Struts2的Action实现非常简单,通过继承Struts2的ActionSupport基类重写execute方法或者自定义方法,并在该方法里调用业务逻辑组件的业务方法。在这里,可以发现所有的Action有个共同之处都需要调用业务逻辑组件。业务逻辑组件的实现也不是由Action自己控制的,必须为Action提供对应的setter方法,而且每个Action都必须为其注入业务逻辑组件。图5.2即为模块表现层的配置文件。图5.2表现层Action配置文件在图中Action的配置中,action是业务控制组件,它主要起控制作用。在上述配置文件中,package表示一个包,它继承于系统默认的Struts-default,在Action标签中,完成的是Action的映射,在result标签中完成的是结果值的配置。根据需求分析及功能描述,实现表现层功能如下(以收款记录为例):1. 查询收款记录,分页显示收款信息,如图5.3所示。图5.3 查询收款记录2. 增加收款记录,如图5.4所示。图5.4 添加收款记录3. 修改收款记录,如图5.5所示。图5.5 修改收款记录5.5.2逻辑实现层业务逻辑层建立在DAO层之上,由业务逻辑组件对DAO组件进行封装。为了分离业务逻辑层与DAO层之间的耦合,业务逻辑层应面向接口编程,即业务逻辑组件只调用DAO组件的接口,而不与具体的实现类耦合,同时将业务逻辑放在接口中定义。使表现层仅仅与业务逻辑组件的接口耦合,而无须理会业务逻辑组件的实现。业务逻辑组件同样分为接口和实现类两个部分,接口用于定义业务逻辑组件,定义业务逻辑组件必须实现的方法是整个系统运行的核心。业务逻辑组件以DAO组件为基础,因此必须为业务逻辑组件的实现类提供对应的setter方法。Action本质上来说是MVC中控制器的一部分。本身就只承担调用业务对象、根据结果转发到响应视图的功能。控制器部分的action都存放在com.fms.action这个包里面。5.2.3持久实现层持久层设计指的是应用的Hibernate持久层设置,包括Hibernate持久化访问所需的PO和Hibernate映射文件。DAO模式通过对业务逻辑层提供数据抽象层接口,实现了以下目标:1. 数据存储逻辑的分离:通过对数据访问逻辑进行抽象,为上层结构提供抽象化的数据访问接口。2. 数据访问底层实现的分离:数据访问划分为抽象层和实现层,从而分离了数据使用和数据访问的底层实现细节。3. 资源管理和调用的分离。4. 数据抽象:DAO模式通过对底层数据的封装,为业务层提供了一个面向对象的接口,使得业务逻辑开发人员可以面向业务中的实体进行编程。持久层是完成对数据库的访问,所以我们用到的hibernate里的技术就要求通过配置文件将实体与数据库中的表相映射,这样我们就可以直接通过对实体的操作完成对数据库的操作,简化了以前通过SQl语句完成数据库的复杂度。系统的具体实现如图5.6所示。图5.6实体数据库映射图上图为hibernate的映射文件,它完成了Revenue表与实体Revenue的映射,在上面的id标签中完成了revenueId属性与RevenueID这一列的映射,通过自动生成列值,property标签完成的是实体属性与表中列的映射关系。第六章 测试6.1 软件测试介绍6.1.1 软件测试的概念使用人工或者自动手段来运行或测试某个系统的过程,其目的在于检验它是否满足规定的需求或弄清预期结果与实际结果之间的差别。它是帮助识别开发完成(中间或最终的版本)的计算机软件(整体或部分)的正确度、完全度和质量的软件过程;是SQA(software quality assurance)的重要子域。6.1.2 软件测试的内容软件测试主要工作内容是验证和确认,下面分别给出其概念:验证是保证软件正确地实现了一些特定功能的一系列活动,即保证软件做了你所期望的事情。1.确定软件生存周期中的一个给定阶段的产品是否达到前阶段确立的需求的过程;2.程序正确性的形式证明,即采用形式理论证明程序符号设计规约规定的过程;3.评市、审查、测试、检查、审计等各类活动,或对某些项处理、服务或文件等是否和规定的需求相一致进行判断和提出报告。确认是一系列的活动和过程,目的是想证实在一个给定的外部环境中软件的逻辑正确性。即保证软件以正确的方式来做了这个事件。1.静态确认,不在计算机上实际执行程序,通过人工或程序分析来证明软件的正确性;2.动态确认,通过执行程序做分析,测试程序的动态行为,以证实软件是否存在问题。软件测试的对象不仅仅是程序测试,软件测试应该包括整个软件开发期问各个阶段所产生的文档,如需求规格说明、概要设计文档、详细设计文档,当然软件测试的主要对象还是源程序。6.2 系统主要模块的测试结果该系统的运行是在Windows7,Tomcat6.0以及MyEclipse环境下完成的,所应用的数据库是MySQL。系统的主要运行情况包括页面的完成情况、跳转以及功能实现等。以业务收支模块的收款记录为例。6.2.1查询收款纪录测试用户查询某段时间内的收款记录,需要导入起始日期和结束日期。具体实现如表6.1所示。表6.1 查询收款记录测试表测试项目查询收款记录操作人员操作员测试前提操作员进入业务收支的收款记录页面1输入合法的输入:起始日期,如“2010-01-01”;结束日期,如“2010-12-31”;测试步骤点击查询按钮期望结果查询成功,分页显示收款记录表2输入不合法的输入:填写信息格式不符合要求或者某项信息未填写测试步骤点击查询按钮期望结果查询失败,给以提示信息,并返回重新操作6.2.2增加收款纪录测试增加收款记录是当公司有新的业务收入时进行的添加信息操作,需要操作员导入收款日期、收款项目、付款方、资金账户、金额、责任人和部门。具体实现如表6.2所示。表6.2 增加收款记录测试表测试项目增加收款记录操作人员操作员测试前提操作员进入增加收款记录页面1输入合法的输入:收款日期,如“2010-01-01”;收款项目,通过下拉列表选择;付款方,通过下拉列表选择;资金账户,通过下拉列表选择;金额,如“1234.45”;责任人,通过下拉列表选择;部门,通过下拉列表选择;测试步骤点击保存按钮期望结果添加成功,收款信息被记入数据库2输入不合法的输入:填写信息格式不符合要求或者某项信息未填写测试步骤点击提交按钮期望结果添加失败,给以提示信息,并返回重新操作6.2.3修改收款纪录测试修改收款记录是收款记录信息有错需要修改时进行的操作,需要操作员导入收款日期、收款项目、付款方、资金账户、金额、责任人和部门。具体实现如表6.3所示。表6.3 修改收款记录测试表测试项目修改收款记录操作人员操作员测试前提操作员进入增加收款记录页面1输入合法的输入:收款日期,如“2010-01-01”;收款项目,通过下拉列表选择;付款方,通过下拉列表选择;资金账户,通过下拉列表选择;金额,如“1234.45”;责任人,通过下拉列表选择;部门,通过下拉列表选择;测试步骤点击提交按钮期望结果修改成功,数据库中此条收款信息被修改2输入不合法的输入:填写信息格式不符合要求或者某项信息未填写测试步骤点击提交按钮期望结果添加失败,给以提示信息,并返回重新操作6.2.4删除收款纪录测试删除收款记录是添加了本没有的收款记录信息需要删除时进行的操作。具体实现如表6.4所示。表6.4 修改收款记录测试表测试项目修改收款记录操作人员操作员测试前提操作员进入收款记录显示页面1输入测试步骤点击删除按钮期望结果删除成功,数据库中此条收款信息已删除通过以上测试可以看出,该系统在正常的操作及页面跳转中运行情况良好,没有出现失败或者意外情况。第七章 结论与愿望7.1 本文总结本文给出了一种基于Struts2和Hibernate多层结构的Web应用系统框架模型,通过对框架模型主要层次的功能分析和相关开发技术的比较,特别是表示层框架Struts2和持久层框架Hibernate的讨论,提供了一种实现多层Web应用系统开发的解决方案。为了充分说明不同层次、不同组件在Web应用系统中的功能、角色和相互关系,本文详细讨论了一个实际系统款项管理系统的设计开发过程,并对其中的一些关键技术的实现进行了阐述。本文的一些主要工作包括:(1)对MVC设计模式和Struts2框架进行深入分析,提出基于MVC模式的多层B/S结构Web应用开发模型,并讨论了如何结合Struts2框架和Hibernate框架来将MVC设计模式具体应用到系统开发中。(2)利用MVC设计模式分离表示逻辑和业务逻辑,为系统的开发和维护提供更大的灵活性和更好的可管理性,并结合Struts2框架在实际项目中的应用,详细说明了如何开发视图和控制器,最终实现表示逻辑和业务逻辑的分离。(3)结合实际系统,将文中提出的应用系统开发模型和相关开发技术,尤其是Struts2框架和Hibernate框架加以应用,并通过具体用例对其中一些关键技术的实现进行了详细说明。Web应用系统的设计开发是一个复杂多样的系统工程,涉及到方方面面的问题,本文主要是从体系结构的角度讨论了基于Struts2和Hibernate的多层Web应用开发模型,而Web应用本身的性能、并发控制、状态管理和程序优化等一系列问题都有待进一步分析讨论。7.2 款项管理系统存在的不足由于时间有限,加上自己自身能力的限制,系统还存在很多不足,现特列出以下几点:1. 查询记录只能按时间段来查询,比较单一;2. 没有提供资金收入支出的一个趋势表;3. 用户权限设计比较简单,只分配了三种类型的权限,此部分的可扩展性也较低;4. 页面比较单调;5. 虽然系统的表现层和业务逻辑有一定的分离,但是还没有实现完全意义上的分离。7.3 系统的展望根据上一节中提到的不足之处,资金管理系统需要改进的地方:1.针对前三点,增加一些功能:按各种关键字查询记录;提供资金趋势表, 比如收支趋势,部门趋势,责任人趋势等;丰富用户权限管理。2.针对第四点,使用各种动态页面技术,使得页面更加人性化。3.针对第五点,系统的未来框架设计如图7.1所示:图7.1 系统改进框架服务层方面,采用服务总线的概念对服务进行集成,这样客户端调用服务时,不是直接调用服务,而是通过服务总线来调用,这样实现了服务提供者位置和传输协议的透明化。服务总线能够对各种服务进行集成管理,服务请求者根本不知道这些服务的存在,能够在所管理的服务之间实现消息路由,也就是说能够将消息从服务A转向另一个服务B。同时,服务总线使得用户能够在现有的服务中加入新的服务,或者改变现有的服务,而不会对现有服务的使用产生影响。系统是以数据为核心的。虽然采用Ajax技术使得系统部分上是以数据为核心,但
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 图纸专区 > 成人自考


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!