电信计费管理系统的设计与实现i-毕业设计.doc_第1页
电信计费管理系统的设计与实现i-毕业设计.doc_第2页
电信计费管理系统的设计与实现i-毕业设计.doc_第3页
电信计费管理系统的设计与实现i-毕业设计.doc_第4页
电信计费管理系统的设计与实现i-毕业设计.doc_第5页
免费预览已结束,剩余44页可下载查看

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

毕 业 论 文论文题目 电信计费管理系统的设计与实现II摘 要 随着Internet的发展,我们已经进入到一个网络时代了,计算机技术加上网络技术的应用已经普及到世界各地。电信计费系统是为企业业务管理和客户查询提供方便性而开发的一套B/S系统,因此该系统具有很好的实用性和灵活性。本文主要介绍该系统的设计和实现过程。过程是严格按照软件工程的开发流程操作,首先对系统的功能进行详细的设计和分析,给出各个功能模块设计的流程和实现的方法,对系统数据库做完整的设计和分析并提供相应的数据。本文对该系统7个模块做了设计和实现,整个系统的实现是采用J2EE中的web技术,使用了企业常用而又优秀的开源框架,并成功的应用到系统的实现中。关键字:java2平台企业版 UML JDBC目 录1. 绪论11.1系统概述11.2可行性分析21.3 开发技术介绍22. 需求与功能分析42.1系统整体结构分析42.2 子模块需求说明43. 概要设计83.1登陆设计83.2权限管理模块设计93.3管理员管理模块设计113.4资费管理模块设计153.5用户管理模块设计173.6账单查询模块设计213.7账务查询模块设计224. 数据库设计234.1关系E-R图234.2 数据库逻辑设计254.3重要的关系模式265. 系统详细设计与实现285.1环境信息配置与说明285.2各个模块的实现306. 总结与展望416.1感想416.2收获416.3展望41参 考 文 献43Abstract44致 谢45仲恺农业技术学院毕业论文(设计)成绩评定表461. 绪论1.1系统概述在当今世界,计算机技术和互联网的高速发展,带给人们极大的方便性,互联网的融入能提供给用户高质量的服务,能够灵活的调整用户的服务和资费,从而消除用户对“查询难、缴费难”等热点问题并且也解决了对这一业务管理的问题,具有极大的方面性和可用性,也维护了电信运营商的自身利益和效益。电信运营商新增一项Open Lab(开放实验室)出租业务,即该电信运营商提供基于Unix平台的实验室环境,选择使用这种业务的用户能够远程登录(Internet)到实验室中做基于这个实验室环境的一些工作和实验。运营商希望借助先进的计算机技术对访问实验室的用户进行管理和计费,由此实现对此项业务运营的支持与管理。系统的总体结构(如图 1所示),系统主要分为三部分:第一部分是部署在数据采集服务器中的数据采集模块,该模块是负责对用户使用了业务后所产生的用户日志进行分析并获取相关的的信息和数据,再把相关的信息和数据按照一定的关系模式存储到数据库中,完成第一阶段的数据采集。数据采集就是从服务器中得到用户使用服务器的相关情况。最重要的数据是用户的IP和使用时长,因为这两个信息将是在后续的系统中用到。第二部分是数据整合模块,它完成的任务是把存放在数据库中分散的采集数据按照一定的时长整合到一个数据表中,这样就很方便完成业务的结算和查询,所以这个阶段主要是把在不同时间采集到的同一用户的数据进行一个相加得到一个总的数据。第三部分是计费管理模块,这一部分是主要实现的一部分,它是部署在web服务器上的一个B/S模式的管理和查询系统,直接面向的是管理员和用户,它是通过网路和浏览器进行访问,管理员将能登陆到系统中根据自己的权限进行对相关的管理功能和查询功能操作,用户只能是进行简单业务查询。计费管理系统又分为多个子模块:1.用户管理;2.资费管理;3.管理员管理;4.帐单查询;5.帐务查询;6.用户自服务;7.权限管理。这三个部分是紧密的联系到一起的,数据采集模块为数据整合模块提供采集数据,数据整合系统为计费管理系统提供整合数据。它们都将会连接到同一个数据库上,完成整个系统的数据存储。服务器1服务器4服务器2服务器3数据采集服务器数据整合服务器数据库服务器Web服务器(计费管理)管理人员用户通过Internet访问整合采集 图1 系统结构图1.2可行性分析1)经济可行性对于个人而言,这个系统的开发使用的硬件,只要是个人的pc机就可以完成,使用的软件都是开源免费提供的,所以在网上都可下载到,各种技术文献都能从图书馆中借到。2)技术可行性开发所用到的技术有:数据库访问、J2EE、和web服务器应用等技术,而本人也对这些的技术有深入的了解,并能熟练的应用这些的技术。1.3 开发技术介绍本系统用到的是J2EE中的各种技术:1)OOAD1(Object Orient Analysis Design ,面向对象的分析和设计)面向对象的思想和人一般的思维相似,并且所用的编程语言也是面向对象的,所以OOAD也将会帮助我们完成整个系统的设计,并贯穿整个实现过程。2) UML1(Unified Modeling Language,统一标准的建模语言)是用来对软件密集系统进行可视化建模的一种语言。UML为面向对象开发系统的产品进行说明、可视化、和编制文档的一种标准语言,它将会帮助我们完成可视化设计过程。3) JDBC2 (Java Data Base Connectivity)是java中最原始的数据库访问技术,使用JDBC技术将会提高我们的访问数据库的效率。4) Jsp3(Java Server Pages )JSP页面由HTML代码和嵌入其中的Java代码所组成。服务器在页面被客户端请求以后对这些Java代码进行处理,然后将生成的HTML页面返回给客户端的浏览器。主要是用于视图的开发。5) Hibernate是用于数据库的访问和数据的持久化,因为它作为一个框架,所以它的运用都是比较灵活和简化我们数据库访问。6)Struts是一个web开发的框架,一般在web开发中都会使用它的mvc模式、它的标签库和他的验证技术,struts将使本系统开发的核心技术,都是以它为核心已展开。7) Spring4是一个开源框架,是为了解决企业应用程序开发复杂性而创建的。框架的主要优势之一就是其分层架构,分层架构允许您选择使用哪一个组件,同时为 J2EE 应用程序开发提供集成的框架。主要应用它的AOP(面向切面的编程)和IOC(控制反转也就是依赖注入),本系统中主要使用它的IOC功能。452. 需求与功能分析2.1系统整体结构分析本系统主要包括以下子模块:1.数据采集;2.数据整合;3.用户管理;4.资费管理;5.管理员管理;6.帐单查询;7.帐务查询;8.用户自服务;9.权限管理,其中数据采集和数据整合由于实验条件的限制在此不予实现。以下是整个系统设计和实现的整体结构图:电信计费系统后台数据服务数据采集数据整合前台运营管理前台用户服务用户管理资费管理用户自服务账务查询账单查询权限管理管理员管理 图2 系统整体结构图2.2 子模块需求说明1)权限管理需求分析对本系统的各个子模块的访问都是受权限控制的,权限决定了使用者可以执行的操作,如一个使用者拥有用户管理权限,他就可以执行用户管理的操作。目前系统已有的权限包括:用户管理权限,资费管理权限,管理员管理权限,帐单管理权限,帐务管理权限,用户自服务权限,权限管理权限。今后,系统可能会扩展新的功能,也就会增加新的操作,这个操作就要对应一种新的权限;也有可能删除一项不再被使用的操作,这样,对应的权限也应该被删除。因此,为了对权限能够进行灵活的管理,本系统中就提供了权限管理模块。在本模块中,一些使用者拥有相同的角色,拥有相同的权限,如张三和李四都是前台操作人员,都拥有用户管理权限和帐单管理权限。角色代表着一组权限的集合。目前系统中已有的角色包括:用户和超级管理员。今后,要想根据需要灵活地管理角色,也是通过权限管理模块完成的。2)资费管理使用服务,就要交纳费用,这是天经地义的事情。那么对于开放实验室的用户也不例外,他们使用了开放实验室服务,同样要交费。在我们这个系统中这个费用会和两个因素有关:n 一个是用户使用服务的时间长度,n 另一个是用户选择的收费标准,如月租费为:30元,每小时使用费为:3元等。这个收费的标准在本系统中称为资费。资费管理子模块就是用来管理资费的。具有资费管理权限的管理员登陆成功后,可以添加新的资费,查询所有的资费,可以修改现有的资费信息,还可以删除资费。特别要注意的是:由于对资费的修改会影响选择了这种资费的用户要交纳的费用,所以在修改资费信息前要事先通知所有已经选择了这个资费的用户;只有当没有任何用户选择某个资费了,这个资费才能被删除掉。3)管理员管理 对本系统的各个子模块的访问都是受权限控制的,只有拥有了访问权限,才能使用子模块。在本系统中存在着三类使用者:n 用户,即使用开放实验室的人,他们默认具有使用用户自服务系统的权限。n 超级管理员,即对本系统进行管理的人,并具有最高的管理权限,他可以使用除用户自服务以外的所有子模块。这个超级管理员只有一个,是系统初始建立时就提供好的。n 普通管理员,即对本系统中的部分子模块进行管理的人,这些人是由超级管理员进行管理的,他们具有的权限也是由超级管理员赋予的。管理员管理就是超级管理员来管理普通管理员。超级管理员登陆成功后,可以增加新的普通管理员,同时为他分配一些权限,可以修改普通管理员的信息,可以查询所有的管理员信息,可以删除某些管理员。 4)用户管理电信运营商提供基于Unix平台的实验室环境,选择使用这种业务的用户能够远程登录到实验室中做基于这个实验室环境的一些工作和实验。用户要想成功登陆到开放实验室中,事先必须要拥有一个这个开放实验室上的帐号,在本系统中此帐号称为业务帐号,每个开放实验室上的业务帐号的用户名是唯一的,不同的开放实验室上的业务帐号的用户名可以相同,这个帐号用户可以通过向本系统中具有用户管理权限的管理员去申请。 一个用户会有多种业务,如:Email服务、Unix系统、代理主机服务等,每个业务我们都要收取一定的费用,如果我们以业务账户为单位来算总的费用,那么用户申请的每种业务都要单独交费,会给用户造成不便,所以我们又添加了帐务账户来统一管理每个用户所使用的所有业务账号上发生的费用,帐务帐号是要和用户的真实信息联系在一起的,所以每个用户只能有一个帐务帐号,但可以对应多个业务帐号。用户管理子模块就是对用户的帐务帐号和业务帐号进行管理。 具有用户管理权限的管理员登陆成功后,首先可以开通帐务帐号,帐务帐号必须和用户的一些真实信息关联起来,如用户的真实姓名,身份证号码,联系电话等。开通时,由用户提供这些信息,然后由管理员将信息录入到系统中并保存下来。对于开通好的帐务帐号也是由具有用户管理权限的管理员来管理的,如暂停帐务帐号,恢复帐务账号,删除帐务账号,修改用户真实信息等。由于用户的一个帐务帐号会对应多个业务帐号,所以对账务账号的操作会级联影响关联的所有业务帐号。其次,具有用户管理权限的管理员还可以开通业务帐号,但用户要想开通一个业务帐号,前提是必须拥有一个帐务帐号。在开通业务帐号时,先由用户为这个业务帐号选择一种资费方式,选择一台开放实验室,然后把选择好的信息提供给管理员,再由管理员将信息录入并保存,这个业务帐号会被保存到用户选择的开放实验室的服务器上,对于开通好的业务帐号也是由具有用户管理权限的管理员来管理的,如暂停业务帐号,恢复业务帐号,删除业务帐号,修改业务帐号。 5)账单查询具有帐单查询权限的管理员可以利用此子模块对所有用户的月账单进行查询。此子模块不仅提供对某个帐务帐号上产生的总的费用进行查询,还提供对某个帐务帐号上的每个业务帐号上产生的费用明细(详细信息)进行查询。具体操作如下:1月账单查询n 具有账单查询角色的管理员进入本系统,登录成功后,可以执行如下查询操作:n 根据输入的月份查询所有用户这个月的费用信息(提供分页显示)。n 根据输入的月份和其它组合条件查询符合条件的用户这个月的费用信息(提供分页显示)。n 根据输入的月份和用户的帐务帐号的用户名查询某个用户这个月的费用信息。 2月账单明细查询n 具有账单查询角色的管理员进入本系统,登录成功后,首先查询出用户帐务帐号的合计费用信息,然后在这个信息上执行查询详细信息的操作,系统会显示该帐务帐号上所有业务帐号上发生的所有费用的详细信息。 6)账务查询具有帐务查询的管理员可以使用此子模块对开放实验室的使用情况进行查询。此子系统可以提供以月为周期的查询,也可以提供以年为周期的查询。具体操作如下:月帐务查询: 具有账务查询角色的管理员进入本系统,登录成功后,可以执行如下查询操作:n 根据输入的月份查询所有开放实验室这个月被使用的总的时长信息。n 在上一个查询的基础上查看某个实验室这个月每一天的时长信息。年帐务查询: 具有账务查询角色的管理员进入本系统,登录成功后,可以执行如下查询操作:n 根据输入的年份查询所有开放实验室这一年被使用的总的时长信息。n 在上一个查询的基础上查看某个实验室这一年每个月的时长信息。 7)用户自服务用户自服务模块可以方便地供用户查询自己的账单。这个子系统是唯一的一个用户可以使用的子系统。具体操作如下:查询自己的月帐单n 用户进入本系统,使用自己的帐务帐号登录成功后,可以执行如下查询操作。n 根据输入的月份查询自己这个月的费用信息。n 在上一个查询的基础上查看这个月费用明细。3. 概要设计3.1登陆设计1)以下是登陆的设计 图3 登陆用例图管理员登陆或是用户登陆都需要输入登录名和密码,但是管理员必须是被授权的,登陆后可以进行相应的管理操作;用户必须是有相关的账号,登陆后进行相关操作。2)用例时序图 图4 登陆序列图3.2权限管理模块设计权限管理包括有权限浏览、权限添加、权限修改、权限删除、角色浏览、角色添加、角色修改、角色删除功能。其中角色浏览、角色添加、角色修改、角色删除设计和权限部分是相似的,所以在这里不作阐述。当拥有这些权限的管理员登陆后,将会得到相应的操作。 图5 权限管理用例 1)权限浏览功能说明:当拥有权限管理权限的管理员登陆后,将能浏览系统中所有的权限,并能根据相应的条件,查询浏览满足条件的权限。以下是完成浏览查询功能的时序图: 图6 权限浏览用例时序图2)权限删除功能说明:管理员进入界面可以浏览所有的权限,也可以根据条件查询符合条件的权限,点击删除按钮删除要删除的权限,删除完毕后重新显示最新的权限。以下是权限删除的时序图: 图7 权限删除时序图3)权限修改功能说明:进入修改浏览界面,浏览所有的权限,对要修改的权限进行修改,进入修改界面进行修改,修改完毕后确认保存到数据库中。以下是权限修改权限的时序图: 图8 权限修改用例时序图4)权限增加功能说明:管理员可以录入权限信息,进入权限增加界面输入信息,保存,完成权限的添加。以下是是权限增加的时序图: 图9 权限增加时序图3.3管理员管理模块设计1)管理员管理模块中所拥有的功能有超级管理员修改、管理员查询浏览、管理员修改、添加管理员、删除管理员,以下是管理员模块的用例图: 图10 管理员管理用例2)超级管理员信息修改功能说明:当拥有这个权限的管理员可以进行超级管理员信息修改操作,进入修改界面修改信息,再保存信息。以下是超级管理员修改的时序图: 图11 超级管理员修改时序图3)管理员信息浏览功能说明:进入管理员浏览页面后能浏览所有的管理员,可以按照条件查询符合条件的管理员信息。以下是管理员浏览时序图: 图12 管理员信息查询时序图4)管理员修改功能说明:管理员信息修改就是进入改功能模块后就会显示所有的管理员记录,可以根据条件查询要修改的管理员记录,并单击修改按钮进入修改页面对信息进行修改,修改后保存完成修改操作。以下是管理员修改时序图: 图13 管理员修改用例时序图5)管理员删除功能说明:进入管理员删除功能模块后,显示所有的管理员记录,可以根据条件查询符合条件的管理员记录,点击删除操作后,重新显示所有的记录。以下是管理员删除设计时序图: 图14 管理员删除时序图6)管理员增加功能说明:进入管理员增加功能模块后,输入所要增加的管理员的信息后保存完成管理员的增加。以下是管理员增加设计时序图: 图15 管理员增加时序图3.4资费管理模块设计1)资费管模块拥有的功能有资费信息查询浏览、修改资费信息、删除资费信息、添加资费信息、添加新的资费。以下是资费管理模块的用例图: 图16 资费管理用例图2)资费查询功能设计说明:点击资费信息查询菜单,显示所有资费信息。然后输入自费查询条件,点击查询按钮,显示查询结果,以下是自费查询浏览功能设计时序图: 图17 资费查询时序图3)资费修改功能说明:点击资费修改菜单,显示所有资费。然后输入资费查询条件,点击查询按钮,显示满足条件的资费信息。点击每条资费信息后的修改按钮,显示要修改的资费信息。修改资费信息,点击保存按钮,保存。以下是自费修改功能设计时序图: 图18 资费修改时序图4)资费删除功能说明:点击资费删除菜单,所有资费信息。然后输入资费查询条件,点击查询按钮,显示满足条件的资费信息。点击每条资费信息后的删除按钮,进行删除。重新显示最新资费信息。以下是资费删除功能设计时序图: 图19 资费删除时序图 5)资费增加功能说明:点击添加资费菜单,显示输入界面。然后输入资费信息。输入完毕后,点击保存按钮保存完成操作。以下是自费增加功能设计时序图: 图20 资费增加时序图3.5用户管理模块设计1)用户管理模块有用户账务账号管理部分:用户账务账号查询浏览、账务账号信息修改、账务账号删除、账务账号申请;用户业务账号管理部分:用户业务账号查询浏览、业务账号信息修改、业务账号申请、业务账号删除。用户业务账号管理部分的功能模块的设计和用户账务账号部分的功能模块的设计是雷同的,所以在这些只介绍用户账务账号部分的功能设计。以下是用户管理模块用例图: 图21 用户管理用例图2)账务账号查询功能说明:点击帐务帐号查询菜单,显示所有帐务帐号。然后输入查询条件。点击查询,得到满足条件的帐务帐号信息。以下是账务账号查询设计时序图: 图22 账务账号查询时序图3)账务账号删除功能说明:点击帐务帐号删除菜单,显示所有帐务帐号信息。然后输入查询条件。输入完毕后,点击查询按钮,得到满足条件的帐务帐号信息。点击每条帐务帐号信息后的删除按钮,进行删除操作。以下是账务账号删除功能设计的时序图: 图23账务账号删除时序图4)账务账号修改功能说明:点击帐务帐号修改菜单,显示所有帐务帐号。然后输入查询条件。输入完毕后,点击查询按钮查询。得到满足条件的帐务帐号。点击每条帐务帐号后的修改按钮,显示要修改的帐务帐号。修改帐务帐号后,点击保存按钮保存。以下是账务账号修改功能设计时序图: 图24账务账号修改时序图5)账务账号申请功能说明:点击帐务帐号申请菜单,显示帐务帐号输入界面。然后输入帐务帐号数据,点击保存。以下是账务账号申请功能设计时序图: 图25 账务账号增加时序图3.6账单查询模块设计1)账单查询模块有账单查询功能,以下是账单查询模块的用例图: 图26账单查询用例图2)账单查询功能说明:点击帐单查询菜单,显示所有用户的月帐单费用。然后输入月份,用户姓名等其他查询条件。点击查询按钮,得到满足条件的用户帐单费用信息。点击每条费用后的详细查看,显示该用户的帐务帐号上的每个业务帐号费用信息。以下是账单查询功能设计时序图: 27 账单查询时序图3.7账务查询模块设计1)账务查询模块功能有:月账务查询、年账务查询。以下是账务查询模块的用例图: 图28 账务查询用例图2)账务月查询功能说明:点击月帐务查询菜单,显示所有实验室的本年所有月时长信息。然后输入月查询条件,点击查询按钮,得到指定月份的所有实验室的时长数据。点击每个实验室数据后的详细查看按钮,显示该实验室该月的每天时长信息。以下是账务月查询功能设计的时序图: 图29 账务月查询时序图3)账务年查询功能说明:点击年帐务查询菜单,年帐务查询界面。然后输入年查询条件,点击查询按钮,得到指定年份的所有实验室的时长数据。点击每个实验室数据后的详细查看按钮,显示该实验室该年的每月时长信息。以下是账务年查询功能设计时序图: 图30 账务年查询时序图4. 数据库设计4.1关系E-R图 图31 数据库E-R图4.2 数据库逻辑设计管理员登陆后可以拥有多种角色,一个角色可以分配给多个管理员,所以它们的关系是多对多的关系。一个角色可以拥有多个权限,一个权限可以分配给多个角色,所以它们也多对多的关系。当一个权限Rights被创建后,它将拥有系统中的多个模块(保存在系统模块modules中的模块记录)和拥有多个功能操作(保存在operations中的操作记录)。当一个角色被创建后,它将拥有多个权限(保存在Rights中的权限记录),他们的关系将会在RightRoles表中作关联(保存有roles记录的id和rights记录的id)。当一个管理员用户(admins表中的用户)被创建,它将拥有角色(角色表roles中保存着的角色),用户和角色将会以adminroles表作关联(保存admins的id和roles的id)。个用户可以拥有多个用户,一个用户业务只能有一种资费,一个资费可以分配给多个用户业务。当资费被设定后,将保存在资费表pricings中,账户用户被创建后保存在用户信息表user中,当账户需要某种业务时,将会创建一个业务,这个业务将会联系到帐户信息和所需的业务资费信息。因为此系统设计是要进行费用计算的,所以就要得到用户登录整合后的时长,这些时长都会被分阶段的保存在各表中;按照天整合的保存到月表detailmonths中,按月整合的保存到年表detailyears中;因为由于条件的限制并没有实现到整合部分,所以整合部分产生的数据有我们主观去插入数据做测试。4.3重要的关系模式 1)管理员角色设置adminroles是由管理员admins和角色roles的多对多关系而派生出来的一个关系模式,这个关系模式是把管理员信息admins和角色roles关联起来的一个关系模式,如下表: 表1 管理员角色表adminroles字段英文名字段中文描述类型约束条件说明id管理员角色IDIntPK主键adminid管理员IDVarchar(20)Fk关联roleid角色IDVarchar(20)Fk关联 2)权限rights是存放这个权限所能操作的模块和该模块所拥有的功能,它关联到的是模块module和功能操作operation,如下表: 表2 权限表rights字段英文名字段汉字名类型约束条件说明id操作IDIntPK主键name操作名称Varchar(20)属性url操作urlVarchar(30)保存路径moduleid模块IDIntFk关联operationid操作IDIntFk关联 3)角色权限设置rolerights是角色roles和权限rights的多对多关系的一个关系模式,该关系模式是把角色和权限关联在一起,如下表: 表3 角色权限表rolerights字段英文名字段汉字名类型约束条件说明id角色权限IDIntPK主键roleid角色IDintFk关联rightid权限IDintFk关联 4)这是保存业务系统的一个关系,一个用户可以有多个业务,一个业务必须有一种选一个资费,所以它关联到用户users和资费prices。 表4 用户业务表userservices字段英文名字段汉字名类型约束条件说明id业务IDIntPK主键userid用户IDVarchar(20)Fk关联labip实验室IPstatus状态Varchar(20)开通与暂停priceid资费IDVarchar(20)Fk关联enrolldate业务申请日期Dateclosedate业务停止日期Date 5) 用户登录时长按实验室每天整合到保存月的关系模式中detailmonths。 表5 天整合表字段英文名字段汉字名类型约束条件说明logouttime整合时间TimestampLabip实验室IPVarchar(24)Duration登录时长Long 6) 用户登录时长按实验室每月整合到保存年时长的关系中detailyears。 表6 月整合表字段英文名字段汉字名类型约束条件说明logouttime整合时间TimestampLabip实验室IPVarchar(24)Duration登录时长long 5. 系统详细设计与实现5.1环境信息配置与说明1)本系统开发环境:操作系统windowsXP + 数据库mysql 5.0 + 开发工具myeclipse2)开发语言:java编程语言3)服务器:tomcat6.04)建立数据库根据系统数据库设计要求编写数据库脚本createdb.sql,并插入设计中所需的数据,其中插入有一个超级管理员用户及其角色,插入的数据主要有系统模块名、所有的权限和所有的功能操作。5)工程建立在myeclipse中建立一个web工程netct在工程中添加hibernate+struts+spring的jar包;在导入包的过程要注意导入的jar包不能产生冲突,否则发生错误。6)系统包系统包的建立,exceptions包是放异常处理类;global包是放的是全局公共类;netctoss内以dao结尾的包都是放置数据库操作类的,以forms和entities结尾的都是放置实体类的,Action和service是放置业务逻辑类;将如下图: 图32 工程包图7)整个系统的实现是采用J2EE中的web技术,整合了struts+spring+hibernate框架。 Hibernate5它在数据库操作和数据持久是一个很优秀的框架,所以在系统中使用了hibernate来实现数据的持久化。struts在系统中的作用是使用到它的MVC模型, Controller是系统核心控制器对应中的ActionServlet来控制。 View层中用到了jsp和struts中的标签库(jstl)完成。在所有的ORM 框架中, Sping 对Hibernate 的支持最好7。Spring 提供很多JoC 特性的支持,方便地处理大部分典型的Hibernate 整合问题,如Sessio nFactory 的注入HibernateTemplate 的简化操作及DAO(Data Access object)支持等,如下图。界面的显示,客户端请求业务逻辑的实现层Mvc架构的控制层,界面显示层和业务逻辑层的交互数据访问对象,与持久对象的交换通过实体关系映射,由数据库得来的实体对象存放数据的数据库视图层(jsp)Web层StrutsService层(业务逻辑层)Dao对象访问层Hibernate持久层数据库Mysql 图33 系统技术实现图5.2各个模块的实现1)Hibernate中实体类的设计这些类主要是通过hibernate的映射得到的,非常的方便快捷,实体类相当于javaBean,就是提供一些属性和它相应的get和set方法。 图34 hibernate实体类2)spring和hibernate整合后用getHibernateTemplate完成的dao类 图35 dao类3)用户登录模块实现 登录模块的设计流程和说明:在页面中输入管理员登录名、登录密码和验证码,通过表单封装通过请求到达LoginAction类中,在调用表单的验证,登录成功的就跳转到login.jsp页面中,失败的跳到index.jsp页面继续登录。以下是模块中的类图:图36 登录类登录LoginAction.java类的定义实现,这个类中我们继承了Action类并重新实现它的execute()方法,在里面做登录业务操作包括数据验证的调用。以下是类定义代码:public class LoginAction extends Action public ActionForward execute()4)权限管理模块类定义与实现如下图: 图37 权限管理模块类在权限管理使用了三个Action类,一个是RightRoleAction类(如下面的类定义代码),这个类中的方法主要是完成功能模块的页面跳转、角色和权限的浏览; RolesAction类(如下面的类定义代码)的方法是对角色的增加、删除、修改进行操作;RightsAction类(如下面的类定义代码)的方法是对权限的增加、删除、修改进行操作;其中service对象是spring注入的业务逻辑方法,所以会调用到service包中对应类中对应的业务方法,这些业务方法也将会调用dao类(如图35)中的数据操作方法完成数据库数据访问。Forms包中的类(如图37)都是表单提交数据存放对象的实体类,RightCondForm类是页面输入的权限查询条件的表单实体。RoleCondForm类是角色的查询条件实体类,RightForm是修改权限提交的表单信息;RoleForm是修改角色提交的表单信息。当一个请求完成后都会跳到指定的jsp页面,并把数据请求过来,把数据用jstl标签库技术显示到页面中,这样有效地把java代码和html代码分离出来。以下代码是RightRoleAction类的定义和实现:public class RightRoleAction extends DispatchAction /为spring依赖注入而提供的set方法private IRightRoleActionService service;/index负责权限管理主页面逻辑public ActionForward index()/browseRight负责权限的查询浏览public ActionForward browseRight()/browseRole负责角色的查询浏览public ActionForward browseRole()/deleteRight负责显示权限删除界面public ActionForward deleteRight()/deleteRight负责显示删除角色界面public ActionForward deleteRole()/updateRight负责显示权限修改界面public ActionForward updateRight()/updateRole负责显示角色修改界面public ActionForward updateRole()/addnewRight负责权限增加界面的跳转public ActionForward addnewRight()/跳转到显示增加角色界面public ActionForward addnewRole()/公共处理部分,权限的查询public void queryRight()/公共处理部分,角色的查询public void queryRole()以下代码是RightAction类的定义和实现: /专门负责权限的删除,修改,添加,-不负责查询public class RightAction extends DispatchAction private IRightActionService service;/对提交的表单进行验证private boolean validate()/负责数据的添加逻辑public ActionForward insert()/负责数据的删除操作public ActionForward delete()/负责数据的更新操作public ActionForward update()/负责显示要修改的权限数据。public ActionForward showUpdate()以下代码是RightRoleAction类的定义和实现:public class RoleAction extends DispatchAction /为spring的对象注入提供对象private IRoleActionService service;/对表单进行验证private boolean validate()/把角色插入到数据库中public ActionForward insert()/从数据库中删除角色public ActionForward delete()/显示修改的数据public ActionForward showUpdate()4)管理员管理模块类定义与实现下图是管理管理的AdminAction类和封装了管理员查询条件表单的实体AdmincondForm及管理员信息表单的实体类AdminForm。如下图: 图38 管理员管理模块类以下是AdminAction中的业务方法。 validate()是表单提交验证方法。index()方法是管理员模块主页面的业务处理。页面处理显示方法有:查询浏览功browserAdmin()、显示修改updateAdmin()、显示删除界面deleteAdmin()、显示自身修改界面updateSuper()、显示增加界面addnewAdmin()。业务处理方法有:管理员插入insert()、管理员删除delete()、管理员数据修改输入处理updateui()、管理员自身修改updatesuperData()。还有权限查询类queryAdmin()。这些方法都是处理完后都会通过findForward()方法跳转到各自的jsp页面并完成数据的显示和相应的操作。以下代码是AdminsAction类的定义与实现:public class AdminAction extends DispatchAction private IAdminActionService service;/提交表单的验证private boolean validate()/管理员管理主页面逻辑处理public ActionForward index()/负责各功能模块的页面显示,查询浏览public ActionForward browseAdmin()/显示修改public ActionForward updateAdmin()/显示删除界面public ActionForward deleteAdmin()/显示本身修改界面public ActionForward updateSuper()/显示增加页面public ActionForward addnewAdmin()/以下是负责各功能模块的业务处理/管理员数据插入public ActionForward insert()/管理员数据删除public ActionForward delete()/管理员数据修改输入处理public ActionForward updateui()/管理员数据修改public ActionForward update()/管理员本身信息修改public ActionForward updateSuperData()/公共处理部分,权限的查询public void queryAdmin()5)资费管理模块类定义与实现下图是管理员管理的PricingAction类和封装了管理员查询条件表单的实体PricingCondForm及管理员信息表单的实体类PricingForm。 图39 资费管理模块类以下是PricingAction中的业务方法。 validate()是表单提交验证方法。index()方法是资费模块主页面的业务处理。页面处理显示方法有:查询浏览功browserFee()、显示修改updateFee()、显示删除界面deleteFee()、显示自身修改界面updateSuper()、显示增加界面addnewAdmin()。业务处理方法有:资费插入insert()、资费删除delete()、资费数据修改输入处理update ()。权限查询类queryFee()。显示要修改的数据showUpdate()。这些方法都是处理完后都会通过findForward()方法跳转到各自的jsp页面。以下代码是PricingAction类定义与实现:public class PricingAction extends DispatchAction private IPricin

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论