毕业设计论文管理系统设计毕业论文.docx
摘 要在当今社会,信息化浪潮强烈冲击着传统教育模式,信息技术和教育相结合成为了当今世界教育改革和发展的有效形式和推动力量,信息化建设的进程在教育行业中被不断推进。教育技术的信息化已经扩展到了行业中的各个领域,其中就包括各高校对毕业设计的管理。毕业设计论文管理系统的最终设计目的在于实现毕业设计标准流程的在线管理,更改了传统的毕业论文管理方式,通过网络实现毕业设计管理的相关功能,包括网上选题、提交开题报告、提交论文、论文的指导、与老师在线交流等功能。本系统采用B/S架构,后台为Java语言编写,使用Struts 2 + Spring + Hibernate框架开发。以MySQL作为数据库系统。本系统采用面向对象的方法进行设计。本论文选择的模块包括选题及基础数据模块,并且对需求的分析、系统的设计和实现的过程进行了描述。选题模块主要实现毕业设计的在线出题与选题,基础数据模块是本系统运行所需的模块,包括登录、用户管理、参数设置、发布通知、站内信、邮件提醒等功能。本系统实现了所需的功能,基础数据模块均能正常运行,达到了预期的目的。关键词:毕业设计管理;SSH框架开发;Java Web开发;毕业设计论文管理AbstractIn today's society, informatization tide strongly impacts on the traditional mode of education. The Combination of information technology and education has become the effective form and driving force of today's world education reform and development, and the process of informatization construction is advancing continuously in the education industry. The informatization of educational technology has expanded to all areas of the industry, which includes the management of graduation design in colleges and universities. The final design objective management system of Law School of design is to realize online management system standard process, change the traditional way of graduation thesis management, realize the function of graduate design management through network, including the Internet topic, submitted proposal, submitted papers, thesis guidance, communicating with teacher online and so on. The system based on MySQL as a database system adopts the B/S architecture as well as background for the Java language, and uses Struts 2 + Spring + Hibernate to develop framework. This system uses the method of object oriented design. This thesis chooses the module which includes topics and basic data module. Meanwhile, analysis and design, system demand and the realization of the process are presented as well. The module mainly realizes the online setting and selecting topics of graduation design, which is intuitive and easy to operate. The basic data module is an important module which is required for the running of the system modules, including the login, user administration, parameter setting, issuing a notice, letter and email reminding and other functions. This system realizes the required functions, and the basic data module can run normally, which achieves the expected objective.Key Words:Graduate Design Management System, Developing with SSH framework, Java Web Development目 录前 言毕业设计论文管理系统通过计算机网络来进行毕业生论文指导的过程,是学生和教师交流与指导论文的平台。本系统按照毕业设计的流程进行管理,将以往师生之间分散的毕业设计论文交流整合到一个统一的平台,在此平台上老师可以提交论文题目、对论文的撰写过程进行指导和打分;学生可以进行选题、提交开题报告、最终提交论文;而教务管理人员可以方便的获悉毕业论文的整个进度情况。该系统的实现,有利于毕业设计管理的网络化,从以往繁琐的人工管理里解放出来,对于教师而言,各个阶段的流程把控可以更加的清晰和明确,对学生而言,即使在外面实习的时候,也能够及时地将自己毕业论文的进展和问题,在网络上和老师沟通。同时,电子化的应用也带来了纸张使用的减少,符合低碳环保的概念。系统开发语言为使用最广泛的Java语言,系统架构为B/S模式,只需通过浏览器即可直接访问系统,无需安装特定的软件。本论文选取了其中的选题与基础数据模块。本部分重点实现了系统的选题功能。选题是毕业设计流程的起始部分,以往是学院先统计教师出题发布给学生,再统计学生选择的题目。应用此系统可以直接在线完成选题,省去了统计选题的过程,减少了学院和同学的工作量。本论文还包含系统的基础部分,包含登录及用户管理、参数设置、邮件提醒、通知发布和站内信等功能。此部分是支持系统正常运行所需要的。从第一章起,我们会简单介绍系统开发所涉及的技术和框架,包括我们最常见的Struts2、Spring及hibernate框架。第二章介绍系统的需求分析和系统设计,第三章介绍了系统中部分功能的实现。第四章将对系统进行测试。第1章 开发关键技术介绍本系统使用了 JSP 和Servlet技术,数据库系统则是开源的MySQL数据库,采用了最常见的Web开源框架SSH ( Struts 2+Spring+Hibernate)开发。1.1 Struts 2框架介绍“Struts 2是一个用于Java EE Web应用的MVC框架。”1它是Struts的下一代产品,是在 struts 1和WebWork的技术基础上进行了合并的全新的框架。其全新的体系结构与Struts 1的体系结构差别巨大。它以WebWork为核心,采用拦截器的机制来处理用户的请求,这样的设计也使得业务逻辑控制器能够与ServletAPI完全脱离开,所以也可将其理解为WebWork的更新产品。虽然相对于Struts 1有着太大的变化,但是相对于WebWork变化却很小。Struts2的处理流程图:当Web容器收到 请求(HttpServletRequest)它将请求传递给一个标准的的过滤链包括(ActionContextCleanUp)过滤器,然后经过Other filters(SiteMesh ,etc),接下来需要调用FilterDispatcher核心控制器,然后它调用ActionMapper确定请求那个Action,ActionMapper返回一个收集Action详细信息的ActionMaping对象。接下来FilterDispatcher将控制权委派给ActionProxy,ActionProxy调用配置管理器(ConfigurationManager) 从配置文件中读取配置信息(struts.xml),然后创建ActionInvocation对象,ActionInvocation在调用Action之前会依次的调用所用配置拦截器(Interceptor N) 一旦执行结果返回结果字符串ActionInvocation负责查找结果字符串对应的(Result)然后执行这个Result Result会调用一些模版(JSP)来呈现页面,之后拦截器(Interceptor N)会在被执行(顺序和Action执行之前相反)最后响应(HttpServletResponse)被返回在web.xml中配置的那些过滤器和(核心控制器)(FilterDispatcher)。1.2 MVC架构介绍“MVC架构(Model-View-Controller)是软件工程中的一种软件架构模式,一种软件设计典范,用一种业务逻辑和数据显式分离的方法组织代码,将业务逻辑被聚集到一个部件里面,在界面和用户围绕数据的交互能被改进和个性化定制的同时而不需要重新编写业务逻辑。MVC被独特的发展起来用于映射传统的输入、处理和输出功能在一个逻辑的图形化用户界面的结构中。把软件系统分为三个基本部分:模型(Model)、视图(View)、控制器(Controller)。”模型(Model):是应用程序中用于处理应用程序数据逻辑的部分。通常模型对象负责在数据库中存取数据。视图(View):是应用程序中处理数据显示的部分,通常视图是依据模型数据创建的。控制器(Controller):是应用程序中处理用户交互的部分。通常控制器负责从视图读取数据,控制用户输入,并向模型发送数据。MVC架构将业务逻辑、数据、显示三部分分开,数据层、业务逻辑层和表示层独立完成任务。使程序的耦合性变低,重用性变高,程序的灵活性得到提升。某一层发生改变不会影响另外两层,减少了成本。1.3 Spring框架介绍Spring是一个开源框架,Spring 是于2003 年兴起的一个轻量级的Java 开发框架,由Rod Johnson 在其著作Expert One-On-One J2EE Development and Design中阐述的部分理念和原型衍生而来。它是为了解决企业应用开发的复杂性而创建的。Spring使用基本的JavaBean来完成以前只可能由EJB完成的事情。然而,Spring的用途不仅限于服务器端的开发。从简单性、可测试性和松耦合的角度而言,任何Java应用都可以从Spring中受益。简单来说,Spring是一个轻量级的控制反转(IoC)和面向切面(AOP)的容器框架。本项目主要使用了控制反转技术。使用了该技术之后,对于后台对象的创建和管理,将不需要程序员处理,而是全部由Spring容器完成。1.4 对象关系映射(ORM)对象关系映射(Object Relational Mapping,简称ORM)是一种为了解决面向对象与关系数据库存在的互不匹配的现象的技术。简单的说,ORM是通过使用描述对象和数据库之间映射的元数据,将java程序中的对象自动持久化到关系数据库中。本质上就是将数据从一种形式转换到另外一种形式。这也同时暗示着额外的执行开销;然而,如果ORM作为一种中间件实现,则会有很多机会做优化,而这些在手写的持久层并不存在。更重要的是用于控制转换的元数据需要提供和管理;但是同样,这些花费要比维护手写的方案要少;而且就算是遵守ODMG规范的对象数据库依然需要类级别的元数据。1.5 Hibernate框架Hibernate是一个开放源代码的对象关系映射框架,它对JDBC进行了非常轻量级的对象封装,使得Java程序员可以随心所欲的使用对象编程思维来操纵数据库。Hibernate可以应用在任何使用JDBC的场合,既可以在Java的客户端程序使用,也可以在Servlet/JSP的Web应用中使用,最具革命意义的是,Hibernate可以在应用EJB的J2EE架构中取代CMP,完成数据持久化的重任。本系统对数据库的访问大部分都通过Hibernate来完成。ApplicationPersistent ObjectsHibernateJDBCDatabase图1.1 Hibernate在系统中的层次第2章 系统分析与设计2.1需求分析需求分析即是了解和确定新系统的目的和用户所需要的功能。需求分析是开发一个系统时的首要步骤。在系统的开发之前,和我校的教务工作的老师以及同学进行多次交流,确定了用户所需要实现的主要功能。2.1.1在线选题为本系统的主要功能模块。该模块主要提供给教师和学生使用,教师在系统中出题,学生在里面进行选题,同时提供管理员的巡视功能,由管理员登陆用于查看所有课题的选择情况。(1)教师出题教师可以在“教师出题”页面中,上传学生可选的课题,上传课题的同时,也可以上传课题设计的资料,以便于学生的选择,如果当老师出的课题还未被学生选择,则可以删除已出的课题。(2)学生选题学生在规定的时间内,可以查看并选择老师出的课题,但是每个学生只能选择一个老师的一个课题,如果选择完之后,想换题,则在选题期间内,可以删除已选的课题,再选择新的题目。但是超过选题时间后,则不可重新选择。(3)管理员查看管理员的功能包括:查看教师出题情况,查看学生选题情况,,查看教师指导学生情况。(4)选题模块用例分析模块涉及的用户包括:教师(Teacher)、学生(Student)、管理员(Admin)。模块涉及的对象包括:可选课题、已选课题、学生的信息、教师的信息、学生的专业、所属院系。可选课题(Topic)用于存储毕业设计选题的信息,包括:出题的教师ID(tid)、毕业设计的题目(Title)、是否已选择(Selected)、学生的届数(Year)、参考资料的文件组ID(FileGroupID)。已选课题(SelectedTopic):用于存储学生选题的信息,包括学生的ID(stuid)、出题教师的ID(tid)、毕业设计的题目ID(TopicID)、选题届(selYear)、学生最终确定题目(FinalTitle)、教师的评分(TScore)和答辩小组的评分(GScore)。学生的专业(Major):用于存储学生的专业信息,包括专业的ID、专业的名称(Name)、和对应的院系ID(DeptID)。院系的ID需要关联院系信息。所属院系(Department):用于存储院系信息,需要关联专业信息。包括院系的ID和院系的名称。一个院系可以对应多个专业,一个专业只能对应一个院系。用户所需功能:教师出题:添加或删除题目、查看所出题目。学生选题:查看自己可选的题目,删除已经选择的题目。管理员:查看所有选题信息。选题模块用例图如图2.1所示。图2.1 选题功能用例图2.1.2基础模块系统的主要模块包括用户登录、参数设置、邮件的提醒、用户的管理、发布通知、使用站内信交流等功能。用户登录用户在主页输入用户名和密码,在后台对输入的用户名和密码进行验证,验证成功后,获取用户的基本信息返回前台并且显示。参数设置用于对系统运行时基本参数的设置,如当前的学生届数,每个老师允许的出题数量,可以指导的学生数量,学生选题的起止时间等。邮件的提醒用于教师与选题学生的交流,当学生选题后,教师就会收到系统的提示邮件,提醒教师需要在接下来的时间里对学生进行指导。同时,学生也能收到教师对学生的指导意见。用户管理此为管理员所使用的模块。包括学生管理与教师管理。管理员可以添加、删除用户、更改用户的信息、重置用户的密码等等。本模块涉及的用户:学生、教师、管理员。本模块涉及的对象:学生信息(Student)、用户(User)、教师信息(Teacher)。用户对象用于存储用户相关的基本信息,包括用户名(Username)、用户的密码(Password)、性别、年龄、邮件地址、用户的类型(Type)等等。用户表中的数据通过用户类型来判断是学生数据还是教师数据。新建用户时,ID、姓名、专业、班级为必填的KEY值。其他个人信息可由用户自行修改完善,如:手机号、邮箱地址等。用户凭借初始密码登陆后,可以进行密码修改操作。用户所需功能:教师和学生:修改密码、修改个人信息。管理员:创建用户、重置用户信息。用户管理功能用例图如图2.2所示。图2.2 用户管理功能用例图通知的发布通知发布为管理员的功能模块。当有重要的通知需要全体用户查看时,管理员可以使用该系统发布。所有用户都可以在主页上看到发布的通知,以获取最新的消息。本模块涉及的用户:所有的用户、管理员。本模块涉及的对象:通知(Bulletin)。公告存储的信息包括公告的标题(BulletinTitle)、公告的内容(Bulletin Content)、公告发布的时间(Data)、公告的点击量(ClickNum)和公告的文件组ID(FileGroupID)。通知发布功能用例图如图2.3所示。站内信站内信是用于教师和学生进行交流的模块。出题的教师和选题的学生之间可以给对方发送站内信进行交流和讨论,用户登录系统之后即可查看站内信信息。图2.3 通知发布功能用例图2.2 系统设计在了解和获取了用户的需求之后,我们根据采用的开发框架和技术。为用户设计出符合要求的解决方案。2.2.1系统总设计主要描述本系统采用的技术架构和所需要实现的功能。(1)系统结构本系统采用了最便于维护的B/S架构,用户只需通过浏览器就可访问和使用系统,而无需安装多余的软件。既方便了用户的使用,也有利于后期的维护。为了保证数据的安全,我们将数据库和系统分别部署在两台服务器中。为了使系统更灵活,我们采用MVC的三层结构设计思路,将界面、业务和数据相互分离,降低了系统的耦合性。同时,在C即controller中,又将代码分为三层,即如下图所示的:DAO层(访问数据库)、Service层(业务逻辑)、Action层(处理web数据)。用户在页面上的操作传到服务器上,由Struts2的过滤器截获并解析,查询到对应的处理Action,在Action中,调用对应的业务逻辑处理,即由Service层提供处理的业务。当需要数据库操作时,则调用DAO层,以此获得数据库操作。系统结构如图2.4所示。数据库Web浏览器Action层(处理web数据)Service层(业务逻辑)DAO层(访问数据库)数据返回访问数据库返回请求web请求Web服务器JSP页面(显示信息)图2.4 系统的层次结构(2)系统功能 本系统主要包含以下功能模块:选题、站内通信、管理功能、邮件提醒等。系统功能如图2.5所示。论文选题出题教师的题目管理:添加题目:添加题目、添加参考资料(可选)。查看题目:查看自己所出的所以题目及学生的选题情况。删除题目:删除自己所出的题目。图2.5 系统主要功能学生浏览题目:学生在页面中查看所有本专业老师的已出题目。学生选题和取消:学生可以选择自己需要的题目。学生可以删除自己已选择的题目 。管理员查看选题情况:查看教师的出题情况,包括:已出题的数量已出题教师未出题教师学生选题的情况,包括:已经选题的学生的详情还未选题的学生的详情判断题目是否可选的标准:判断题目是否为当届的;判断题目是否已经被选;判断题目专业是否符合自己的专业;判断用户是否已经选过题目且未删除已选题目;判断该出题教师的学生人数是否已经超标。只有全部符合,才可进行接下来的操作:添加新的选题记录;更改题目的被选择状态;添加开题报告发送邮件。论文选题过程如图2.6所示。教师添加题目学生浏览题目选题是否可选?添加选题记录是否更改题目状态添加开题报告记录选题完成图2.6 选题过程站内通信发送消息:站内信用于教师和学生之间互相沟通,在用户登陆之后,老师和学生可以看见对方发过来的站内信。教师和学生之间必须为被选题者和选题者的关系。管理功能更改个人信息:登录用户可以更改自己的性别、手机号、邮箱和用户密码。用户管理:管理员可以进行添加、删除用户,更改用户的信息,重置用户的密码的操作。系统通知发布通知:管理员可以发布新通知,在通知管理页面。管理员输入新通知的标题、内容和附件(可选)点击添加即可添加新的通知。查看通知:用户无需登录可以看到通知的列表。邮件提醒发送邮件:系统可以自动发送邮件给用户。2.2.2系统的界面设计(1)未登录时主页面:系统主要分为三个区域。上方是系统的标题区域,左方当未登录时是友情链接,登陆之后是功能列表,右方是系统的主要操作区域。系统界面如图2.7所示。图2.7 系统界面 (2)登陆后主页面:登陆后主页面在左上角显示登录的用户,在左边树形目录,根据权限的不同显示不同的数据。教师在“题目管理”模块可以进行“添加题目”、查看“我的题目”、“预置学生”的操作;学生在“题目管理”模块可以进行“选择题目”和查看“已选题目”操作;教务员拥有“教务员专区”模块,可以进行系统参数配置,教师及学生信息维护管理,通知的发布等。下图为教师登录效果图:图2.8 系统界面下图为学生登录效果图:图2.9 系统界面下图为教务员登陆效果图:图2.10 系统界面(3)详细操作界面:学生选题操作界面:图2.11 选题界面学生在该页面中可以根据“专业”、“指导教师”、“题目关键字”、“只看可选”四个检索条件对题目进行模糊检索,如果不勾选“只看可选”按钮,则列出所有题目,包括应经被选的题目。点击参考资料的下载链接,可以下载该题目的参考资料。该参考资料为指导老师在出题时上传的。学生选题时,点击“选中”标志,再点击“选题”按钮,进行选题操作。已经被选择的题目不可再选,只可以浏览。分页栏可以动态设置每一页显示的数据条数。学生取消已选题目界面:图2.12 取消选题界面点击“取消我的选题”按钮,在允许取消选题的时间范围内,将已选题目取消。教师出题界面:图2.13 教师出题界面教师登录后,可以在出题时间段内进行出题操作,出题时可以同时上传题目的参考文档,为保证系统效率,文档大小必须小于5M,如果文件过多,则必须打成压缩包上传。出题的时间开始和截止范围在右边的提示框中出现。此日期范围由教务员修改。教师查看题目界面:图2.14 教师出题界面教师在此页面对已出的题目进行操作,包括:点击“删除”链接,删除该条题目;点击“参考资料”链接,对上传的资料进行修改,同时也可以上传新的资料;点击“继续添加”按钮,进入出题界面,继续出题。教师查看开题报告界面:图2.15 教师出题界面出题教师可以在此页面点击“开题报告”对选题学生的开题报告进行浏览,并提出整改意见。教务员查看通知列表页面:图2.16 教务员通知列表该界面主要用于教务员对通知的操作,包括: 通过起始、截止时间、关键字对通知进行模糊检索; 点击“修改”链接,对该条通知进行修改; 点击“删除”链接,将该条通知删除; 点击“发新通知”按钮,进入通知发布页面,发布新的通知。教务员发布通知页面:图2.17 教务员发布通知教务员在此页面进行通知的编辑和发布,同时也可以在通知中添加附件。教务员修改系统参数页面:图2.18 教务员修改系统参数教务员可以在此页面中设置,当前届数、教师指导学生数的上限、教师出题的开始到截止时间、学生选题从开始到截止的时间、开题报告的开始到截止时间等等。教师管理界面:图2.19 教师管理界面教务员在此界面中,对教师信息进行操作,包括:通过教师ID、姓名、专业进行模糊查询;点击“修改”链接,进入教师信息修改页面对教师信息进行修改;点击“删除”链接,将该条教师的信息删除;点击“添加新教师”链接,进入教师新增页面,新增一条教师信息。学生管理界面:图2.20 教师管理界面教务员在此页面中,可以对学生信息进行操作,包括:通过学生ID、姓名、专业进行模糊查询;点击“修改”链接,进入学生信息修改页面对教师信息进行修改;点击“删除”链接,将该条学生的信息删除;点击“添加新学生”链接,进入学生新增页面,新增一条学生信息。2.2.3类设计本系统主要分Entity类(实体类)和Bean类(业务管理类)两部分。(1) Entity类面向对象的编程思想中,所有的东西都可以视为对象,我们将主要的对象抽象出来,在实体类中进行描述,而我们的业务,主要就是操作这些实体类。系统中主要的实体类有:用户(User)、所有题目(Topic)、学生(Student)、教师(Teacher)、院系(Department)、角色(Role)、专业(Major)、开题报告(OpeningReport)、已选题目(SelectedTopic)、论文(Paper)。系统内部分实体类关系如图2.21。Entity类(实体类)放于cn.edu.sdu.wh.model包内。实体类的变化都将由Hibernate传输到数据库中。图2.21 部分实体类关系(2) 业务类根据Action、service、DAO三层分类的不同,我们将业务代码主要分为三类,用于接收用户业务请求的代码属于Action类,主要放在cn.edu.hhu.wt.action中。用于处理详细业务的逻辑处理的代码属于service类,主要放在cn.edu.hhu.wt.service包中,负责对数据库操作的属于DAO类,主要放在cn.edu.hhu.wt.DAO中。除此之外,一些公用的如加密解密的工具类,则放在cn.edu.hhu.wt.tools的包中。论文选题:首先教师在系统中出题,出题时,调用请求js.topicAction,然后再TopicService中进行逻辑处理,然后调用TopicDao,进行数据库操作,当操作成功后,会返回验证信息,前台页面根据返回的信息,从而判断是进入成功提示页面还是失败提示页面。上传题目时会上传题目的参考资料,在逻辑处理层TopicService中,进入另外一条处理通道,调用文件处理服务,将文档保存在服务器上。整个流程的时序图如图2.22所示。图2.22 出题教师添加毕业设计题目时序图教师在出题完毕之后,学生可以进行选题操作。系统首先获取所有的可选题目Topic,然后选题selectsubject,当选题成功后,系统就在数据库中生成一条新的选题记录,同时在该题目的选择状态进行修改,并且在题目表Topic中,将是否已选择修改为已选择。图2.23 学生选题过程其中ChooseTopicAction主要的方法包括:input()、list ()、choose ()、cancel ()、myTopic()五个方法。这些方法的具体描述如表2.1所示。表2.1 ChooseTopicAction类主要方法描述方法名参数返回值功能描述Input无String, Struts 2的result名称为学生分页显示题目列表list无String, Struts 2的result名称获取并显示题目的参考资料列表choose无String, Struts 2的result名称判断题目是否可选并完成选题cancel无String, Struts 2的result名称学生取消选题myTopic无String, Struts 2的result名称学生查看自己的选题业务逻辑类TopicService的主要方法描述如表2.2所示。表2.2 TopicService类主要方法描述方法名参数返回值功能描述list无List<Topic>显示所有选题searchPage page,Integer majorID,String tid,String title,Boolean isSelected,Integer yearList<Topic>根据条件查询选题getint idTopic根据ID查找题目deleteint id,String savePathString根据ID删除题目,返回执行结果信息saveString title, String tid,File upload,String uploadFileName,String savePathString教师添加毕业设计题目返回结果信息removeint fileid,String attach,String savePathString删除参考资料返回结果信息cancelfinal int stidString取消选题changeFinalTitleint stid, String ftVoid学生更改最终题目choosefinal String stuID,final String topicIDString学生选题返回结果信息appendint id, String tidFile upload,String uploadFileName,String savePathString添加参考资料返回结果信息参数设置本系统使用XML文件存储系统的运行参数。为减少服务器的开销,当初始运行系统时,我们通过公共类读取文件中的参数。并且公共类采用单例模式,无需每次调用都要创建新的对象。该类主要方法如表2.3所述。表2.3 CommonInfo类主要方法方法名参数返回值功能描述getXXX无String/int获取参数setXXXString/intVoid设置参数值update无无将参数写入文件init无无初始化类时读取文件内参数getInstance无CommonInfo获取CommonInfo类实例用户登录及管理系统在登录时,通过UserAction获取用户的登陆请求,获得请求中的用户名和密码,将用户名和密码传入UserService中进行正确性验证,验证通过后,将前台所需要的数据传输到前台,为了系统安全性,在登陆请求传输时,我们对密码进行了MD5加密,以防止通过截取数据包的方式获取用户名和密码。登陆之后,用户可以修改个人的一些非关键信息,如email地址,同时,用户可重置密码,重置密码的操作,也将由UserAction操作。权限控制为防止有恶意用户进行不当操作,系统加入了权限控制。主要通过自定义的拦截器SecurityAdmin完成。在操作之前判断用户是否有足够的权限可以执行对应的action。该类放在cn.edu.hhu.wt.admin包内。通过注解的方式我们进行权限控制。当执行方法时,拦截器会获取action类中相关方法的注解,由此可以判断当前用户是否有权限执行该方法。如果有则执行该方法,否则在后台添加错误信息传递到前台提醒用户登录。 SecurityAdmin工作流程如图2.24所示。图2.24 SecutrityAdmin工作流程2.2.4数据库设计数据库在信息管理系统中,处于中心位置,用户可操作的所有信息都存储在数据库中。设计优良的数据库对于系统的运行效率有着极大的提高。本节对数据库系统和表结构的设计进行了讲解。(1) 数据库系统MySQL是一个关系型数据库管理系统,由瑞典MySQL AB公司开发,目前属于Oracle公司。Mysql是最流行的关系型数据库管理系统,在WEB应用方面MySQL是最好的RDBMS(Relational Database Management System:关系数据库管理系统)应用软件之一.它分为社区版和商业版,由于其体积小、速度快、总体拥有成本低,尤其是开放源码这一特点,一般中小型网站的开发都选择MySQL作为网站数据库。(2) 数据库表设计学生和教师的信息表2.4 Student表结构列名类型长度约束备注IdVarchar13主键学号GradeInt11非空年级,如2007NameVarchar10学生姓名SexVarchar1男,女MajorIDInt11外键(Major.id)专业号ClassIDVarchar20外键(Class.id)班级号EmailVarchar30PhoneVarchar20MinorIDInt11外键(Major.id)表2.5 Teacher表结构列名类型长度约束备注IdInt11主键教师号NameVarchar10教师姓名SexVarchar1男,女MajorIDInt11外键(Major.id)专业号Desc_Varchar200000EmailVarchar30PhoneVarchar20学生表(Student)用于存储学生的学号、年级、姓名、性别、专业代码、班级代码、邮箱地址、电话号码等相关身份信息,表结构参见表2.4。外键专业号和班级号则分别对应专业表(Major)和班级表(Class)。教师表(Teacher)用于存储出题教师的号码、姓名、性别等身份信息,表结构参见表2.5。专业号(majorID)通过外键参照专业表(Ma