SMART系统—系统功能管理模块设计与开发_第1页
SMART系统—系统功能管理模块设计与开发_第2页
SMART系统—系统功能管理模块设计与开发_第3页
SMART系统—系统功能管理模块设计与开发_第4页
SMART系统—系统功能管理模块设计与开发_第5页
已阅读5页,还剩36页未读 继续免费阅读

下载本文档

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

文档简介

成都信息工程学院学位论文SMART系统系统功能管理模块设计与开发SMART系统系统功能管理模块设计与开发摘 要SMART系统是一个在语言上采用跨平台的JAVA技术、在框架架构上采用流行的MVC架构、在业务架构中采用Spring的IOC思想和ORM技术的一个新型智能在线考试信息管理系统,该系统主要实现了学生在线考试与评估以及教师对学生在线考试信息的管理和维护。本文设计的系统管理功能模块采用了多用户多角色管理机制,确保不同的用户登录系统后能够操作属于自己权限范围内的功能。系统功能管理模块主要由用户管理子模块、角色管理子模块、角色设置管理子模块、权限管理子模块、系统菜单管理子模块、日志管理子模块和用户登录验证子模块构成。通过对系统功能的各种设置,实现对系统各级用户的角色设置和角色分配,限制和记录各级用户在系统中的对信息的功能操作,体现了系统权限设置的灵活性、数据操作的安全性。关键词: 用户;角色;权限;多用户多角色管理SMART SystemThe Design and Development of Function Management ModuleAbstractSMART System is a new intelligent information management system of on-line examine. It uses the JAVA technology in language, uses the MVC in framework, and uses the IOC antilogy of Spring and ORM technology in its operation framework. The system mainly implements the on-line examination and evaluation of students, and the teachers management and maintenance of students examination information on-line as well. The system uses multiplex users and roles management mechanism. After the users log on, they can use the functions they owned. The management function module of system includes users management, role management, role setup management, right management, system menu management, log management and the validation of the users logon management. Through these configuration of system functions, the system carries out the role intercalation and distribution of the all users, restricts and records the information of all users how they used in the system. These can make the system right configuration flexible, and the data operations security.Key words: the users; the role; right; multiplex users and roles management目 录论文总页数:36页1 引 言11.1 背景11.2 目的11.3 意义11.4 系统开发的主要技术11.5 系统开发环境22 系统功能需求和总体设计32.1 B/S构架32.2 系统流程框架设计32.3 系统功能需求分析与设计72.3.1 登录验证72.3.2 用户管理82.3.3 角色管理92.3.4 角色设置管理92.3.5 权限设置管理102.3.6 日志管理112.3.7 菜单权限控制123 数据库设计与构架123.1 数据库设计123.2 数据库表设计133.2.1 用户表133.2.2 用户控制表153.2.3 角色表153.2.4 用户角色表163.2.5 任务表163.2.6 角色任务表173.2.7 日志表173.2.8 模块表173.2.9 公共CODE表183.2.10 试卷日志记录表193.3 数据库数据字典194 系统模块实现194.1 登录验证194.1.1 登录流程图194.1.2 代码实现204.2 用户管理224.2.1 用户界面224.2.2 代码实现224.3 角色管理234.3.1 用户界面234.3.2 代码实现244.4 角色设置管理244.4.1 用户界面和流程图244.4.2 代码实现254.5 权限设置管理264.5.1 用户界面和流程图264.5.2 代码实现264.6 日志管理274.6.1 用户界面274.6.2 代码实现284.7 菜单权限控制284.7.1 用户界面和流程图284.7.2 代码实现295 结果测试、性能分析305.1 单元测试305.2 系统功能测试305.2.1 系统菜单权限功能测试305.2.2 系统功能权限测试31结 论33参考文献34致 谢35声 明361 引 言1.1 背景随着高新技术的迅猛发展,信息技术广泛应用,将传统的教育产业信息化成为可能。但是目前学校与社会上的各种考试大都采用传统的考试方式,组织一次考试至少要经过五个步骤,即人工出题、考生考试、人工阅卷、成绩评估和试卷分析。显然,随着考试类型的不断增加及考试要求的不断提高,教师的工作量将会越来越大,并且其工作将是一件十分烦琐和非常容易出错的事情,可以说传统的考试方式已经不能适应现代考试的需要。所以拥有一套实用、完善、高效的在线考试评估系统越来越显的重要,能够将通过权限控制,将不同教师和学生登录后能够看到不同的功能界面,这样能更好的方便学校对教学质量的管理,降低成本,提高效率。1.2 目的通过对用户权限的控制,让不同的用户登录系统后能够看到不同的功能,以提高用户对管理对象的方便性和高效性。1.3 意义系统功能管理模块是现在管理系统软件中很重要的一环,很多国内较出名的软件厂商都设计了较完善的也具有自己特色的系统功能管理模块(权限管理模块),但对于很多没那么规范的软件商,他们经常是接到系统,就设计一套系统功能管理模块,每套都不同,有的甚至不够重视,随便写上一段,哪里都拷过去用;有的也曾费尽心机,但结果总不能令自己满意。其实仔细想一下,每套软件的系统功能管理模块(权限管理模块)虽然各不相同,但其实所需实现的系统管理功能都是差不多的。权限管理是管理软件中可代码重用性最高的一个模块,也是重复开发率最高的一个模块。做一个最通用的系统功能管理模块(权限管理模块),支持尽可能多的数据库后台,尽最大可能方便软件开发人员的二次开发和最终用户使用,当然,还要保证权限管理技术的先进性,即注重灵活性的安全性。 1.4 系统开发的主要技术此系统采用了流行的J2EE技术,具体包括了Spring、Hibernate、Struts、Jsp、Ajax、数据库连接池等技术。以下是对所开发系统所采用的技术的说明,为系统提供一定的技术支持。 J2EEJ2EE平台是用于在分布式企业环境中开发、部署和执行应用程序的体系结构。分布式应用程序需要系统级服务,如事务管理、安全性、客户端连接池数据库访问。 Spring Spring是一个开源框架,是为了解决企业应用程序开发复杂性而创建的。框架的主要优势之一就是其分层架构,分层架构允许您选择使用哪一个组件,同时为 J2EE 应用程序开发提供集成的框架。 HibernateHibernate是一个开放源代码的对象关系映射框架,它对JDBC进行了非常轻量级的对象封装,使得Java程序员可以随心所欲的使用对象编程思维来操纵数据库。 Hibernate可以应用在任何使用JDBC的场合,既可以在Java的客户端程序实用,也可以在Servlet/JSP的Web应用中使用,最具革命意义的是,Hibernate可以在应用EJB的J2EE架构中取代CMP,完成数据持久化的重任。 StrutsStruts就是在JSP Model2的基础实现了MVC设计模式的WEB Framework。基于Struts构架的WEB应用程序基本上符合JSP Model2的设计标准,可以说是MVC设计模式的一种变化类型。 AjaxAJAX全称为“Asynchronous JavaScript and XML”(异步JavaScript和XML),是指一种创建交互式网页应用的网页开发技术。Ajax技术主要是由XHTML、CSS、DOM、JavaScript、XML、XMLHttpRequest结合的一种技术,与传统的Web开发不同,Ajax并不是以一种基于静态页面的方式来看待Web应用的。1.5 系统开发环境本系统开发的IDE工具是eclipse以及相关的插件(如:tomcat插件),开发服务器采用的是tomcat,在数据存储器方面采用的是Microsoft SQL Server 2000,采用的开发语言是JAVA,在数据库设计方面使用的是ERStudio工具,在版本控制方面使用CVS控制。 eclipseEclipse 是一个开放源代码的、基于 Java 的可扩展开发平台。它只是一个框架和一组服务,用于通过插件组件构建开发环境,Eclipse 附带了一个标准的插件集,包括 Java 开发工具(Java Development Tools,JDT)。Eclipse 的目标不仅当作 Java IDE 来使用,只要给 Eclipse 提供插件,以及给用户提供一致和统一的集成开发环境而言,所有工具开发人员都具有同等的发挥场所。 tomcatTomcat是一个免费的开源的Serlvet容器,它是Apache基金会的Jakarta项目中的一个核心项目,由Apache,Sun和其它一些公司及个人共同开发而成。2 系统功能需求和总体设计2.1 B/S构架随着Internet的发展,采用Browser/Server模式的系统主要利用Internet技术和产品来构筑内部的Internet网络,即所谓的Intranet网络,B/S模式已经成为了企业信息系统建设的首选。B/S模式使用方便,客户端统一采用浏览器,不限制客户平台,可以方便的和其他业务系统连接。其三层3-tier结构(图2-1 B/S三层结构),大大减缓了客户端载荷,减轻了系统维护与升级的成本和工作量,降低了用户的总体成本。它能有效地保护数据平台和管理访问权限,服务器数据也很安全。SMART在线考试系统是为处在不同地点的不同用户提供网上数据操作服务的。使用B/S模式是一次性到位的开发,能实现不同的人员,从不同的地点,以不同的接入方式访问和操作共同的数据库;它能有效地保护数据平台和管理用户的访问权限,服务器数据也更安全。特别是在采用JAVA这样的跨平台语言开发后,B/S构架管理软件更方便、快捷、高效。图2-1 B/S三层结构2.2 系统流程框架设计SMART系统系统功能管理设计与开发主要是对系统中的功能模块进行权限控制和管理。本系统主要设计到三个对象,用户、角色、任务(系统中的功能模块)。其中用户主要有两种类型教师用户、学生用户。我们将系统中的任务分配给各个角色对象,然后将用户加入这些角色对象里面,从而来控制用户在系统的权限。该系统主要由登录验证、用户管理、角色管理、角色设置管理、权限设置管理、日志管理、菜单权限控制7个模块构成。系统的总体设计框架如图2-2:图2-2系统总体设计框架流程图 登录验证模块:登录验证主要是包括对用户信息的合法信息验证和对合法用户的权限加载,这个模块作为系统其它模块功能的前提。流程设计图如:图2-3 登录验证模块流程图 加载功能模块:加载功能模块也就是菜单权限管理模块,只有一个合法用户第一登录成功后或者是用户刷新session的时候,系统才会加载该部分。系统加载这部分要根据登录用户的权限范围来加载用户相应的系统功能。其功能模块流程图如图2-4:图2-4 加载功能模块流程图 用户管理模块:该模块管理的对象主要是用户对象,当前系统中包含两种用户对象教师用户和学生用户。该模块要实现的功能包括新增用户、更新用户、删除用户、用户密码修改、用户激活、用户搜索、学生用户升学调整。用户管理模块功能框架图如图:图2-5 用户管理模块功能图 角色管理和用户角色管理模块:其中角色管理模块主要负责对角色的管理和维护,包含对角色增加、角色更新、角色删除、角色搜索功能,他为用户角色管理提供管理对象之一(如图2-7);用户角色管理对象主要是对用户和角色用户之间建立一种联系关系,并通过这种关系以及权限设置模块中的角色和任务之间的关系一起来实现用户在系统的权限管理,用户角色管理模块包括搜索和用户角色设置两个功能(如图2-6)。图2-6 角色管理功能模块流程图图2-7用户角色设计模块功能图 权限设置模块:权限管理模块主要管理的对象有任务对象以及角色对象,他将系统的任务功能与角色对象建立一种关系,在结合用户角色管理模块的角色和用户对象建立的用户角色关系一起完成对系统的用户功能权限管理设置。如图2-8:图2-8 权限设置模块流程图 日志管理模块:日志管理模块由两部分日志对象组成,系统日志管理(主要是指系统中表对象操作日志管理)和试卷日志管理(学生用户和教师用户对试卷的操作日志记录管理)。如图2-9日志管理模块功能图:图2-9日志管理模块功能图2.3 系统功能需求分析与设计通过以上系统流程设计,各模块实现了以下的功能:2.3.1 登录验证n 功能需求用户通过输入正确的信息,通过登录验证后,用户应从数据库中获取他在系统中所具有的操作权限,以致在用户登录后能够看到其在所具有权限范围内的功能模块。n 模块划分用户登录:用户登录系统,为用户获取权限操作,并更新用户信息。Session维护:维护用户登录系统的会话时间。用户注销:用户登出系统,清空用户在Session中的信息,结束用户会话,并更新用户信息。n 应用场景用户进入到登录页面,需要输入相应的用户信息,登录系统后,用户才能够执行相应功能的操作;当系统修改该用户的登录信息后,则需要再次输入正确的认证信息或者从新刷新Session后才能访问到相信系统功能,同时,当用户注销系统时,也从Session中清空相应的会话信息。n 技术方案在本系统中是通过filter的方式来实现其登录验证功能的,其结构图如下:图2-10 Filter过滤流程图2.3.2 用户管理n 功能需求系统用户主要包括两种,教师用户和学生用户。教师用户又分为四种不同的用户,如:省级教师用户、市级教师用户、区县级教师用户、学校级教师用户,并且他们在系统的权限都不相同,系统应提供对这些用户的区别以及权限控制。如果登录用户具有足够的权限的话,可以对这些用户进行控制管理。用户管理需实现对这些用户的参数匹配搜索和管理,对用户的管理主要要求实现对这些用户的添加、更新、删除和对新加用户的激活等相关功能。n 模块划分搜索功能:系统管理员可以通过参数匹配来搜索当前系统的用户,将输入的某些参数作为模糊查询的方式来搜索,并将所查询出来的结果以一种统计的列表方式展现出来。新增功能:系统管理员可以直接向数据库增加一个新的用户。更新功能:如果用户具有相应的权限,则对自己或其他用户的资料进行更新。删除功能:如果用户具有相应的权限,则对自己或其他用户的资料进行删除。用户角色设置功能:用户可以在编辑其信息时,可以对用户的角色相关联,因为这些角色与系统的功能相关联的,所有当用户对其所属角色进行关联时,该用户的权限也在发生改变。强制用户注销:系统管理员可以对当前系统已经登录的用户进行强制性的注销。n 应用场景登录用户如果有以上功能的权限,则该用户可以根据匹配条件搜索,并可以对搜索出的用户进行更新、删除已经对某些用户的所属角色进行更新。同时也可以向系统添加新的用户,如果所更新的用户已经登录进了系统,我们还可以将其强制注销。n 技术方案由于系统用户主要分为两大类,并且这些用户中教师和学生的用户量比例比较大,教师用户和学生用户的权限设定丰富程度相差也比较大,所以在实现用户管理的时候,将用户管理分成两个模块来对其进行相应的管理,这样在权限控制和用户管理上比较容易实现和控制。2.3.3 角色管理n 功能需求系统为用户提供不同功能权限的角色对象,用户拥有的功能是由用户拥有的角色对象来确定,一个用户可以拥有多个角色对象,用户的功能是由这多个角色对象的并集。系统存在多种用户,而这些用户拥有对系统不同的功能权限就是由他所属的角色对象不同确定的。该功能主要为系统管理员提供来管理用户在系统中所具有的权限功能,来为这些用户分配他们的权限范围,保证系统的安全。n 模块划分角色搜索:用户可以通过该功能搜索本系统所具有的角色,该功能提供了模糊匹配搜索的搜索功能。角色管理:通过搜索功能可以搜索出本系统的所有角色,如果权限足够还可以更改这些角色,可以执行以下操作,添加角色、删除角色、编辑角色。n 应用场景系统管理登录系统后,可以通过以上提供的功能来删除、编辑、添加角色。n 技术方案角色的管理主要采用比较传统方式来实现。2.3.4 角色设置管理n 功能需求该功能主要为系统管理员提供来管理用户在系统中所具有的权限功能,来为这些用户分配他们的权限范围,保证系统的安全。n 模块划分搜索功能:该功能主要是搜索当前系统中所具有的角色或用户,主要为角色设置管理提供管理的对象。角色设置管理:管理员通过搜索功能可以搜索出需要进行管理设置的对象,然后对在这些对象上面进行角色对象的添加、删除来为他们设置不同的权限范围。n 应用场景系统管理员登录系统后,便可以对用户的权限进行管理设置,为这些用户分配他们所属于的角色对象。n 技术方案角色设置就是对某一个用户进行角色分配,由于用户和角色的对应关系是一对多,而角色和用户的关系也可以是一对多的关系,所以在用户角色设置的时候采用Ajax来对用户和角色设置的数据信息进行提交。设计界面如表2-1:表2-1 用户角色设置设计界面UIN用户名角色1角色2角色3UIN1用户1YY-UIN2用户2-YY其中用户和角色对应的交叉值“Y”和“-”,其中“Y”表示对应的用户具有该角色,而“-”却表示相反,没有该角色的意思。而要改变这个值,只需要在原有值的基础上点击便可,而在改变值的过程中通过Ajax来与后台进行交付。2.3.5 权限设置管理n 功能需求系统的每一个功能我们都把叫做是一个任务(task)并为它分配一个唯一code(taskcode),系统的不同角色包含了不同的任务,我们为每一个角色设置其包含的任务,这样用户的权限范围就由用户所属的角色确定了,而角色由角色所属的任务确定。我们这样通过设置角色和任务的关联已经用户和角色的管理来实现权限的管理。n 模块划分搜索功能:该功能提供了模糊匹配搜索功能,搜索的对象主要包括两个,角色和任务。权限设置:通过以上的搜索功能的搜索结果来对其进行设置管理操作,通过对任务的角色对象的添加删除来实现其权限设置。n 应用场景管理员登录系统之后,便可以用该功能来对任务和角色之间的管理进行设置,通过对任务所属角色的添加删除来实现对权限的控制。n 技术方案权限设置就是对某一个角色进行任务(系统中的每一个功能就叫做一个任务)分配,由于任务和角色的对应关系是一对多,而角色和任务的关系也可以是一对多的关系,所以在权限设置的时候采用表格的方式来进行,并Ajax来对任务和角色设置的数据信息进行提交的时候进行处理。设计界面如表2-2:表2-2 权限设置设计界面角色名称角色1角色2角色3角色4任务1-YY-任务2Y-YY其中用户和角色对应的交叉值“Y”和“-”,其中“Y”表示对应的角色包含该任务,而“-”却表示相反,不包含该任务的意思。而要改变这个值,只需要在原有值的基础上点击便可,而在改变值的过程中通过Ajax来与后台进行交付。2.3.6 日志管理n 功能需求日志管理由两部分日志对象组成,系统日志(主要是指系统中表对象操作日志管理)和试卷日志管理(学生用户和教师用户对试卷的操作日志记录管理)。系统日志是记录了用户对系统表的几乎所有操作,可以通过日志来查看过去用户对该系统进行了什么样的操作,也可以通过日志来恢复一些历史数据;试卷日志管理主要用来查看用户过去对试卷的一些操作。n 模块划分搜索功能:可以通过匹配参数对用户过去对系统的一些操作进行查询搜索,提供了对某些输入参数的模糊匹配搜索。日志管理:用户可以根据对搜索出的历史记录进行查看,以及对那些历史操作记录进行删除。n 应用场景用户登录系统之后,如果具有日志管理的权限,那么用户可以搜索任何用户过去对系统的一些操作并通过这系历史数据,可以找回一些丢失的东西。也可以对这些历史性的操作记录进行删除,也可以统计查看用户过去对试卷的操作情况。n 技术方案这两种日志的产生并不相同,所以对他们的管理方式分成两个模块来完成,系统日志是系统对数据库表的操作所产生生成的,这种日志数据比较复杂并且大多数据没有什么意义;而另外一种是试卷日志,这中日志是为用户操作试卷特意做,可以用这种数据来对用户对试卷的操作进行统计分析,这中数据比较重要。所以本系统对日志的管理分成了两个相对独立的模块进行实现的。2.3.7 菜单权限控制n 功能需求要求不同的用户登录系统后,应该根据他们在系统中所具有的权限来进行相应的功能操作,并且要求用户如果在系统中不应该看到不在自己权限范围内的功能模块。n 模块划分菜单管理:通过用户登录系统的权限来生成在该权限范围内的菜单结构。n 应用场景用户在登录系统后,看到的系统功能模块表示他都有权对其进行操作,而他无权管理的功能部分则根本看不到。n 技术方案主要通过J2EE中的自定义标签来实现该功能,因为这样实现不仅安全性高,而且扩展性和使用性也较好。3 数据库设计与构架3.1 数据库设计数据库是借助于计算机保存和管理大量复杂的数据和信息的软件工具,数据库技术主要研究如何科学地组织和存储数据,如何高效地获取、更新和加工处理数据,并保证数据的安全性、可靠性和持久性。它的最大优点在于使用了非过程化的数据操作语言,具有很好的形式基础和高度的数据独立性。本系统选用关系型数据库SQL SERVER 2000。具有使用方便、可伸缩性好、与相关软件集成程度高等优点。通常在Microsoft windows 2000 server服务器版上使用。数据库E-R设计图结构如下:图3-1 系统数据库结构图3.2 数据库表设计3.2.1 用户表 教师用户表教师用户表主要存储的信息是教师用户以及学校领导之类用户的信息:表3-1 教师用户表(SMART_TEACHER)数据结构字段名称数据类型是否是主键是否是外键是否可NULL备注teacher_idDECIMAIL(18,0)YESNONO自增IDteacher_noVARCHAR(50)NONONO教师NOtypeVARCHAR(20)NONONO类型uinVARCHAR(20)NONONOUINteacher_nameVARCHAR(50)NONONO教师姓名province_noVARCHAR(50)NONOYES省city_noVARCHAR(50)NONOYES市 ounty_noVARCHAR(50)NONOYES区/县ref_school_noVARCHAR(50)NONOYES学校grade_noVARCHAR(50)NONOYES年级class_noVARCHAR(50)NONOYES班级teacher_subjectVARCHAR(50)NONOYES所教课程telVARCHAR(20)NONOYES联系电话e_mailVARCHAR(50)NONOYESE-MAIL地址addressVARCHAR(100)NONOYES地址信息record_numberINTEGERNONONO版本控制remarkVARCHAR(100)NONOYES备注 学生用户表学生用户表主要存储的信息是学生用户信息。表3-2 学生用户表(SMART_STUDENT)数据结构字段名称数据类型是否是主键是否是外键是否可NULL备注student_idDECIMAIL(18,0)YESNONO自增IDstudent_noVARCHAR(50)NONONO学生NOuinVARCHAR(20)NONONOUINstudent_nameVARCHAR(50)NONONO学生姓名province_noVARCHAR(50)NONOYES省city_noVARCHAR(50)NONOYES市county_noVARCHAR(50)NONOYES区/县ref_school_noVARCHAR(50)NONOYES学校ref_grade_noVARCHAR(50)NONOYES年级ref_class_noVARCHAR(50)NONOYES班级register_idBIGINTNONOYES注册时的用户IDtelVARCHAR(20)NONOYES联系电话e_mailVARCHAR(50)NONOYESE_Mail地址addressVARCHAR(100)NONOYES地址信息register_dateDATETIMENONOYES注册时间record_numberINTEGERNONONO版本控制remarkVARCHAR(100)NONOYES备注3.2.2 用户控制表该表主要用来索引教师用户和学生用户的用户ID.表3-3 用户控制表(PCM_USER)数据结构字段名称数据类型是否是主键是否是外键是否可NULL备注auto_idDECIMAIL(18,0)YESNONO自增IDuser_idDECIMAIL(18,0)NONONO用户IDtypeVARCHAR(20)NONONO用户类型passVARCHAR(50)NONONO密码activated_timeDATETIMENONOYES激活时间locked_indicatorINTEGERNONONO是否被锁is_loginVARCHAR(2)NONOYES是否登录是登录状态deactivated_dateDATETIMENONOYES解除用户日期created_byDECIMAIL(18,0)NONOYES被哪个用户创建last_login_in_timeDATETIMENONOYES最后一次登录时间last_update_timeDATETIMENONOYES最后一次更新时间last_updated_byDECIMAL(18,0)NONOYES最后一次更新用户IDlast_login_out_timeDATETIMENONOYES最后一次注销时间pwd_changed_dateDATETIMENONOYES密码更改时间pwd_resetd_dateDATETIMENONOYES密码重置时间record_numberINTEGERNONONO版本控制3.2.3 角色表表3-4 角色表(PCM_USER)数据结构字段名称数据类型是否是主键是否是外键是否可NULL备注role_idDECIMAL(18,0)YESNONO角色IDrole_nameVARCHAR(50)NONONO角色名称role_abbreviationVARCHAR(20)NONONO角色名称简写role_descriptionVARCHAR(100)NONOYES角色描述created_byDECIMAL(18,0)NONOYES角色创建者created_timeDATETITMENONOYES创建角色的时间last_update_byDECIMAL(18,0)NONOYES最后一个更新的用户IDlast_update_timeDATETIMENONOYES最后更新的时间record_numberINTEGERNONONO版本控制3.2.4 用户角色表该表主要用户存储用户和角色之间的关系。表3-5 用户角色表(PCM_USER_ROLE)数据结构字段名称数据类型是否是主键是否是外键是否可NULL备注role_idDECIMAL(18,0)YESYESNO角色IDuser_idDECIMAL(18,0)YESYESNO用户IDcreated_byDECIMAL(18,0)NONOYES被哪个用户创建created_timeDATETIMENONOYES创建时间last_update_byDECIMAL(18,0)NONOYES最后一次更新用户IDlast_update_timeDATETIMENONOYES最后一次更新时间record_numbderINTEGERNONONO版本控制3.2.5 任务表表3-6 任务表(PCM_TASK)数据结构字段名称数据类型是否是主键是否是外键是否可NULL备注task_idDECIMAIL(18,0)YESNONO任务IDtask_codeVARCHAR(20)NONOYES任务CODEtask_nameVARCHAR(50)NONOYES任务名称created_timeDATETIMENONOYES创建时间created_byDECIMAIL(18,0)NONOYES被哪个用户创建last_update_byDECIMAIL(18,0)NONOYES最后更新用户last_update_timeDATETIMENONOYES最后更新时间record_numberINTEGERNONONO版本控制3.2.6 角色任务表该表主要用来存储角色和任务之间的关系。表3-7 角色任务表(PCM_ROLE_TASK)数据结构字段名称数据类型是否是主键是否是外键是否可NULL备注role_idDECIMAIL(18,0)YESYESNO角色IDtask_idDECIMAIL(18,0)YESYESNO任务IDcreated_timeDATETIMENONOYES创建时间created_byDECIMAIL(18,0)NONOYES被哪个用户创建last_update_byDECIMAIL(18,0)NONOYES最后更新用户last_update_timeDATETIMENO NOYES最后更新时间record_numberINTEGERNONONO版本控制3.2.7 日志表该表主要存储系统对数据库表的操作历史情况。表3-8 日志表(AUDIT_LOG)数据结构字段名称数据类型是否是主键是否是外键是否可NULL备注audit_idDECIMAL(18,0)YESNONO日志IDuser_idDECIMAL(18,0)NONOYES用户IDtask_codeVARCHAR(50)NONOYES任务CODEtask_remarksVARCHAR(255)NONOYES任务描述table_actionVARCHAR(20)NONOYES表动作table_nameVARCHAR(50)NONOYES表名称created_dateDATETIMENONOYES创建时间new_dataVARCHAR(100)NONOYES新数据record_numberINTEGERNONONO版本控制3.2.8 模块表 模块表主要存储系统的功能模块,以及功能模块之间的父子管理。表3-9 模块表(MODULE)数据结构字段名称数据类型是否是主键是否是外键是否可NULL备注auto_idDECIMAL(18,0)YESNONO自增IDmodule_idDECIMAL(18,0)NONONO模块IDmodule_codeVARCHAR(50)NONONO模块CODEmodule_nameVARCHAR(50)NONONO模块名称parsent_idDECIMAL(18,0)NONONO父IDis_validateINTEGERNONONO是否有效descriptionVARCHAR(100)NONOYES描述 子模块表该表用来存储系统中的每一个功能的CODE代码以及他们父子模块之间的关系。表3-10 子模块表(SUB_MODULE)数据结构字段名称数据类型是否是主键是否是外键是否可NULL备注auto_idDECIMAL(18,0)YESNONO自增IDmodule_idDECIMAL(18,0)NONONO模块IDmodule_codeVARCHAR(50)NONONO模块CODEmodule_nameVARCHAR(50)NONONO模块名称typeVARCHAR(50)NONOYES模块类型valueVARCHAR(50)NONOYES模块类型值descriptionVARCHAR(100)NONOYES描述3.2.9 公共CODE表用来存储一些模块内的共用属性CODE和值的对应关系。表3-11 CODE表(CODE)数据结构字段名称数据类型是否是主键是否是外键是否可NULL备注code_idDECIMAL(18,0)YESNONOCODE IDcode_noVARCHAR(50)NONOYESCODE_NOcode_typeVARCHAR(50)NONOYESCODE类型code_nameVARCHAR(50)NONOYESCODE名称code_valueVARCHAR(10)NONOYESCODE值code_moduleVARCHAR(50)NONOYES所属模块remarkVARCHAR(50)NONOYES备注versionINTEGERNONONO版本控制3.2.10 试卷日志记录表主要存储用户对试卷的历史操作记录。表3-12 试卷日志记录表(EXAM_PAPER_LOG)数据结构字段名称数据类型是否是主键是否是外键是否可NULL备注auto_idDECIMAL(18,0)YESNONO自增IDpaper_idVARCHAR(50)NONONO试卷IDuser_typeVARCHAR(50)NONONO用户类型user_idDECIMAL(18,0)NONONO用户IDuser_uinVARCHAR(20)NONONO用户UINuser_nameVARCHAR(50)NONONO用户名称login_ipVARCHAR(50)NONONO登录IPevent_noVARCHAR(50)NONONO事件event_timeDATETIMENONONO事件发生时间3.3 数据库数据字典表3-13 数据字典字段名称表名业务说明备注is_validatMODULE模块状态0:模块无效 1:模块有效 默认is_loginPCM_USER用户在系统的状态N:未登录状态 Y:登录状态typePCM_USER用户类型teacher:教师用户 student:学生用户4 系统模块实现4.1 登录验证4.1.1 登录流程图用户登录验证主要由用户登录、用户注销、session 维护三部分构成,其详细设置流程图如图4-1:图4-1 登录验证详细设计流程图4.1.2 代码实现用户通过登录页面向系统发送登录用户信息,服务器端通过filter机制,首先检测到用户发送过来的登录请求,然后执行用户登录验证,如果通过用户登录验证,将加载用户权限,代码如下:LoginInfo userData = auth.authenticate(uin, pass, type);if (auth.allowLogin(userData) /是否准许登录if (hreq.getSession(false) != null) hreq.getSession().invalidate();auth.performLogin(userData);Authorization permission = new Authorization();permission = auth.loadAuthorization(userData);/加载权限hreq.getSession().setAttribute(Constants.USER_KEY,permission);filterConfig.getServletContext().getRequestDispatcher(/index.jsp).forward(request, response);return;其中对用户的查询loadAuthorization方法中主要调用了另一个后台方法,该方法主要根据传入的用户名称、用户类型来加载当前系统中是否存在这种用户,代码如下:StringBuffer buffer = new StringBuffer();Map params = new HashMap();params.put(uin, uin);params.put(type, type);if (type != null & type.equals(UserType.TEACHER) /教师用户 buffer.append(select user.userId,teacher.uin,user.type,user.pass,user.activatedTime,user.deactivatedDate,+

温馨提示

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

评论

0/150

提交评论