




已阅读5页,还剩36页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
SMART系统系统功能管理模块设计与开发论文作者姓名申请学位专业申请学位类别指导教师姓名(职称)论文提交日期SMART系统系统功能管理模块设计与开发摘要SMART系统是一个在语言上采用跨平台的JAVA技术、在框架架构上采用流行的MVC架构、在业务架构中采用SPRING的IOC思想和ORM技术的一个新型智能在线考试信息管理系统,该系统主要实现了学生在线考试与评估以及教师对学生在线考试信息的管理和维护。本文设计的系统管理功能模块采用了多用户多角色管理机制,确保不同的用户登录系统后能够操作属于自己权限范围内的功能。系统功能管理模块主要由用户管理子模块、角色管理子模块、角色设置管理子模块、权限管理子模块、系统菜单管理子模块、日志管理子模块和用户登录验证子模块构成。通过对系统功能的各种设置,实现对系统各级用户的角色设置和角色分配,限制和记录各级用户在系统中的对信息的功能操作,体现了系统权限设置的灵活性、数据操作的安全性。关键词用户;角色;权限;多用户多角色管理SMARTSYSTEMTHEDESIGNANDDEVELOPMENTOFFUNCTIONMANAGEMENTMODULEABSTRACTSMARTSYSTEMISANEWINTELLIGENTINFORMATIONMANAGEMENTSYSTEMOFONLINEEXAMINEITUSESTHEJAVATECHNOLOGYINLANGUAGE,USESTHEMVCINFRAMEWORK,ANDUSESTHEIOCANTILOGYOFSPRINGANDORMTECHNOLOGYINITSOPERATIONFRAMEWORKTHESYSTEMMAINLYIMPLEMENTSTHEONLINEEXAMINATIONANDEVALUATIONOFSTUDENTS,ANDTHETEACHERSMANAGEMENTANDMAINTENANCEOFSTUDENTSEXAMINATIONINFORMATIONONLINEASWELLTHESYSTEMUSESMULTIPLEXUSERSANDROLESMANAGEMENTMECHANISMAFTERTHEUSERSLOGON,THEYCANUSETHEFUNCTIONSTHEYOWNEDTHEMANAGEMENTFUNCTIONMODULEOFSYSTEMINCLUDESUSERSMANAGEMENT,ROLEMANAGEMENT,ROLESETUPMANAGEMENT,RIGHTMANAGEMENT,SYSTEMMENUMANAGEMENT,LOGMANAGEMENTANDTHEVALIDATIONOFTHEUSERSLOGONMANAGEMENTTHROUGHTHESECONFIGURATIONOFSYSTEMFUNCTIONS,THESYSTEMCARRIESOUTTHEROLEINTERCALATIONANDDISTRIBUTIONOFTHEALLUSERS,RESTRICTSANDRECORDSTHEINFORMATIONOFALLUSERSHOWTHEYUSEDINTHESYSTEMTHESECANMAKETHESYSTEMRIGHTCONFIGURATIONFLEXIBLE,ANDTHEDATAOPERATIONSSECURITYKEYWORDSTHEUSERSTHEROLERIGHTMULTIPLEXUSERSANDROLESMANAGEMENT目录论文总页数36页1引言111背景112目的113意义114系统开发的主要技术115系统开发环境22系统功能需求和总体设计321B/S构架322系统流程框架设计323系统功能需求分析与设计7231登录验证7232用户管理8233角色管理9234角色设置管理9235权限设置管理10236日志管理11237菜单权限控制123数据库设计与构架1231数据库设计1232数据库表设计13321用户表13322用户控制表15323角色表15324用户角色表16325任务表16326角色任务表17327日志表17328模块表17329公共CODE表183210试卷日志记录表1933数据库数据字典194系统模块实现1941登录验证19411登录流程图19412代码实现2042用户管理22421用户界面22422代码实现2243角色管理23431用户界面23432代码实现2444角色设置管理24441用户界面和流程图24442代码实现2545权限设置管理26451用户界面和流程图26452代码实现2646日志管理27461用户界面27462代码实现2847菜单权限控制28471用户界面和流程图28472代码实现295结果测试、性能分析3051单元测试3052系统功能测试30521系统菜单权限功能测试30522系统功能权限测试31结论33参考文献34致谢35声明361引言11背景随着高新技术的迅猛发展,信息技术广泛应用,将传统的教育产业信息化成为可能。但是目前学校与社会上的各种考试大都采用传统的考试方式,组织一次考试至少要经过五个步骤,即人工出题、考生考试、人工阅卷、成绩评估和试卷分析。显然,随着考试类型的不断增加及考试要求的不断提高,教师的工作量将会越来越大,并且其工作将是一件十分烦琐和非常容易出错的事情,可以说传统的考试方式已经不能适应现代考试的需要。所以拥有一套实用、完善、高效的在线考试评估系统越来越显的重要,能够将通过权限控制,将不同教师和学生登录后能够看到不同的功能界面,这样能更好的方便学校对教学质量的管理,降低成本,提高效率。12目的通过对用户权限的控制,让不同的用户登录系统后能够看到不同的功能,以提高用户对管理对象的方便性和高效性。13意义系统功能管理模块是现在管理系统软件中很重要的一环,很多国内较出名的软件厂商都设计了较完善的也具有自己特色的系统功能管理模块权限管理模块,但对于很多没那么规范的软件商,他们经常是接到系统,就设计一套系统功能管理模块,每套都不同,有的甚至不够重视,随便写上一段,哪里都拷过去用;有的也曾费尽心机,但结果总不能令自己满意。其实仔细想一下,每套软件的系统功能管理模块权限管理模块虽然各不相同,但其实所需实现的系统管理功能都是差不多的。权限管理是管理软件中可代码重用性最高的一个模块,也是重复开发率最高的一个模块。做一个最通用的系统功能管理模块权限管理模块,支持尽可能多的数据库后台,尽最大可能方便软件开发人员的二次开发和最终用户使用,当然,还要保证权限管理技术的先进性,即注重灵活性的安全性。14系统开发的主要技术此系统采用了流行的J2EE技术,具体包括了SPRING、HIBERNATE、STRUTS、JSP、AJAX、数据库连接池等技术。以下是对所开发系统所采用的技术的说明,为系统提供一定的技术支持。J2EEJ2EE平台是用于在分布式企业环境中开发、部署和执行应用程序的体系结构。分布式应用程序需要系统级服务,如事务管理、安全性、客户端连接池数据库访问。SPRINGSPRING是一个开源框架,是为了解决企业应用程序开发复杂性而创建的。框架的主要优势之一就是其分层架构,分层架构允许您选择使用哪一个组件,同时为J2EE应用程序开发提供集成的框架。HIBERNATEHIBERNATE是一个开放源代码的对象关系映射框架,它对JDBC进行了非常轻量级的对象封装,使得JAVA程序员可以随心所欲的使用对象编程思维来操纵数据库。HIBERNATE可以应用在任何使用JDBC的场合,既可以在JAVA的客户端程序实用,也可以在SERVLET/JSP的WEB应用中使用,最具革命意义的是,HIBERNATE可以在应用EJB的J2EE架构中取代CMP,完成数据持久化的重任。STRUTSSTRUTS就是在JSPMODEL2的基础实现了MVC设计模式的WEBFRAMEWORK。基于STRUTS构架的WEB应用程序基本上符合JSPMODEL2的设计标准,可以说是MVC设计模式的一种变化类型。AJAXAJAX全称为“ASYNCHRONOUSJAVASCRIPTANDXML”(异步JAVASCRIPT和XML),是指一种创建交互式网页应用的网页开发技术。AJAX技术主要是由XHTML、CSS、DOM、JAVASCRIPT、XML、XMLHTTPREQUEST结合的一种技术,与传统的WEB开发不同,AJAX并不是以一种基于静态页面的方式来看待WEB应用的。15系统开发环境本系统开发的IDE工具是ECLIPSE以及相关的插件如TOMCAT插件,开发服务器采用的是TOMCAT,在数据存储器方面采用的是MICROSOFTSQLSERVER2000,采用的开发语言是JAVA,在数据库设计方面使用的是ERSTUDIO工具,在版本控制方面使用CVS控制。ECLIPSEECLIPSE是一个开放源代码的、基于JAVA的可扩展开发平台。它只是一个框架和一组服务,用于通过插件组件构建开发环境,ECLIPSE附带了一个标准的插件集,包括JAVA开发工具(JAVADEVELOPMENTTOOLS,JDT)。ECLIPSE的目标不仅当作JAVAIDE来使用,只要给ECLIPSE提供插件,以及给用户提供一致和统一的集成开发环境而言,所有工具开发人员都具有同等的发挥场所。TOMCATTOMCAT是一个免费的开源的SERLVET容器,它是APACHE基金会的JAKARTA项目中的一个核心项目,由APACHE,SUN和其它一些公司及个人共同开发而成。2系统功能需求和总体设计21B/S构架随着INTERNET的发展,采用BROWSER/SERVER模式的系统主要利用INTERNET技术和产品来构筑内部的INTERNET网络,即所谓的INTRANET网络,B/S模式已经成为了企业信息系统建设的首选。B/S模式使用方便,客户端统一采用浏览器,不限制客户平台,可以方便的和其他业务系统连接。其三层3TIER结构(图21B/S三层结构),大大减缓了客户端载荷,减轻了系统维护与升级的成本和工作量,降低了用户的总体成本。它能有效地保护数据平台和管理访问权限,服务器数据也很安全。SMART在线考试系统是为处在不同地点的不同用户提供网上数据操作服务的。使用B/S模式是一次性到位的开发,能实现不同的人员,从不同的地点,以不同的接入方式访问和操作共同的数据库;它能有效地保护数据平台和管理用户的访问权限,服务器数据也更安全。特别是在采用JAVA这样的跨平台语言开发后,B/S构架管理软件更方便、快捷、高效。图21B/S三层结构22系统流程框架设计SMART系统系统功能管理设计与开发主要是对系统中的功能模块进行权限控制和管理。本系统主要设计到三个对象,用户、角色、任务(系统中的功能模块)。其中用户主要有两种类型教师用户、学生用户。我们将系统中的任务分配给各个角色对象,然后将用户加入这些角色对象里面,从而来控制用户在系统的权限。该系统主要由登录验证、用户管理、角色管理、角色设置管理、权限设置管理、日志管理、菜单权限控制7个模块构成。系统的总体设计框架如图22图22系统总体设计框架流程图登录验证模块登录验证主要是包括对用户信息的合法信息验证和对合法用户的权限加载,这个模块作为系统其它模块功能的前提。流程设计图如图23登录验证模块流程图加载功能模块加载功能模块也就是菜单权限管理模块,只有一个合法用户第一登录成功后或者是用户刷新SESSION的时候,系统才会加载该部分。系统加载这部分要根据登录用户的权限范围来加载用户相应的系统功能。其功能模块流程图如图24图24加载功能模块流程图用户管理模块该模块管理的对象主要是用户对象,当前系统中包含两种用户对象教师用户和学生用户。该模块要实现的功能包括新增用户、更新用户、删除用户、用户密码修改、用户激活、用户搜索、学生用户升学调整。用户管理模块功能框架图如图图25用户管理模块功能图角色管理和用户角色管理模块其中角色管理模块主要负责对角色的管理和维护,包含对角色增加、角色更新、角色删除、角色搜索功能,他为用户角色管理提供管理对象之一(如图27);用户角色管理对象主要是对用户和角色用户之间建立一种联系关系,并通过这种关系以及权限设置模块中的角色和任务之间的关系一起来实现用户在系统的权限管理,用户角色管理模块包括搜索和用户角色设置两个功能(如图26)。图26角色管理功能模块流程图图27用户角色设计模块功能图权限设置模块权限管理模块主要管理的对象有任务对象以及角色对象,他将系统的任务功能与角色对象建立一种关系,在结合用户角色管理模块的角色和用户对象建立的用户角色关系一起完成对系统的用户功能权限管理设置。如图28图28权限设置模块流程图日志管理模块日志管理模块由两部分日志对象组成,系统日志管理(主要是指系统中表对象操作日志管理)和试卷日志管理(学生用户和教师用户对试卷的操作日志记录管理)。如图29日志管理模块功能图图29日志管理模块功能图23系统功能需求分析与设计通过以上系统流程设计,各模块实现了以下的功能231登录验证功能需求用户通过输入正确的信息,通过登录验证后,用户应从数据库中获取他在系统中所具有的操作权限,以致在用户登录后能够看到其在所具有权限范围内的功能模块。模块划分用户登录用户登录系统,为用户获取权限操作,并更新用户信息。SESSION维护维护用户登录系统的会话时间。用户注销用户登出系统,清空用户在SESSION中的信息,结束用户会话,并更新用户信息。应用场景用户进入到登录页面,需要输入相应的用户信息,登录系统后,用户才能够执行相应功能的操作;当系统修改该用户的登录信息后,则需要再次输入正确的认证信息或者从新刷新SESSION后才能访问到相信系统功能,同时,当用户注销系统时,也从SESSION中清空相应的会话信息。技术方案在本系统中是通过FILTER的方式来实现其登录验证功能的,其结构图如下图210FILTER过滤流程图232用户管理功能需求系统用户主要包括两种,教师用户和学生用户。教师用户又分为四种不同的用户,如省级教师用户、市级教师用户、区县级教师用户、学校级教师用户,并且他们在系统的权限都不相同,系统应提供对这些用户的区别以及权限控制。如果登录用户具有足够的权限的话,可以对这些用户进行控制管理。用户管理需实现对这些用户的参数匹配搜索和管理,对用户的管理主要要求实现对这些用户的添加、更新、删除和对新加用户的激活等相关功能。模块划分搜索功能系统管理员可以通过参数匹配来搜索当前系统的用户,将输入的某些参数作为模糊查询的方式来搜索,并将所查询出来的结果以一种统计的列表方式展现出来。新增功能系统管理员可以直接向数据库增加一个新的用户。更新功能如果用户具有相应的权限,则对自己或其他用户的资料进行更新。删除功能如果用户具有相应的权限,则对自己或其他用户的资料进行删除。用户角色设置功能用户可以在编辑其信息时,可以对用户的角色相关联,因为这些角色与系统的功能相关联的,所有当用户对其所属角色进行关联时,该用户的权限也在发生改变。强制用户注销系统管理员可以对当前系统已经登录的用户进行强制性的注销。应用场景登录用户如果有以上功能的权限,则该用户可以根据匹配条件搜索,并可以对搜索出的用户进行更新、删除已经对某些用户的所属角色进行更新。同时也可以向系统添加新的用户,如果所更新的用户已经登录进了系统,我们还可以将其强制注销。技术方案由于系统用户主要分为两大类,并且这些用户中教师和学生的用户量比例比较大,教师用户和学生用户的权限设定丰富程度相差也比较大,所以在实现用户管理的时候,将用户管理分成两个模块来对其进行相应的管理,这样在权限控制和用户管理上比较容易实现和控制。233角色管理功能需求系统为用户提供不同功能权限的角色对象,用户拥有的功能是由用户拥有的角色对象来确定,一个用户可以拥有多个角色对象,用户的功能是由这多个角色对象的并集。系统存在多种用户,而这些用户拥有对系统不同的功能权限就是由他所属的角色对象不同确定的。该功能主要为系统管理员提供来管理用户在系统中所具有的权限功能,来为这些用户分配他们的权限范围,保证系统的安全。模块划分角色搜索用户可以通过该功能搜索本系统所具有的角色,该功能提供了模糊匹配搜索的搜索功能。角色管理通过搜索功能可以搜索出本系统的所有角色,如果权限足够还可以更改这些角色,可以执行以下操作,添加角色、删除角色、编辑角色。应用场景系统管理登录系统后,可以通过以上提供的功能来删除、编辑、添加角色。技术方案角色的管理主要采用比较传统方式来实现。234角色设置管理功能需求该功能主要为系统管理员提供来管理用户在系统中所具有的权限功能,来为这些用户分配他们的权限范围,保证系统的安全。模块划分搜索功能该功能主要是搜索当前系统中所具有的角色或用户,主要为角色设置管理提供管理的对象。角色设置管理管理员通过搜索功能可以搜索出需要进行管理设置的对象,然后对在这些对象上面进行角色对象的添加、删除来为他们设置不同的权限范围。应用场景系统管理员登录系统后,便可以对用户的权限进行管理设置,为这些用户分配他们所属于的角色对象。技术方案角色设置就是对某一个用户进行角色分配,由于用户和角色的对应关系是一对多,而角色和用户的关系也可以是一对多的关系,所以在用户角色设置的时候采用AJAX来对用户和角色设置的数据信息进行提交。设计界面如表21表21用户角色设置设计界面UIN用户名角色1角色2角色3UIN1用户1YYUIN2用户2YY其中用户和角色对应的交叉值“Y”和“”,其中“Y”表示对应的用户具有该角色,而“”却表示相反,没有该角色的意思。而要改变这个值,只需要在原有值的基础上点击便可,而在改变值的过程中通过AJAX来与后台进行交付。235权限设置管理功能需求系统的每一个功能我们都把叫做是一个任务TASK并为它分配一个唯一CODETASKCODE,系统的不同角色包含了不同的任务,我们为每一个角色设置其包含的任务,这样用户的权限范围就由用户所属的角色确定了,而角色由角色所属的任务确定。我们这样通过设置角色和任务的关联已经用户和角色的管理来实现权限的管理。模块划分搜索功能该功能提供了模糊匹配搜索功能,搜索的对象主要包括两个,角色和任务。权限设置通过以上的搜索功能的搜索结果来对其进行设置管理操作,通过对任务的角色对象的添加删除来实现其权限设置。应用场景管理员登录系统之后,便可以用该功能来对任务和角色之间的管理进行设置,通过对任务所属角色的添加删除来实现对权限的控制。技术方案权限设置就是对某一个角色进行任务(系统中的每一个功能就叫做一个任务)分配,由于任务和角色的对应关系是一对多,而角色和任务的关系也可以是一对多的关系,所以在权限设置的时候采用表格的方式来进行,并AJAX来对任务和角色设置的数据信息进行提交的时候进行处理。设计界面如表22表22权限设置设计界面角色名称角色1角色2角色3角色4任务1YY任务2YYY其中用户和角色对应的交叉值“Y”和“”,其中“Y”表示对应的角色包含该任务,而“”却表示相反,不包含该任务的意思。而要改变这个值,只需要在原有值的基础上点击便可,而在改变值的过程中通过AJAX来与后台进行交付。236日志管理功能需求日志管理由两部分日志对象组成,系统日志(主要是指系统中表对象操作日志管理)和试卷日志管理(学生用户和教师用户对试卷的操作日志记录管理)。系统日志是记录了用户对系统表的几乎所有操作,可以通过日志来查看过去用户对该系统进行了什么样的操作,也可以通过日志来恢复一些历史数据;试卷日志管理主要用来查看用户过去对试卷的一些操作。模块划分搜索功能可以通过匹配参数对用户过去对系统的一些操作进行查询搜索,提供了对某些输入参数的模糊匹配搜索。日志管理用户可以根据对搜索出的历史记录进行查看,以及对那些历史操作记录进行删除。应用场景用户登录系统之后,如果具有日志管理的权限,那么用户可以搜索任何用户过去对系统的一些操作并通过这系历史数据,可以找回一些丢失的东西。也可以对这些历史性的操作记录进行删除,也可以统计查看用户过去对试卷的操作情况。技术方案这两种日志的产生并不相同,所以对他们的管理方式分成两个模块来完成,系统日志是系统对数据库表的操作所产生生成的,这种日志数据比较复杂并且大多数据没有什么意义;而另外一种是试卷日志,这中日志是为用户操作试卷特意做,可以用这种数据来对用户对试卷的操作进行统计分析,这中数据比较重要。所以本系统对日志的管理分成了两个相对独立的模块进行实现的。237菜单权限控制功能需求要求不同的用户登录系统后,应该根据他们在系统中所具有的权限来进行相应的功能操作,并且要求用户如果在系统中不应该看到不在自己权限范围内的功能模块。模块划分菜单管理通过用户登录系统的权限来生成在该权限范围内的菜单结构。应用场景用户在登录系统后,看到的系统功能模块表示他都有权对其进行操作,而他无权管理的功能部分则根本看不到。技术方案主要通过J2EE中的自定义标签来实现该功能,因为这样实现不仅安全性高,而且扩展性和使用性也较好。3数据库设计与构架31数据库设计数据库是借助于计算机保存和管理大量复杂的数据和信息的软件工具,数据库技术主要研究如何科学地组织和存储数据,如何高效地获取、更新和加工处理数据,并保证数据的安全性、可靠性和持久性。它的最大优点在于使用了非过程化的数据操作语言,具有很好的形式基础和高度的数据独立性。本系统选用关系型数据库SQLSERVER2000。具有使用方便、可伸缩性好、与相关软件集成程度高等优点。通常在MICROSOFTWINDOWS2000SERVER服务器版上使用。数据库ER设计图结构如下图31系统数据库结构图32数据库表设计321用户表教师用户表教师用户表主要存储的信息是教师用户以及学校领导之类用户的信息表31教师用户表SMART_TEACHER数据结构字段名称数据类型是否是主键是否是外键是否可NULL备注TEACHER_IDDECIMAIL18,0YESNONO自增IDTEACHER_NOVARCHAR50NONONO教师NOTYPEVARCHAR20NONONO类型UINVARCHAR20NONONOUINTEACHER_NAMEVARCHAR50NONONO教师姓名PROVINCE_NOVARCHAR50NONOYES省CITY_NOVARCHAR50NONOYES市OUNTY_NOVARCHAR50NONOYES区/县REF_SCHOOL_NOVARCHAR50NONOYES学校GRADE_NOVARCHAR50NONOYES年级CLASS_NOVARCHAR50NONOYES班级TEACHER_SUBJECTVARCHAR50NONOYES所教课程TELVARCHAR20NONOYES联系电话E_MAILVARCHAR50NONOYESEMAIL地址ADDRESSVARCHAR100NONOYES地址信息RECORD_NUMBERINTEGERNONONO版本控制REMARKVARCHAR100NONOYES备注学生用户表学生用户表主要存储的信息是学生用户信息。表32学生用户表SMART_STUDENT数据结构字段名称数据类型是否是主键是否是外键是否可NULL备注STUDENT_IDDECIMAIL18,0YESNONO自增IDSTUDENT_NOVARCHAR50NONONO学生NOUINVARCHAR20NONONOUINSTUDENT_NAMEVARCHAR50NONONO学生姓名PROVINCE_NOVARCHAR50NONOYES省CITY_NOVARCHAR50NONOYES市COUNTY_NOVARCHAR50NONOYES区/县REF_SCHOOL_NOVARCHAR50NONOYES学校REF_GRADE_NOVARCHAR50NONOYES年级REF_CLASS_NOVARCHAR50NONOYES班级REGISTER_IDBIGINTNONOYES注册时的用户IDTELVARCHAR20NONOYES联系电话E_MAILVARCHAR50NONOYESE_MAIL地址ADDRESSVARCHAR100NONOYES地址信息REGISTER_DATEDATETIMENONOYES注册时间RECORD_NUMBERINTEGERNONONO版本控制REMARKVARCHAR100NONOYES备注322用户控制表该表主要用来索引教师用户和学生用户的用户ID表33用户控制表PCM_USER数据结构字段名称数据类型是否是主键是否是外键是否可NULL备注AUTO_IDDECIMAIL18,0YESNONO自增IDUSER_IDDECIMAIL18,0NONONO用户IDTYPEVARCHAR20NONONO用户类型PASSVARCHAR50NONONO密码ACTIVATED_TIMEDATETIMENONOYES激活时间LOCKED_INDICATORINTEGERNONONO是否被锁IS_LOGINVARCHAR2NONOYES是否登录是登录状态DEACTIVATED_DATEDATETIMENONOYES解除用户日期CREATED_BYDECIMAIL18,0NONOYES被哪个用户创建LAST_LOGIN_IN_TIMEDATETIMENONOYES最后一次登录时间LAST_UPDATE_TIMEDATETIMENONOYES最后一次更新时间LAST_UPDATED_BYDECIMAL18,0NONOYES最后一次更新用户IDLAST_LOGIN_OUT_TIMEDATETIMENONOYES最后一次注销时间PWD_CHANGED_DATEDATETIMENONOYES密码更改时间PWD_RESETD_DATEDATETIMENONOYES密码重置时间RECORD_NUMBERINTEGERNONONO版本控制323角色表表34角色表PCM_USER数据结构字段名称数据类型是否是主键是否是外键是否可NULL备注ROLE_IDDECIMAL18,0YESNONO角色IDROLE_NAMEVARCHAR50NONONO角色名称ROLE_ABBREVIATIONVARCHAR20NONONO角色名称简写ROLE_DESCRIPTIONVARCHAR100NONOYES角色描述CREATED_BYDECIMAL18,0NONOYES角色创建者CREATED_TIMEDATETITMENONOYES创建角色的时间LAST_UPDATE_BYDECIMAL18,0NONOYES最后一个更新的用户IDLAST_UPDATE_TIMEDATETIMENONOYES最后更新的时间RECORD_NUMBERINTEGERNONONO版本控制324用户角色表该表主要用户存储用户和角色之间的关系。表35用户角色表PCM_USER_ROLE数据结构字段名称数据类型是否是主键是否是外键是否可NULL备注ROLE_IDDECIMAL18,0YESYESNO角色IDUSER_IDDECIMAL18,0YESYESNO用户IDCREATED_BYDECIMAL18,0NONOYES被哪个用户创建CREATED_TIMEDATETIMENONOYES创建时间LAST_UPDATE_BYDECIMAL18,0NONOYES最后一次更新用户IDLAST_UPDATE_TIMEDATETIMENONOYES最后一次更新时间RECORD_NUMBDERINTEGERNONONO版本控制325任务表表36任务表PCM_TASK数据结构字段名称数据类型是否是主键是否是外键是否可NULL备注TASK_IDDECIMAIL18,0YESNONO任务IDTASK_CODEVARCHAR20NONOYES任务CODETASK_NAMEVARCHAR50NONOYES任务名称CREATED_TIMEDATETIMENONOYES创建时间CREATED_BYDECIMAIL18,0NONOYES被哪个用户创建LAST_UPDATE_BYDECIMAIL18,0NONOYES最后更新用户LAST_UPDATE_TIMEDATETIMENONOYES最后更新时间RECORD_NUMBERINTEGERNONONO版本控制326角色任务表该表主要用来存储角色和任务之间的关系。表37角色任务表PCM_ROLE_TASK数据结构字段名称数据类型是否是主键是否是外键是否可NULL备注ROLE_IDDECIMAIL18,0YESYESNO角色IDTASK_IDDECIMAIL18,0YESYESNO任务IDCREATED_TIMEDATETIMENONOYES创建时间CREATED_BYDECIMAIL18,0NONOYES被哪个用户创建LAST_UPDATE_BYDECIMAIL18,0NONOYES最后更新用户LAST_UPDATE_TIMEDATETIMENONOYES最后更新时间RECORD_NUMBERINTEGERNONONO版本控制327日志表该表主要存储系统对数据库表的操作历史情况。表38日志表AUDIT_LOG数据结构字段名称数据类型是否是主键是否是外键是否可NULL备注AUDIT_IDDECIMAL18,0YESNONO日志IDUSER_IDDECIMAL18,0NONOYES用户IDTASK_CODEVARCHAR50NONOYES任务CODETASK_REMARKSVARCHAR255NONOYES任务描述TABLE_ACTIONVARCHAR20NONOYES表动作TABLE_NAMEVARCHAR50NONOYES表名称CREATED_DATEDATETIMENONOYES创建时间NEW_DATAVARCHAR100NONOYES新数据RECORD_NUMBERINTEGERNONONO版本控制328模块表模块表主要存储系统的功能模块,以及功能模块之间的父子管理。表39模块表MODULE数据结构字段名称数据类型是否是主键是否是外键是否可NULL备注AUTO_IDDECIMAL18,0YESNONO自增IDMODULE_IDDECIMAL18,0NONONO模块IDMODULE_CODEVARCHAR50NONONO模块CODEMODULE_NAMEVARCHAR50NONONO模块名称PARSENT_IDDECIMAL18,0NONONO父IDIS_VALIDATEINTEGERNONONO是否有效DESCRIPTIONVARCHAR100NONOYES描述子模块表该表用来存储系统中的每一个功能的CODE代码以及他们父子模块之间的关系。表310子模块表SUB_MODULE数据结构字段名称数据类型是否是主键是否是外键是否可NULL备注AUTO_IDDECIMAL18,0YESNONO自增IDMODULE_IDDECIMAL18,0NONONO模块IDMODULE_CODEVARCHAR50NONONO模块CODEMODULE_NAMEVARCHAR50NONONO模块名称TYPEVARCHAR50NONOYES模块类型VALUEVARCHAR50NONOYES模块类型值DESCRIPTIONVARCHAR100NONOYES描述329公共CODE表用来存储一些模块内的共用属性CODE和值的对应关系。表311CODE表CODE数据结构字段名称数据类型是否是主键是否是外键是否可NULL备注CODE_IDDECIMAL18,0YESNONOCODEIDCODE_NOVARCHAR50NONOYESCODE_NOCODE_TYPEVARCHAR50NONOYESCODE类型CODE_NAMEVARCHAR50NONOYESCODE名称CODE_VALUEVARCHAR10NONOYESCODE值CODE_MODULEVARCHAR50NONOYES所属模块REMARKVARCHAR50NONOYES备注VERSIONINTEGERNONONO版本控制3210试卷日志记录表主要存储用户对试卷的历史操作记录。表312试卷日志记录表EXAM_PAPER_LOG数据结构字段名称数据类型是否是主键是否是外键是否可NULL备注AUTO_IDDECIMAL18,0YESNONO自增IDPAPER_IDVARCHAR50NONONO试卷IDUSER_TYPEVARCHAR50NONONO用户类型USER_IDDECIMAL18,0NONONO用户IDUSER_UINVARCHAR20NONONO用户UINUSER_NAMEVARCHAR50NONONO用户名称LOGIN_IPVARCHAR50NONONO登录IPEVENT_NOVARCHAR50NONONO事件EVENT_TIMEDATETIMENONONO事件发生时间33数据库数据字典表313数据字典字段名称表名业务说明备注IS_VALIDATMODULE模块状态0模块无效1模块有效默认IS_LOGINPCM_USER用户在系统的状态N未登录状态Y登录状态TYPEPCM_USER用户类型TEACHER教师用户STUDENT学生用户4系统模块实现41登录验证411登录流程图用户登录验证主要由用户登录、用户注销、SESSION维护三部分构成,其详细设置流程图如图41图41登录验证详细设计流程图412代码实现用户通过登录页面向系统发送登录用户信息,服务器端通过FILTER机制,首先检测到用户发送过来的登录请求,然后执行用户登录验证,如果通过用户登录验证,将加载用户权限,代码如下LOGININFOUSERDATAAUTHAUTHENTICATEUIN,PASS,TYPEIFAUTHALLOWLOGINUSERDATA/是否准许登录IFHREQGETSESSIONFALSENULLHREQGETSESSIONINVALIDATEAUTHPERFORMLOGINUSERDATAAUTHORIZATIONPERMISSIONNEWAUTHORIZATIONPERMISSIONAUTHLOADAUTHORIZATIONUSERDATA/加载权限HREQGETSESSIONSETATTRIBUTECONSTANTSUSER_KEY,PERMISSIONFILTERCONFIGGETSERVLETCONTEXTGETREQUESTDISPATCHER“/INDEXJSP“FORWARDREQUEST,RESPONSERETURN其中对用户的查询LOADAUTHORIZATION方法中主要调用了另一个后台方法,该方法主要根据传入的用户名称、用户类型来加载当前系统中是否存在这种用户,代码如下STRINGBUFFERBUFFERNEWSTRINGBUFFERMAPPARAMSNEWHASHMAPPARAMSPUT“UIN“,UINPARAMSPUT“TYPE“,TYPEIFTYPENULLBUFFERAPPEND“WHEREUSERUSERIDTEACHERRECIDANDTEACHERUINUINANDUSERTYPETYPE“AUTHLOADAUTHORIZATIONUSERDATA是根据用户登录验证后的信息来为该用户加载系统权限,然后台查询代码AUTHORIZATIONEMGETOBJECT“FROMAUTHORIZATIONWHEREUSERIDUSERIDANDTYPETYPE“,PARAMS可以得到用户的角色信息,然后通过用户角色关系以及角色任务关系将用户的权限存储在一个HASHMAP中,代码如下SETSETNULLPCMROLEROLENULLMAPMAPNEWHASHMAPSETAUTHGETROLES/获取用户角色列表IFSETNULLITERATORITERSETITERATORWHILEITERHASNEXT/根据用户角色取得角色任务列表ROLEPCMROLEITERNEXTIFROLENULLIFROLETASKSSETNULLFORITERATORJROLETASKSSETITERATORJHASNEXTPCMROLETASKROLETASKPCMROLETASKJNEXTPCMTASKTASKROLETASKGETTASK/获取任务CODEIFTASKNULLAUTHSETTASKSMAP42用户管理421用户界面用户搜索界面设计图如下图42教师用户搜索界面设计图用户编辑界面设计图图43教师用户编辑界面设计图422代码实现用户搜索功能都是通过编写存储过程实现的,在新增用户需要检查两个唯一,第一个用户的NO,第二个是用户的UIN,用户只有这两个唯一了才可以确定用户唯一性,他们的检测代码分别是1用户的NO唯一性检查在STRUTS的ACTION中通过代码MAPMAPNEWHASHMAPMAPPUT“TEACHERNO“,TEACHERFORMGETNOMAPPUT“TYPE“,USERTYPETEACHERLISTLISTLISTTHISCALLNEWCARRIERMAP,BUSINESSCONSTANTSPCM_USER_BUSINESS,“SEARCHTEACHERBYNO“查找数据库中是否存在当前添加的用户NO。其BUSINESS中通过PCMUSERDAOTHISGETDAOSEACHERBYNOMAP来调用IMPL接口中的一个SEACHERBYNO方法来实现数据查找的,其全部代码如下HASHMAPPARAMSNEWHASHMAPSTRINGTYPESTRINGMAPGET“TYPE“IFTYPENULLRETURNTHISQUERY“FROMSMARTTEACHERWHERETEACHERNOTEACHERNO“,PARAMS2用户的UIN唯一性检查UIN唯一性检查和NO唯一性检查结构上是一样的。在STRUTS的ACTION中通过调用BUSINESS中的PROCESSSEARCHBYUIN方法,并通过这个方法来调用IMPL中的SEARCHBYUIN来进行UIN查找,代码实现如下HASHMAPPARAMSNEWHASHMAPSTRINGTYPESTRINGMAPGET“TYPE“PARAMSPUT“UIN“,MAPGET“UIN“IFTYPENULL然后再将返回回来的结果进行如下分析IFLISTNULLSMARTTEACHEROBJNULLITERATORITERLISTITERATORWHILEITERHASNEXT/是否具有返回结果OBJSMARTTEACHERITERNEXTIFOBJNULLRETURNMAPPINGGETINPUTFORWARD同样在用户更新的时候也要做同样的处理。43角色管理431用户界面角色管理设计图图44角色管理设计图角色编辑界面设计图图45角色编辑设计界面432代码实现角色的搜索功能主要是通过调用存储过程来实现,在程序中我们通过QUERYBYSP“SEARCHROLE“,PARAMS方式来调用数据库中的SP_SEARCHROLE存储过程来实现的,角色的更新和删除时是通过STRUTS来获取要更新和删除的实体,并将这个实体存储在CARRIER的载体变量中,将它传入到我们的BUSINESS方法中进行删除,更新代码如MAPMAPVOGETDATAPCMROLEROLEPCMROLEMAPGET“ENTITY“IFROLENULL/更新实体PCMROLEDAOTHISGETDAOUPDATEROLERETURNROLEGETROLEID44角色设置管理441用户界面和流程图要对用户进行角色设置之前必须查询出需要对哪些用户设置,角色设置就是对某一个用户或多个用户进行角色分配,由于用户和角色的对应关系是一对多,而角色和用户的关系也可以是一对多的关系,所以在用户角色设置的界面方式以TABLE的方式来实现。其界面设置如图46用户角色设置图图46用户角色设置界面图其实现上述功能的流程图如图图47用户角色设置功能详细流程图442代码实现首先根据输入参数搜索要设置的相关用户,其代码实现为STRINGTYPESTRINGDATAGET“TYPE“NULLLISTRESULTNULLIFTYPEEQUALSUSERTYPETEACHER/教师用户搜索OBJECTPARAMSNEWOBJECT8PARAMS1DATAGET“UIN“NULLDATAGET“UIN“PARAMS2DATAGET“NAME“NULLDATAGET“NAME“PCMUSERDAODAONEWPCMUSERIMPLRESULTDAOSEARCHTEACHERUSERPARAMS其中DAOSEARCHTEACHERUSERPARAMS和DAOSEARCHSTUDENTPARAMS分别是对相关教师用户和学生用户搜索的方法。他们都分别是调用SP_SEARCHTEACHERUSER和SP_SEARCHSTUDENT这两个存储过程。还要对用户的相关用户角色和相关角色进行搜索,对用户的相关角色搜索和上面的搜索用户一样也是用存储过程的方式实现的,而对相关的用户角色的搜索实现,其查询代码是HQLAPPEND“SELECTPURFROMPCMUSERROLEPUR,“APPEND/教师用户角色搜索“PCMROLEASROLE,“APPEND“SMARTTEACHERASST,“APPEND“PCMUSERASUSER“APPEND“WHERESTRECIDUSERUSERIDANDUSERTYPE“USERTYPETEACHER“APPEND“ANDPURROLEIDROLEROLEID“APPEND“ANDPURUSERIDUSERRECID“用户角色设置的传输方式是通过AJAX的异步刷新来实现。45权限设置管理451用户界面和流程图权限设置就是对某一个角色进行任务(系统中的每一个功能就叫做一个任务)分配,由于任务和角色的对应关系是一对多,而角色和任务的关系也可以是一对多的关系,所以在权限设置的时候采用表格的方式来进行,所以在用户角色设置的界面方式以TABLE的方式来实现。其界面设置如图49角色任务设置图图48角色任务设置界面图要实现角色任务的设置,首先要搜索角色、任务对象以及角色任务对象,然后再对角色和任务这两个对象进行关系关联,如图49图49角色任务功能详细流程图452代码实现首先要通过输入的参数进行角色搜索、任务搜索以及角色任务搜索,将搜索的结果放入一个叫ROLETASKSEARCH的对象中,并在将其如上图的界面展现出来,并在展现中提供AJAX的角色权限设置方式,让用户在设置权限的时候操作简便。其结果展现代码如下TITLESORTABLE/用户通过点击页面上的“Y”和“”来相互转换,每次转换都是通过AJAX来执行一个后台方法。AJAX实现权限设置是通过一个SERVLET和一个JS回调函数来实现,其后台回调函数实现代码如下STRINGBUFFERINNERHTMLNEWSTRINGBUFFERINNERHTMLAPPEND“APPENDNEWVALUEAPPEND“STRINGCALLBACK“CALLBACK“DIVID“,“INNERHTMLTOSTRING“46日志管理461用户界面日志搜索界面设计图410系统日志搜索结果设计图系统日志查
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 新质生产力政策
- 人教高中物理必修三第九章静电场及其应用第一节电荷教学设计教案2份
- 2025届湖南省长沙市大附中博才实验中学数学七下期末综合测试模拟试题含解析
- 肌纤维瘤的临床护理
- 北师大版六年级数学下册反比例的意义教学设计
- 服装销售总结模版
- 医院护士面试试题及答案
- 一级消防试题及答案案例
- 2025年苏教版数学五年级下册期末检测题及答案(一)
- 美妆品牌购物中心美妆专区综合委托经营合作协议
- 中国艺术歌曲赏析及实践知到课后答案智慧树章节测试答案2025年春四川音乐学院
- 2025年社区工作者必考试题库及答案
- GB/T 44625-2024动态响应同步调相机技术要求
- 硅酸钙板、含锆型硅酸铝纤维棉、高铝型硅酸铝纤维棉技术规格
- 小学二年级下册道德与法治《小水滴的诉说》教学教案
- 2018年可行性研究报告投资估算及财务分析全套计算表格共14个附表excle带公式只更改标红部分即可带说明
- 企业落实安全生产主体责任重点事项清单(20项要点)
- 护士分层级培训与管理课件
- 《人机工程学》第5章人的作业能力与疲劳课件
- 彩钢产品合格证
- 人脸识别外文文献(共9页)
评论
0/150
提交评论