
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
基于三层结构的B/S模式的设备管理系统——用户、部门、日志和系统维护的设计与实现PAGEIV摘要本文介绍的是设备管理系统的开发与设计,系统采用B/S模式的三层结构,应用Java的servlet技术,因此有较高的安全性、扩展性和可移植性。系统按照功能模块划分为设备管理维护模块、部门管理维护模块、用户管理维护模块、日志管理维护、系统维护模块和查询模块。本文主要论述了系统中的用户管理,部门管理,日志管理及系统维护模块的设计及实现。部门管理采用二叉树的数据结构对部门树形结构进行管理,保证系统部门间关系的正确。用户管理维护是基于部门结构对用户进行管理维护,一个用户可属于多个部门。日志是记录用户使用系统的操作情况,日志的存储采用触发机制,系统维护是对系统数据库的备份与恢复,日志管理和系统维护保证了系统安全运行。根据各功能模块的特点,采用Java面向对象的思想将各模块抽象为Java类。根据系统功能的需求,设计并实现相应的功能接口。使得各功能模块间相对独立,保证系统的安全性、稳定性和可扩展性。关键字:B/S模式,三层结构,Java语言,servlet技术,部门树,触发机制
AbstractThepaperhasintroducedthedevelopmentanddesignofDeviceManagementSystem.ThissystembaseontheBrowser/Servermodeltriple-layerstructureanduseservlettechnologyofjava,thereforethereishighersafety,expandabilityandportability.Accordingtothefunctionthesystemisdividedintofiveparts,whicharetheDeviceManagementModule,theDepartmentManagementModule,theUserManagementModule,theLogManagementModule,theSystemMaintenanceModuleandtheSearchmodule.ThemajorideaofthepaperisintroductionthatthedesignandrealizationoftheUserManagement,theDepartmentManagement,theLogManagementandtheDepartmentManagement.TheDepartmentManagementadoptsbinarytreestructuretomanagethestructureofdepartments,inordertoguaranteerelationamongdepartments.TheUserManagementbaseondepartment’sstructureandguaranteethatrelationofuseranddepartmentarecorrect.Logisusedtorecorduser’soperationinthesystem.ThelogsavingadoptTouchoffthemechanism.Thesystemmaintenanceistobackupthesystem’sdatabase,thelogmanagementandthesystemmaintenanceisusedtoguaranteesystemsafetymovement.Accordingtothecharacteristicofeveryfunctionmodule,abstractingeachfunctionmodelasclassbaseonJavaObjectOrientedthought.Accordingtotherequirementofthesystemfunction,designandrealizeeachfunctionmodel’sinterface.Thereforeeachfunctionmodelofsystemisindependenceandthesystemishighersafety,expandabilityandportability.Keyword:B/Smodel,triple-layerstructure,Javaprogramminglanguage,servlettechnology,departmenttree,touchoffthemechanism
目录TOC\o"1-3"\h\z摘要 IAbstract II目录 III1.系统概述 12.设备管理系统的设计 22.1系统整体设计 22.2部门管理维护的设计 42.2.1部门管理维护功能概述 42.2.2部门管理维护详细设计 82.2.3.部门结构与用户维护管理间联系的设计与实现 122.2.4.部门类接口算法设计 142.3用户管理维护设计 202.3.1.用户管理维护功能概述 202.3.2.用户管理维护的详细设计 222.4日志管理维护的设计 252.4.1系统日志管理维护功能概述 252.4.2.日志管理维护详细设计 262.5系统维护的设计 282.5.1.系统维护功能概述 282.5.2.系统维护详细设计 293.设备管理系统的实现 323.1部门管理维护模块的实现 323.2.1查看部门信息功能实现 323.2.2添加部门功能实现 333.2.3修改部门功能实现 343.2.4删除部门功能实现 353.2.5移动/合并部门功能实现 363.2用户管理维护模块的实现 383.2.1用户个人信息维护功能实现 383.2.2添加新用户功能实现 393.2.3查看用户信息功能实现 423.2.4修改用户信息功能实现 433.2.5添加用户到其他部门功能实现 443.2.6删除用户功能实现 463.3日志管理维护模块的实现 473.3.1日志查询功能实现 473.3.2日志删除功能实现 483.4系统维护模块的实现 503.4.1系统备份功能实现 503.4.2系统备份文件查看功能实现 513.4.3删除备份文件功能实现 523.4.4还原备份文件功能实现 534.总结 554.1系统小结 554.2系统不足 554.3心得体会 55致谢 56参考文献 57附录:(类的函数清单) 58PAGE69
1.系统概述当前设备系统存在的主要问题是对设备的管理缺乏灵活性,对部门结构与用户权限的管理比较混乱,缺乏很好的安全性。由于当前系统中设备属性划分固定,缺乏灵活性。当设备属性发生变化时,就会出现类型不匹配的问题,在对设备进行录入,修改和查询操作时,会带来诸多的不便。而且当前系统中用户权限和部门结构的管理比较混乱,当用户所属部门或部门结构发生变化时,例如某一用户从一个部门调到另一部门,或系统部门中的某一部门新增加或删除下级部门时,这时对该部门设备和用户权限的管理就比较混乱。除此之外,当前系统还存在安全性的问题,如:系统的备份与还原,系统日志的记录等。在功能上还缺乏对部门,用户的维护操作功能,如:合并部门,移动部门,将某部门用户添加至其它部门等操作。基于系统灵活性和安全性的考虑,系统构建是基于B/S模式的三层结构,采用JAVA的servlet技术的设备管理系统。开发此系统的核心思想就是保证设备管理的灵活性和独立性,系统运行的安全性。系统中的所有设备的属性均由用户决定。即设备的结构是随着用户的需求变化的,因此大大提高了系统对设备管理的灵活性。将不同类型的用户分配不同的操作权限,并增加不同类型用户的身份验证。当用户使用系统操作时,将该用户的操作情况记入日志,保证用户能够安全的使用系统。为保证系统的正常运行,增加了对系统的维护功能:备份系统和还原系统。当系统遇到问题时,能够及时恢复系统。为了很好的管理系统部门结构,还增加了对部门的合并和移动操作,而且部门结构发生变化时,不会影响该部门的设备管理与维护,因此可以很好地避免对于设备管理的混乱,保证设备管理的独立性。而且出于系统的跨平台性和安全性的考虑,本系统的开发采用Java的servlet技术。java语言是目前非常流行的一种面向对象的程序开发语言。servlet技术是其中非常重要的组成部分,是开发B/S模式系统的有力工具。使用servlet技术开发系统,继承了java的一贯风格,不但效率高而且具有很高的安全可靠性。而后台数据库采用MicrosoftSQLServer数据库,MicrosoftSQLServer数据库是目前十分流行的数据库管理系统,不但有很高的安全性而且还具备十分强大的网络功能。2.设备管理系统的设计本文只讨论设备管理系统的部门、用户、日志和系统维护部分的设计与实现。2.1系统整体设计本设备管理系统是基于Java的servlet技术的B/S模式的系统。从系统结构的设计来看,该系统可划分为三个逻辑层:数据库操作层,中间层以及页面交互层。如下图所示:采取这种三层结构的好处在于:每一层都是相对独立的,它们之间只能通过相应的接口进行通信,从而保证了系统的安全性和可扩展性。当其中一层的结构发生变化时,由于通信接口的统一不会影响到其它层次结构。对于用户来说只有页面交互层是可见的,中间层和数据库层对于用户是透明的,这样就提高了系统的安全性。页面交互层:用户通过页面交互层完成对系统维护操作(如:设备管理维护,用户管理维护,部门管理维护等等)。通过相应的通信接口将用户所要完成操作提交给中间层,由中间层完成相对应的逻辑操作。中间层:中间层主要完成对相应抽象类的逻辑操作和提供相应的操作接口。通过相应的通信接口提交给数据库层,来完成对数据库的相应操作。数据库操作层:数据库操作层主要完成对数据库的操作和提供相应的对数据口修改的接口。数据库层将从上层模块获得的数据进行处理后修改相应的数据库信息,避免了上层各模块直接对数据库进行操作,从而提高了系统的安全性。数据库:底层数据库主要用于存储系统中设备,用户,部门,日志的基本信息。使用的是SQLServer2000数据库。SQLServer2000数据库除了具有强大的存储功能外,最重要的是其具有强大的管理功能。为数据的存储及管理提供了强大的数据支持。本系统从功能上分为:设备管理维护模块,用户管理维护模块,部门管理维护模块,日志管理维护模块,系统维护模块,查询功能模块。如下图所示。设备管理维护模块:维护操作包括对设备管理维护和对设备属性的管理维护;设备信息管理维护提供对设备信息的添加、查询、修改及删除。设备属性的管理维护提供对设备属性的添加、查询、修改及删除。用户管理维护模块:是基于部门结构对某部门用户进行管理维护,保证用户与部门所属关系的正确。维护操作包括对用户的添加、修改、按部门查询、删除及添加到其它部门的操作。用户管理维护是基于部门的管理维护,主要是对用户权限、所属部门、用户名及用户密码的管理维护。部门管理维护模块:部门的管理维护是对部门树型结构的管理维护,保证系统部门间关系的正确。维护操作包括对部门的添加、修改、删除、移动和合并操作。日志管理维护模块:日志是记录用户使用系统进行操作的情况,保证用户能够安全,合理的使用系统,日志的存储采用触发机制。维护操作包括对日志的查询及删除,查询分为按日期查询、按操作类型查询、按设备ID查询、按未经批准操作查询和默认查询。删除包括按日志ID删除和按日期删除。系统维护模块:是对系统数据库的备份与恢复和备份文件的管理维护,在系统遇到问题时能够及时恢复,保证系统的正常运行。维护操作包括备份系统,还原系统和备份文件的查询,删除。备份文件是对系统数据库数据备份和数据库日志备份。查询功能模块:该模块的提供对设备信息进行复杂逻辑查询的功能,保证用户能够查询到准确的设备信息。根据系统功能模块的划分,将各层按功能细分如下图所示2.2部门管理维护的设计2.2.1部门管理维护功能概述系统中部门管理主要是对系统部门树形结构的管理维护,其次是对部门基本信息的管理维护。其中对部门结构的维护包括:添加新部门,删除部门,移动部门和合并部门;对部门基本信息的维护包括:修改部门信息。部门结构的管理维护在整个系统中起到十分关键的作用,因为系统中的设备管理,用户管理和日志管理都是基于部门结构的。系统部门结构示意图(图1):图1系统部门结构示意图部门1:为系统中部门树的根部门。部门5,部门6,部门7,部门8,部门9,部门10:为系统中部门树的叶子节点。部门信息管理维护功能包括:添加新部门:添加新部门到操作用户所管辖部门树中的某一部门下级(如图2,3所示)。图2添加新部门前操作用户所管辖部门树示意图图3添加新部门后操作用户所管辖部门树示意图修改部门信息:修改操作用户所管辖部门树中的某部门的名称。移动部门:将操作用户所管辖部门树中的某部门及其下级所有部门移动到操作用户所管辖部门树中的另一部门的下级。除整个系统部门树的根部门以外所有部门都可执行该操作。(如图4,5所示)图4移动前操作用户所管辖部门树示意图图5移动后操作用户所管辖部门树示意图合并部门:将操作用户所管辖部门树中的某部门的用户和设备合并到操作用户所管辖部门树中的另一部门中,并将合并部门下级部门移动到目的部门的下级,然后删除合并部门。除整个系统部门树的根部门以外所有的部门都可执行该操作。(如图6,7所示)图6合并前操作用户所管辖部门树示意图图7合并后操作用户所管辖部门树示意图删除部门:删除操作用户所管辖部门树中的某一叶子节点部门。(如图8,9所示)图8删除前操作用户所管辖部门树示意图图9删除后操作用户所管辖部门树示意图查看部门信息:列出操作用户所管辖部门树中的所有部门信息和所属部门的部门结构。普通用户只能查看其所在部门的部门结构。添加新部门,修改部门信息,移动部门,合并部门,删除部门功能只限于系统管理员和部门高级用户2.2.2部门管理维护详细设计部门类详细设计根据部门管理维护功能的需求和部门结构的特点,将部门信息维护抽象为类。部门类主要负责维护管理系统中部门树的结构和记录部门的基本信息,为该系统的部门管理维护和其它功能模块提供相应的接口。目的是为了保证系统中部门结构的准确,保证部门与用户之间的联系简单,清楚,安全,合理。本系统中部门类采用二叉树结构表示系统中部门树的结构,主要负责对部门结构和信息的管理维护,为其它功能模块提供相应的接口。1).部门类属性设计:部门类属性用于记录系统部门的基本信息,是以二叉树形式表示部门的树形结构。部门ID(DepID):部门唯一标识(主索引)。表示与数据库中的部门信息之间的联系。部门名称(DepName):系统中部门的名称标识。直接上级部门ID(SuperID):该部门的直接上级部门ID。根部门的直接上级部门ID属性为-1。二叉树的左孩子(ChildDep):该部门下级部门子树的根节点,该类型为部门类对象。叶子节点的下级部门子树的根节点为null。二叉树的右孩子(BrotherDep):该部门兄弟部门子树的根节点,该类型为部门类对象。如果该部门没有直接右兄弟部门,则该属性为null。部门类属性列表属性名属性标识属性类型部门IDDepIDint部门名称DepNameString直接上级部门IDSuperIDint该部门下级部门子树的根节点(二叉树的左孩子)ChildDepDepartment该部门兄弟部门子树的根节点(二叉树的右孩子)BrotherDepDepartment举例说明图10系统部门树结构如图10所示:根部门:直接上级部门ID(SuperID)属性为-1。该部门下级部门子树的根节点(左孩子)ChildDep属性为1级部门1的部门类对象。该部门兄弟部门子树的根节点(右孩子)BrotherDep属性为null。1级部门1:直接上级部门ID(SuperID)属性为根部门ID该部门下级部门子树的根节点(左孩子)ChildDep属性为2级部门1的部门类对象。该部门兄弟部门子树的根节点(右孩子)BrotherDep属性为1级部门2的部门类对象。2级部门5:直接上级部门ID(SuperID)属性为1级部门3的ID该部门下级部门子树的根节点(左孩子)ChildDep属性为null。该部门兄弟部门子树的根节点(右孩子)BrotherDep属性为2级部门6的部门类对象。以二叉树形式表示为图11图112).部门类功能接口设计部门类接口主要分为:用户信息维护接口和为其它功能模块提供的接口。部门信息维护接口是为了实现部门信息和结构的管理维护功能。为其它功能模块提供的接口是根据其它模块的需求提供相应的功能,主要为用户管理维护模块提供接口。如图12所示图12部门信息维护接口添加新部门接口:将新部门对象信息写入数据库中。添加部门时调用。更新部门信息接口:根据部门类对象更新该对象在数据库中的基本信息。修改部门信息时调用。移动部门接口:根据移动部门ID和移动目的部门ID,将移动部门对象的直接上级部门域的值设置为移动目的部门ID,调用更新部门信息接口更新该移动部门对象在数据库中的信息。移动部门时调用。合并部门接口:根据合并部门ID和目的部门ID,将合并部门的设备和用户合并到目的部门,将合并部门的所有直接下级部门移动到目的部门的下级,然后删除合并部门信息。合并部门时调用。删除部门接口:根据部门类对象删除该部门在数据库中的基本信息,删除部门时调用。获得用户所能管辖部门树接口:通过用户ID获得该用户所能管辖的部门树,根据用户所属部门ID循环调用根据部门ID获得部门树接口实现。查看部门信息,添加新用户和设备查询时调用。为其它功能模块提供的接口根据部门ID获得部门类对象接口:通过部门ID获得该部门类用户对象。修改部门,删除部门时调用。获得某部门直接下级部门ID数组:通过部门ID获得该部门直接下级部门ID数组。获得用户所能操作的所有部门ID和获得某部门所有下级部门ID时调用。获得某一部门的所有下级部门ID:根据部门ID获得该部门下级所有部门ID,递归调用获得某部门直接下级部门ID数组接口实现。查询日志时调用。获得用户所能操作的所有部门ID:通过用户ID获得该用户所能操作的部门ID,根据用户所属部门ID循环调用获得某一部门的所用下级部门ID接口实现。设备维护时调用。获得某部门直接下级部门对象数组:通过部门ID获得该部门直接下级部门对象数组。查询用户信息和获得部门树时调用。获得某部门所有下级部门ID:根据部门ID获得该部门所有下级部门ID数组。获得用户所能管理部门ID时调用。根据部门ID获得部门树接口:根据部门ID某部门一概部门为根节点的部门树。获得用户所能操作的部门树时调用。获得能够添加用户到其它部门的部门树:根据操作用户所属部门ID和添加用户所属部门ID获得能够添加到的部门树。添加用户到其它部门时调用。获得移动部门能够移动到的部门树:根据操作用户所属部门ID和移动部门ID获得能够移到的部门树。移动部门时调用。获得合并部门能够合并到的部门树:根据操作用户所属部门ID和合并部门ID获得能够合并到的部门树。移动部门时调用。获得根部门到某部门的树结构:根据部门ID获得根部门到该部门的树形结构。查看部门和用户信息时调用。设置部门基本信息接口:通过部门类对象设置该对象的基本信息。数据库层调用。获得部门类对象的基本信息接口:通过部门类对象获得该对象的基本信息。查看部门基本信息时调用。判断该部门是否存在子部门接口:判断该对象是否存在子部门。如果没有子部门,则允许删除该部门。查看部门信息时调用。判断系统根部门是否存在接口:判断系统部门树的根部门是否存在,如果不存在,则允许添加系统根部门。系统初始化时调用。获得批准部门ID:根据当前部门ID和操作用户所属部门ID获得批准部门ID,写日志时需调用该接口获得批准部门ID。部门类与部门维护数据库操作类之间的接口调用如图13所示。图13部门类与部门维护数据库操作类之间的接口调用关系2.2.3.部门结构与用户维护管理间联系的设计与实现用户维护管理是基于部门结构的用户管理,因此部门结构与用户维护管理间的联系十分重要。要求用户管理维护部分能够简单的调用获得部门结构的接口。1).获得用户所能管辖部门树根据用户ID获得该用户所能管辖的部门,使用该接口的用户类型为系统管理员和部门高级用户,系统管理员通过该接口获得管辖部门树为整个系统部门树。如图14所示。图14用户所属部门示意图系统管理员1获得的管辖部门树为整个系统部门树。部门高级用户1属于部门2和部门4。他所管辖部门为:部门2及其下级所有部门和部门4及其下级所用部门,要获得它所管辖部门树,则需将以部门2和部门4为根的子树合并为一棵树。获得管辖部门树,如图15,16所示。图15部门高级用户1管辖部门树图16部门高级用户1管辖部门树二叉树形式2).获得操作用户能够添加用户到其它部门的部门树根据操作用户所属部门ID和添加用户所属部门ID获得能够添加到的部门树,保证添加用户所属的多个部门不在同一部门子树上。如果操作用户为系统管理员,则获得能够添加用户到其它部门的部门树为整个系统部门树,除了以添加用户所属部门为根节点的部门子树。以图19为例,系统管理员1要将部门高级用户1添加到其它部门。则系统管理员1所获得的添加用户到其它部门的部门树为以部门3为根节点的部门子树(如图17所示)。图17如果操作用户为部门高级用户,则获得能够添加用户到其它部门的部门树为该部门高级用户所管辖部门树,除了以添加用户所属部门为根节点的部门子树。以图19为例,部门高级用户员1要将普通用户1添加到其它部门。则部门高级用户1所获得的添加用户到其它部门的部门树为以部门2,部门6,部门4,部门8,部门9,部门10组成的部门树(如图18所示)。图182.2.4.部门类接口算法设计1).获得用户所能操作的所有部门ID接口的算法设计根据用户所属部门ID循环调用获得某一部门的所用下级部门ID接口实现。算法描述:VectorallDepID;用于存放用户所能操作的所有部门ID的向量.int[]UserDepID;调用用户类接口通过用户ID获得该用户所属部门ID数组。for(intI=0;I<UserDepID.length;I++){调用部门类接口获得根据UserDepID[i]获得其直接下级所有部门ID并将其放入向量allDepID中.}2).获得某部门所有下级部门ID根据部门ID获得该部门所有下级部门ID向量。算法描述:Vectorvector;用于存放下级部门ID。Integer[]childID;调用部门类根据该部门ID获得该部门直接下级部门ID数组。if(childID.length!=0)判断该部门是否存在子部门。{如果存在子部门。for(intj=0;j<childID.length;j++){vector.add(childID[j]);将下级部门ID加入向量中。递归调用此接口,然后将childID[j]的下级部门ID加入到vector中;}}3).根据部门ID获得部门树接口根据部门ID递归调用该接口获得该部门以该部门直接下级部门为根的部门树,然后将下级子部门树的森林组成完整部门树。算法描述:Department[]childdDep;调用部门类接口根据部门ID获得该部门直接下级部门对象数组。if(subdep.length!=0)判断该是否存在子部门。{如果存在子部门;for(intj=0;j<childDep.length;j++){递归调用此接口,根据childDep[j]的ID获得该部门以该部门直接下级部门为根的部门树的部门树。}}将该部门和其直接下级部门为根的部门树的森林合并为一棵完整部门二叉树。举例说明:如图19所示图19部门结构图通过该接口获得以部门4为根的部门树。先获得以部门4的直接下级为根的部门树的森林,如图20所示。图20以部门4的直接下级为根的部门树的森林然后将部门4和他下级部门子树的森林合并成一棵以部门4为根节点部门二叉树,如图21所示。图21以部门4为根的部门二叉树4).获得用户所能管辖部门树接口根据用户ID获得该用户所能管辖的部门,使用该接口的用户类型为系统管理员和部门高级用户,系统管理员通过该接口获得管辖部门树为整个系统部门树。算法描述:int[]UserdepID;通过用户类接口获得该用户所属部门ID数组。for(inti=0;i<UserdepID.length;i++){调用部门类接口,根据用户所属部门ID获得以该部门为根节点的部门树。}如果用户所属于多个部门时,则将其所属部门的森林合并成一棵二叉树。举例说明:图22所示,获得部门高级用户1管辖部门树。图22用户所属部门示意图调用部门类根据部门ID获得部门树接口,根据用户所属部门ID获得以该部门为根节点的部门树的森林。如图23所示图23部门高级用户1管辖部门树森林然后将部门高级用户1所属部门树的森林合并成一棵部门二叉树,如图24所示。图24部门高级用户1管辖部门树5).获得操作用户能够添加用户到其它部门的部门树根据操作用户所属部门ID和添加用户所属部门ID获得能够添加到的部门树,保证添加用户所属的多个部门不在同一部门子树上。算法描述:mverUserDepID移动用户所属部门ID数组UserDepID操作用户所属部门ID数组for(intj=0;j<moveUserDepID.length;j++){if(UserDepID[i]!=moveUserDepID[j])判断移动用户所属部门ID与操作用户所属部门是否相等{若不相等,调用部门类根据部门ID(UserDepID[i])和添加用户所属部门ID获得以该部门为根节点的添加用户到其它部门子树.}然后将添加部门子树的森林合并为一棵部门二叉树。排除该二叉树上引起添加用户所属部门在同一棵部门子树上的部门。说明:根据部门ID和添加用户所属部门ID获得以该部门为根节点的添加用户到其它部门子树.该算法与本算法基本一致。不同点在于:当移动用户所属部门ID与调用部门类接口通过参数部门ID获得该部门的直接下级部门ID不等时,则递归调用自己。举例说明:以图22为例,部门高级用户1将普通用户1添加到其它部门。调用部门类接口获得以部门高级用户1,获得以部门高级用户所属部门为根节点的添加用户到其它部门的部门树,如图25所示。图25然后排除该二叉树上引起添加用户所属部门在同一棵部门子树上的部门,应排除部门2。如图26所示。图266).获得移动部门能够移动到的部门树根据操作用户所属部门ID和移动部门ID获得能够移动到的部门树。算法描述:int[]UserDepID;操作用户所属部门ID数组intmoveDepID;移动部门IDfor(inti=0;i<UserDepID.length;i++){if(UserDepID[i]!=moveDepID)判断用户所属部门ID与移动部门ID是否相等{若不等,则调用部门类的根据部门ID获得以该部门为根节点能够移动到的部门子树。}如果操作用户所属与多个部门,则将能够移动到的部门子树的森林合并为一棵部门二叉树说明:根据部门ID和移动部门ID获得以该部门为根节点的能够移动到的部门子树.该算法与本算法基本一致。不同点在于:当移动部门与调用部门类接口通过参数部门ID获得该部门的直接下级部门ID不等时,则递归调用自己。举例说明:如图22所示,部门高级用户1移动部门5.获得可移动到部门的部门树(如图27所示)图27部门5移动到部门的部门树7).获得合并部门能够合并到的部门树根据操作用户所属部门ID和合并部门ID获得能够合并到的部门树。算法描述:该算法与获得移动部门能够移动到的部门树的算法一样。只是比较用户所属部门ID与移动部门ID是否相等。举例说明:如图22所示,部门高级用户1合并部门8。获得可移动到部门的部门树(如图33所示)图28部门8合并到部门的部门树8).获得根部门到某部门的树结构根据部门ID获得根部门到该部门的树形结构。算法描述:VectordepObject;用于存放部门节点的向量。Departmentdep;通过该部门ID获得该部门对象。intsuper_dep_id=dep.getSuperID();获得该部门上级部门ID。while(super_dep_id!=-1)遍历到根部门时,退出循环。{Departmentsuper_dep;通过部门类接口根据上级部门ID获得该部门上级部门对象。depObject.add(super_dep); 将该对象反向存入向量depObject中。super_dep_id=super_dep.getSuperID();获得该部门上级部门ID。}然后,反向取出向量中节点,将各部门节点组成部门树。举例说明:如图22所示,获得部门5到根部门的树形结构。通过该接口执行过程为:先获得部门5到根部门的节点反向放入向量中(如图29所示)。图29将部门节点反向放入向量然后从向量中反向取出各节点,将各节点合并成一棵部门树(如图30所示)。图30将各节点合并为部门树2.3用户管理维护设计2.3.1.用户管理维护功能概述系统中的用户管理维护是基于部门结构对某部门的用户进行管理和维护(如图31所示),因此部门与用户之间的联系非常紧密。系统中用户根据不同类型分为:系统管理员,部门高级用户,普通用户三类;其中普通用户具有对设备维护的不同权限。系统中任何用户都必须所属于一个或多个部门;所属多个部门时,不允许多个部门所属于同一棵部门子树。图31部门用户结构图以用户5为例,用户5所属部门子树如图32所示。用户5的所属部门不在一棵部门子树上。图32用户5所属部门树当用户所属多个部门时,不允许出现以下这种情况,如图33所示。用户所属的多个部不允许在同一棵部门子树上。图33所属多个部门不能在同一棵部门子树上用户信息维护功能包括:用户登陆验证:用户登录系统时,验证该登录用户是否为系统合法用户。用户个人信息维护:修改用户的个人用户名和个人密码添加新用户到某部门:根据操作用户所能管辖部门,为该操作用户管辖部门中的某一部门添加新用户。按部门结构查看用户信息:根据操作用户所能管辖部门,查看该操作用户管辖部门中某一部门的所有用户。删除某部门用户:根据操作用户所能管辖部门,删除该操作用户管辖部门中某一部门的某个用户。修改某部门用户信息:根据操作用户所能管辖部门,修改该操作用户管辖部门中某一部门的某个用户。将某部门用户添加到其它部门:根据操作用户所能管辖部门,将该操作用户管辖部门中某一部门的某个用户添加到该操作用户所管辖的其它部门中;保证添加用户所属的多个部门不在同一部门子树上。其中添加新用户,删除用户,修改用户信息和将某部门用户添加到其它部门操作只限于系统管理员和部门高级用户。任何系统用户都能进行个人信息维护。2.3.2.用户管理维护的详细设计用户类详细设计根据用户管理维护功能的需求和用户信息的特点,将用户信息管理维护抽象为类。用户类主要负责维护管理系统用户信息,为该系统的用户信息管理维护和其它功能模块提供相应的接口。目的是为了保证用户能够安全,合法的使用系统。1).用户类属性设计:用户类属性用于记录系统用户的基本信息。用户ID:用户唯一标识(主索引)。表示与数据库中用户信息之间的联系。用户名:用户使用系统时的名称标识。用户密码:登录系统时所需的密码。保证用户合法的登陆和使用设备管理系统。用户类型:分为系统管理员,部门高级用户及普通用户。用以区分不同类型用户的操作权限。1>.系统管理员拥有系统最高权限,可对整个系统进行操作维护。包括:用户,部门,设备,日志信息的管理维护和系统的维护。2>.部门高级用户只能对其管辖部门的用户,部门和设备进行维护。部门高级用户的权限由系统管理员指定。3>.普通用户对所在部门设备具有一定的操作维护权限,只能查看所在部门的部门结构和进行个人信息维护。普通用户权限由其所在部门的高级用户指定。普通用户权限:用以区分普通用户对设备维护操作权限。权限0:查询,浏览.低权限1:查询,浏览,打印权限2:查询,浏览,修改权限3:查询,浏览,打印,修改权限4:查询,浏览,打印,修改,添加高所属部门ID:用户所属部门ID,表示用户与部门之间的联系。一个用户可属于多个部门;属于多个部门时,不允许多个部门在同一棵部门子树上。系统管理员只能属于系统部门树的根部门,不能属于其它部门。用户类属性列表属性名属性标识属性类型用户IDUserIDint用户名UserNameString用户密码UserPasswordString用户类型UserTypeint用户权限UserLevelint用户所属部门IDDepartmentIDInt[]用户类型权限列表用户类型UserType权限UserLevel名称表示操作说明表示系统管理员0系统管理员用户拥有系统最高权限,对整个系统系统进行维护(用户的管理维护,部门的管理维护,设备的管理维护,日志的管理维护,系统的备份/还原)。0部门高级用户1部门高级用户只能对其管辖部门和该部门的用户和设备进行维护。0普通用户2普通用户只能进行个人信息维护,查看所在部门的结构,可以查询,浏览该部门的设备信息0普通用户只能进行个人信息维护,查看所在部门的结构,可以查询,浏览,打印该部门的设备信息1普通用户只能进行个人信息维护,查看所在部门的结构,可以查询,浏览,修改该部门的设备信息2普通用户只能进行个人信息维护,查看所在部门的结构,可以查询,浏览,打印,修改该部门的设备信息3普通用户只能进行个人信息维护,查看所在部门的结构,可以查询,浏览,打印,修改,添加该部门的设备信息42).用户类功能接口设计用户类接口主要分为:用户信息维护接口和为其它功能模块提供的接口。用户信息维护接口是为了实现用户信息维护功能。为其它功能模块提供的接口是根据其它模块的需求提供相应的功能。用户类接口示意图(图34)图34用户信息维护接口:1>.用户登录验证接口:用户进入系统时验证该登录用户是否为系统合法用户,调用用户维护数据库操作类接口,检测登录用户在数据库中的用户信息标中是否存在。用户登陆系统时调用。2>.修改个人用户名接口:通过用户类对象修改该对象的用户名属性。用户个人信息维护时调用。3>.修改个人密码接口:通过用户类对象修改该对象的个人密码。用户个人信息维护时调用。4>.添加新用户接口:将添加新用户的用户类对象的基本信息写入数据库中。添加新用户时调用。5>.获得某部门所有用户接口:根据部门ID获得该部门的所有用户。根据部门结构查看用户时调用该接口。6>.删除部门用户接口:根据删除用户ID和该用户所属部门ID删除该部门用户,根据部门结构删除用户时调用。7>.修改部门用户信息接口:根据修改用户ID修改该用户对象的基本信息,调用用户信息更新接口更新该用户在数据库中的基本信息。修改用户信息时调用。8>.用户信息更新接口:调用用户维护数据库操作类接口,修改该对象在数据库中的基本信息。9>.添加用户到其它部门接口:根据添加用户ID和添加部门ID添加用户到该部门。添加用户到其它部门时调用。为其它功能模块提供的接口:1>.用户合法性验证接口:验证该用户是否是合法登录用户。系统中每个页面均调用该接口。2>.通过用户ID获得用户类对象接口:通过用户ID获得该用户类对象。验证用户类型和权限时调用。3>.设置用户基本信息接口:通过用户类对象设置该对象的基本信息。数据库层调用。4>.获得用户基本信息接口:通过用户类对象获得该对象的基本信息。查看用户基本信息时调用。用户类与用户维护数据库操作类之间的关系:如图35所示。图35用户类与用户维护数据库操作类之间的关系图2.4日志管理维护的设计2.4.1系统日志管理维护功能概述系统日志是用来记录系统中的用户在系统中进行了哪些操作。当出现问题时,系统管理员可以及时发现和处理。日志写入采用触发机制,当用户执行系统维护操作或对设备维护操作时,系统则自动写入日志。日志的操作类型分为系统操作和设备操作。系统维护操作包括对用户,部门的维护操作;设备维护操作包括对设备和设备属性的维护操作。操作如图36所示。系统日志记录信息包括:操作用户ID、操作用户所属部门ID、执行操作的时间、批准用户操作的部门ID(必需经上级批准,可跨级)、操作类型(设备操作和系统操作)、对设备的操作应记录操作设备ID和具体操作内容。图36日志触发机制示意图日志管理维护功能包括:按日期查询日志:查询某一时间段内的所有日志。按日志类型查询日志:根据日志类型查询该类型的所有日志。按设备ID查询日志:根据设备ID查询所有与该设备有关的操作日志。查看未经批准日志:查看不是该操作用户所在部门批准的所有日志。默认查询日志:查看该操作用户管辖部门的所有日志。按日期删除日志:删除某一时间段内的所有日志。按日志ID删除日志:根据日志ID删除该日志。日志信息查询只限系统管理员和部门高级用户,删除日志只限系统管理员。2.4.2.日志管理维护详细设计日志类详细设计根据日志管理维护功能的需求和日志信息的特点,将日志信息管理维护抽象为类。日志类主要负责维护管理系统日志信息,为该系统的日志信息管理维护和其它功能模块提供相应的接口。目的是为了保证系统使用的安全性。1).日志类属性设计日志类属性用于记录系统日志的基本信息。日志ID:日志唯一标识,为主索引。作为由数据库中日志信息的联系。操作时间:生成日志时间。用户ID:操作用户ID。所属部门ID:操作用户所属部门ID。批准部门ID:批准用户操作的部门ID。操作类型:操作用户所执行的操作的类型(1为设备操作,0为系统操作)。对部门和用户的操作为系统操作,对设备的操作为设备操作。设备ID:操作用户进行设备操作的设备ID。具体操作:用户所执行的具体操作内容。日志类属性列表属性名属性标识属性类型说明日志IDLogIDInt日志唯一标识,系统自动生成操作时间LogDatelong生成日志时间用户IDUserIDInt进行操作的用户ID所属部门IDAttachDepIDInt用户所属部门批准部门IDConfirmDepIDInt批准用户操作的部门ID操作类型OperationTypeInt0为系统操作,1为设备操作设备IDDeviceIDInt用户进行设备操作的设备ID;如果操作类型为0,则DeviceID为-1具体操作OperationString用户所执行的具体操作2).日志类接口设计日志类接口主要分为:日志信息维护接口和为其它功能模块提供的接口。日志信息维护接口是为了实现日志信息维护功能。为其它功能模块提供的接口是根据其它模块的需求提供相应的功能。如图37所示。图37日志类接口示意图日志维护接口按日期查询日志接口:根据查询日期查看操作用户所管辖部门日志操作日期在查询日期范围内的所有日志。按日期查询日志时调用。按操作类型查询日志接口:根据查询操作类型查看操作用户所管辖部门日志类型为查询操作类型的所有日志。按操作类型查询日志时调用。按设备ID查询日志接口:根据查询设备ID查看操作用户所管辖部门设备操作日志中操作设备ID为用户提交的设备ID的所有日志。查看未经批准日志接口:查看操作用户所管辖部门日志不是该用户所属部门批准的所有日志。默认查询接口:查看操作用户所管辖部门的所有部门日志。按日志ID删除日志接口:根据日志ID删除日志。按日期删除日志接口:删除日志操作日期在用户提交日期内的所有日志。为其它功能模块提供的接口保存日志接口:将日志类对象的基本信息保存在数据库中。对设备信息、部门、用户信息进行操作时都应调用该接口保存操作日志。获得最早日志日期接口:通过该接口获得库中日志的最早记录日志的日期。按日期查询日志时调用。设置日志基本信息接口:通过日志类对象设置该对象的基本信息。数据库层调用。获得日志基本信息接口:通过用户类对象获得该对象的基本信息。查看日志信息时调用。日志类与日志维护数据库操作类之间的接口调用如图38所示。图38日志类与日志维护数据库操作类之间的接口调用关系2.5系统维护的设计2.5.1.系统维护功能概述为了对系统进行初始化和增强系统的安全性,防止系统数据意外的被破坏或丢失,需要对系统进行备份。系统备份采用磁盘备份方式,将备份数据存放在服务器端的磁盘上。备份分为两种:对数据库数据的备份和对数据库日志的备份。系统备份只允许系统管理员进行操作,他可以对系统备份文件进行维护管理。可以删除不需要的文件或选择适当的文件进行系统恢复。系统维护功能包括:系统初始化:添加系统中部门树的根部门,初始化设备属性和设备信息表。(添加系统根部门可调用部门类接口实现,初始化设备属性和设备信息表可调用设别类和设备属性类相应的接口实现)系统备份:选择备份类型备份系统数据库中的文件,备份类型分为:数据库数据的备份和数据库日志的备份。按备份类型查看备份文件信息:选择备份文件类型查看备份文件信息。还原备份文件:选择的备份文件恢复系统数据库。删除备份文件:选择备份文件删除该文件。系统维护操作只限于系统管理员使用2.5.2.系统维护详细设计系统维护类详细设计根据系统维护功能的需求和备份文件信息的特点,将系统维护抽象为类。系统初始化功能可以调用部门类,设备类和设备属性类的接口实现,所以系统维护类不考虑系统初始化接口的设计与实现,而主要负责维护管理系统备份文件信息,为系统备份文件维护提供功能接口。目的是为了保证系统使用的安全性,可靠性。1).系统维护类属性设计系统维护类属性用于记录系统备份文件的基本信息。系统备份文件ID:备份文件ID唯一标识,为主索引。表示与数据库中备份文件信息的联系。生成备份文件时间:备份文件生成时间。备份文件逻辑名:备份文件的逻辑名。备份文件物理名:备份文件的物理名。系统备份文件类型:系统备份文件类型(0为数据库备份,1为日志备份)。系统维护类属性列表属性名属性标识属性类型说明系统备份文件IDBackupFileIDInt备份文件ID唯一标识,为主索引。生成备份文件时间BackupDateLong生成备份文件的时间。。备份文件逻辑名FileLogicalNameString备份文件的逻辑名。备份文件物理名FilePhisicalNameString备份文件的物理名。系统备份文件类型BackupTypeDString系统备份文件类型(0为数据库备份,1为日志备份)。2).系统维护类接口设计系统维护类接口是为了实现系统备份文件的管理和维护,系统数据库备份和还原功能和为系统维护数据库操作类提供接口。如图39所示。图39系统维护类接口示意图系统维护功能接口系统备份接口:根据系统维护类对象的备份文件类型备份系统数据库信息,包括日志备份和数据库备份。系统备份时调用该接口。系统还原接口:根据该对象的备份文件ID还原系统。系统还原时调用该接口。按备份文件类型查询备份文件接口:根据备份文件类型,获得该类型的所有备份文件。按操作类型查看备份文件时调用。删除备份文件接口:根据备份文件ID删除该备份文件。删除备份文件时调用该接口。为其它功能接口设置系统维护类对象基本信息接口:通过系统维护类对象设置该对象的基本信息。数据库层调用。获得系统维护类对象基本信息接口:通过系统维护类对象获得该对象的基本信息。查看备份文件信息时调用。获得系统维护类对象接口:通过备份文件ID获得该系统维护类对象。系统还原时调用该接口。系统维护类与系统维护数据库操作类之间的接口调用如图40所示。图40系统维护类与系统维护数据库操作类之间的接口调用关系3.设备管理系统的实现3.1部门管理维护模块的实现3.2.1查看部门信息功能实现通过部门类接口获得操作用户所管辖部门。普通用户只列出从根部门到用户所属部门的结构。系统管理员和部门高级用户则可以对其管辖部门进行部门维护操作。如果抛出异常,则将错误信息写入Session,然后重定向到error错误页面。如图41所示。图41查看部门信息页面该流程如图42所示。图42查看部门信息流程图3.2.2添加部门功能实现从查看部门信息页面获得添加部门的上级部门ID,列出需要填写的部门信息。填写后通过post方法将部门基本信息提交给添加部门处理页面。通过部门类构造函数构造出部门类对象,调用部门类添加部门接口,将该对象写入数据库中(不允许部门名称重复,如果重名则抛出异常)。如果抛出异常,则将错误信息写入Session,然后重定向到error错误页面。该流程如图43。图43添加部门流程3.2.3修改部门功能实现从查看部门信息页面获得要修改部门的ID,在修改部门信息页面修改部门基本信息,修改后通过post方法将的修改后的部门信息和部门ID提交给修改部门处理页面。调用部门类接口完成对部门的修改(不允许部门名称重复,如果重名则抛出异常),再调用部门类的接口,更新数据库中的该部门信息。如果抛出异常,则将错误信息写入Session,然后重定向到error错误页面。该流程如图44所示。图44修改部门流程图3.2.4删除部门功能实现从查看部门信息页面获得要删除部门的ID,通过部门类接口获得该部门类对象,调用部门类的删除部门接口将该对象从数据库中删除,如果抛出异常,则将错误信息写入Session,然后重定向到error错误页面。该流程如图45所示。图45删除部门流程3.2.5移动/合并部门功能实现合并部门与移动部门的流程和操作页面基本一致。从查看部门信息页面获得移动/合并部门的ID,通过部门类能够移动/合并到部门的部门树。如果抛出异常,则将错误信息写入Session,然后重定向到error错误页面。如果没有异常,则遍历该部门树,列出所有能移动/合并到的部门的信息(如图46所示)。操作用户选择要移动/合并到的部门,通过get方法将要移动/合并的部门ID和目的部门ID传给移动/合并部门处理页面。根据移动/合并部门ID和目的部门ID调用部门类的移动/合并部门接口,完成对部门的移动/合并操作。如果抛出异常,则将错误信息写入Session,然后重定向到error错误页面。图46所有能移动到的部门的信息该流程如图47所示。图47移动部门流程3.2用户管理维护模块的实现3.2.1用户个人信息维护功能实现用户个人信息维护包括:个人用户名修改和个人密码修改。用户名修改:在个人信息维护页面输入该用户的新用户名,提交给修改用户名处理页面处理。从Session中取出用户ID获得该用户类的对象,调用用户类接口(不允许用户名重复,如果重名则抛出异常)更新该用户在数据库中信息。如果抛出异常,则将错误信息写入Session,然后重定向到错误页面。用户密码修改:在个人信息维护页面输入该用户的原密码,新密码和确认码,提交给修改个人密码处理页面。从Session中取出用户ID获得该用户类对象,调用用户类接口修改该用户密码,然后更新该用户在数据库中信息。如果抛出异常,则将错误信息写入Session,然后重定向到error错误页面,将错误信息显示出来。个人信息维护流程,如图48示图48个人信息维护流程图3.2.2添加新用户功能实现系统管理员和部门高级用户为其管辖部门添加新用户。列出操作用户所管辖部门列表,从中选择添加新用户的所属部门,通过get方法将所选部门ID提交给填写新用户信息页面。如果不是系统管理员或部门高级用户,则不允许操作。该页面如图49示。图49选择添加用户所属部门页面填写新用户信息,填写后通过post方法将填写的新用户信息提交给添加用户处理页面,调用用户类接口将新用户添加到数据库中。该流程如图50所示。图50添加用户流程图3.2.3查看用户信息功能实现系统管理员和部门高级用户查看用户信息。根据操作用户所能查看的部门列出各部门用户列表(如图51所示),供操作用户进行查看和选择相应的操作(修改,删除,将该用户添加到其他部门),选择相应操纵后,通过get方法将被选用户ID提交给相应操作的页面(修改,删除,将该用户添加到其他部门的处理页面)。图51查看用户信息页面查看用户信息流程如图52所示。图52查看用户信息流程3.2.4修改用户信息功能实现系统管理员和部门高级用户修改用户信息。从查看用户信息页面获得修改用户ID和修改用户所在部门ID,根据操作用户类型,可以修改的用户权限和用户基本信息,通过post方法将修改的用户信息提交给用户信息修改处理页面。调用用户类接口完成对用户信息的修改(不允许用户名重复,如果重名则抛出异常)。如果抛出异常,则将错误信息写入Session,然后重定向到error错误页面。该流程如图53所示。图53修改用户信息流程3.2.5添加用户到其他部门功能实现系统管理员和部门高级用户可将管辖部门用户添加到其他部门调用部门类接口根据操作用户和添加用户所属部门ID列出所能添加到的部门(如图53),选择添加部门后,通过get方法将所选部门ID和需要添加用户ID提交给处理页面。调用用户类接口根据添加部门ID和添加用户的ID,将该用户添加到其他部门。如果抛出异常,则将错误信息写入Session,然后重定向到error错误页面。该流程如图54所示。图53列出能添加到的部门图54添加用户到其他部门流程3.2.6删除用户功能实现从查看用户信息页面获得要删除用户的ID和该用户所属部门ID,调用用户类接口将该用户从该部门删除。如果抛出异常,则将错误信息写入Session,然后重定向到error错误页面。该流程如图55所示。图55删除用户流程3.3日志管理维护模块的实现3.3.1日志查询功能实现列出所有查询日志方式:按日期查询,按日志类型查询,按设备ID查询,按未经批准日志查询,默认查询。用户选择后post到相应的查询页面。该流程如图56所示。图56查询日志流程3.3.2日志删除功能实现日志删除分为按日志ID删除和按日期删除。按日志ID删除:获得从查看日志页面(按日期查询日志,按设备ID查询日志,按日志类型查询日志,按未经批准查询日志,默认查询日志)通过get方法传删除日志ID,根据日志ID调用日志类的删除日志接口完成删除操作。如果抛出异常,则将错误信息写入Session,然后重定向到error错误页面。该流程如图57所示。图57按日志ID删除按日期删除日志:在选择删除日志日期页面选择要删除的日期(起始日期和终止日期)。选择后post到按日期删除日志页面,获得删除日期(起始日期和终止日期)。调用日志类接口删除从起始日期到终止日期的所有日志。如果抛出异常,则将错误信息写入Session,然后重定向到error错误页面。如图58所示。图58按日期删除日志流程3.4系统维护模块的实现3.4.1系统备份功能实现在填写备份文件信息页面选择备份类型,填写备份文件名称。通过post方法将备份文件基本信息传给系统备份处理页面。获得备份文件基本信息,通过系统维护类构造函数生成对象,调用该对象的系统备份接口,完成对系统的备份。如果抛出异常,则将错误信息写入Session,然后重定向到error错误页面。该流程如图59所示。图59系统备份流程3.4.2系统备份文件查看功能实现在选择查看备份文件类型页面选择查询类型。通过post方法将备份文件类型传给按备份文件类型查看备份文件页面,获得要查询备份文件类型。调用系统维护类接口通过备份文件类型获得该类型的所有备份文件。如果抛出异常,则将错误信息写入Session,然后重定向到error错误页面。该流程如图60。图60日志查看流程3.4.3删除备份文件功能实现从按备份文件类型查看备份文件页面获得删除备份文件ID,调用系统维护类接口根据备份文件ID删除该备份文件。如果抛出异常,则将错误信息写入Session,然后重定向到error错误页面。该流程如图61所示。图61删除备份文件流程3.4.4还原备份文件功能实现从按备份文件类型查看备份文件页面获得还原备份文件ID,通过系统维护类接口通过备份文件ID获得该系统维护类对象,调用该对象的系统还原接口,完成系统还原操作。如果抛出异常,则将错误信息写入Session,然后重定向到error错误页面。该流程如图62所示。图62还原备份文件流程4.总结4.1系统小结本系统实现了对设备管理的灵活性和安全性,提高了设备管理的工作效率。系统共分为六大模块:设备管理模块、用户管理模块、部门管理模块、日志管理模块、系统维护模块和查询模块。本文重点讨论了部门管理模块、用户管理模块、日志管理模块及系统维护模块。对部门管理采用二叉树结构,使部门间关系的表示更加有条理性,便于对部门结构的管理。用户管理基于部门结构,使用户与部门间关系更加清晰。并且提高了对用户权限的限制,保证了系统的安全使用。日志记录采用触发机制,记录用户在系统中的操作情况,使系统的使用更加安全。系统备份与还原保证系统的可恢复性。对于部门管理模块、用户管理模块、日志管理模块及系统维护模块功能的实现共使用了4个java类,110个接口,共七千余行代码。经过测试本系统功能基本达到了预期的要求,由此证明了解决问题思路的正确性。4.2系统不足用户管理维护中删除用户操作的不足:如果将一个所属于多个部门的用户从系统中删除,则需要在其所属部门中重复删除该用户。用户类型与权限管理维护的不足:系统中没有对用户类型和权限的维护管理,如果系统中增加一个类型或一个操作权限的用户,则需要修改相应功能模块的程序代码。获得部门树结构算法不足:像获得能够添加用户到其它部门的部门树、获得移动部门能够移动到的部门树、获得合并部门能够合并到的部门树这些接口的使用的算法都比较复杂,递归调用使用连接池比较频繁。当部门结构非常复杂时,对系统资源的占用率较高,速度较慢。可以优化该递归算法从而降低对连接池使用的频率,提高程序的执行效率。对未批准日志处理不足:当用户查看未批准日志时,应添加对未批准日志的批准操作。以达到对未批准操作的确认目的。4.3心得体会通过这次对设备管理系统的开发,我在大学所学到的知识得到了系统的整理与归纳。系统的开发过程实际是对所学知识检验过程,帮助我发现了自己的不足,觉得需要学习和提高的还很多。在系统开发过程中,我懂得了细致的需求分析对软件开发的重要性,并且对B/S模式的系统结构和层次关系有了深入的了解,对Java程序设计语言中Servlet技术的应用与开发有了深入的认识与了解。并体会到了系统开发中团队合作精神和成员间沟通交流的重要性。致谢首先我要感谢在系统开发中给予我的指导和帮助我的指导老师,同时感谢本组共同工作的同学对于我的帮助和鼓励,感谢信息工程学院为我们毕业设计提供的优越的工作环境,还要感谢在毕业设计中为我们提供帮助与支持的老师,感谢他们对我们的帮助与支持。参考文献JavaServlet开发与实例电子工业出版社[美]JamesGoodwill等著邢国庆等译2001年08月01日,ISBN:7-5053-6969-5深入JavaServlet网络编程清华大学出版社陈海山主编2001年10月01日出版,ISBN:7-5606-1061-7Java2编程指南(JDK1.3版)电子工业出版社[美]IvorHorton著马树奇孙坦等译2001年11月01出版,ISBN:7-5053-7106-1数据结构与算法分析(Java版)电子工业出版社[美]CliffordA.Shaffer著张铭刘晓丹译2001年2月第1版,ISBN7-5053-6497-9JavaScript网页特效编程百宝箱清华大学出版社张宝亮编著2001年6月第1版,ISBN7-900635-57-2JavaServlet(Java版)中国电力出版社[美]JasonHunter,WilliamCrawford著孙鑫谢茂强译2002年6月1日出版,ISBN7-5083-0844-1JavaServlets2.3编程指南清华大学出版社[美]JohnBellTonyLoton著马树奇等译2002年7月1日出版,ISBN7-5053-7738-8JavaServlet开发人员指南清华大学出版社[美]KarlMoss著袁勤勇张玉魁译2002年6月1日出版,ISBN7-302-06220-XJAVASCRIPT技术大全机械工业出版社[美]R.AllenWyke著闻道工作室译2001年6月1日出版,ISBN7-111-08911-1附录:(类的函数清单)1.用户类(User)User(){}/**不带参数的构造函数User(java.lang.Stringname,java.lang.Stringpassword,inttype,intlevel,intdepartmentID){}/**带参数的构造函数*@paramname用户名*@parampassword用户密码*@paramtype用户类型*@paramlevel用户权限*@paramdepartmentID所属部门ID3>.publicintgetUserID(){}/**获得用户ID*@return用户ID4>.publicStringgetUserName(){}/**获得用户密码*@return用户密码5>.publicStringgetUserPassword()/**获得用户密码*@return用户密码6>.publicintgetUserType(){}/**获得用户类型*@return用户类型7>.publicintgetUserLevel(){}/**获得用户权限*@retu
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 慢性病预防知识
- 八年级上册《分式方程》课件与练习
- 英语 第四册(五年制高职)5教学实施建议 Unit5 Quality Assurance
- 建构主义视角下高中英语多媒体辅助教学研究
- 2025届陕西省西安市部分学校高三下学期第二次模拟联考历史试题(含解析)
- 【山东卷】山东省烟台市、德州市、东营市2025年高考诊断性测试(烟台德州东营一模)(3.3-3.5)历史试卷
- 自然拼读法在小学高年级英语词汇教学中的应用研究
- 政教处工作总结5
- 完整的2024年CFA考试试题及答案
- 2024年CFA学习计划试题及答案
- 山东省技能大赛青岛选拔赛-世赛选拔项目52技术文件(平面设计技术)
- 心理咨询保密协议(2024版)
- 土地整治项目工程复核工作流程
- 2024年民航安全知识培训考试题库及答案(核心题)
- 水文资料在线整编规范
- (高清版)JTGT 3360-02-2020 公路桥梁抗撞设计规范
- 2024届高考语言运用之比较赏析句子的表达效果+
- GB/T 43933-2024金属矿土地复垦与生态修复技术规范
- 施工现场动火作业安全(旁站记录)
- 《化妆品技术》课件-粉类修容遮瑕产品
- 工程变更通知单ECN模板-20220213
评论
0/150
提交评论