基于javaee的在线考试系统_第1页
基于javaee的在线考试系统_第2页
基于javaee的在线考试系统_第3页
基于javaee的在线考试系统_第4页
基于javaee的在线考试系统_第5页
已阅读5页,还剩30页未读 继续免费阅读

下载本文档

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

文档简介

基于JAVAEE的在线考试系统【内容提要】在线考试系统旨在实现考试的无纸化管理,对一些科目的考试可以通过互联网络或局域网进行,方便校方考务的管理,也方便了考生,尤其适合考生分布广,不易集中的远程教育。我主要开发系统的后台管理系统JAVA在线考试管理子系统,它包括试题管理、考生管理、试卷管理、试卷自动审批等功能。本论文主要介绍了对JAVAEE在线考试系统的分析、设计和开发的全部过程。运用ER图,程序流程图等对在线系统的设计过程进行详细的说明。全文共分为开发方案、需求分析、系统设计、关键技术解决,结论五部分。开发方案中主要介绍开发在线考试系统得目的、开发方案的选择及开发框架的技术的确定;需求分析介绍了在线考试系统的总体需求及系统各模块的功能需求;系统设计介绍了系统设计的指导思想、数据库的设计、系统模块的设计;关键技术介绍了在具体实现时需解决的一些技术,如开发框架的整合技术、开发框架与数据库的连接及数据的备份与还原。【关键词】JSP,SERVLET,STRUTS,JAVA,MYSQL数据库,B/S模式ONLINEEXAMINATIONSYSTEMBASEONJAVA【ABSTRACT】ONLINEEXAMINATIONSYSTEMTHEAIMISCARRYOUTEXAMINATIONOFHAVENOTHEPAPERTURNAMANAGEMENT,CANCARRYONTHROUGHINTERNETNETORBUREAUAREANETTOSOMEEXAMINATIONSOFCATEGORIES,CONVENIENTSCHOOLSQUARETESTTHEMANAGEMENTOFDUTY,ALSOCONVENIENTTHEEXAMINEEISPARTICULARLYSUITABLEFOREXAMINEETODISTRIBUTEWIDELYANDNOTEASILYCONCENTRATEDOFLONGRANGEEDUCATIONIMAINLYDEVELOPTHESYSTEMJAVAEEOFTHEBACKSTAGEMANAGEMENTSONLINEEXAMINATIONMANAGEMENTSUBSYSTEMOFSYSTEMANDITINCLUDESTOTRYTHEMANAGEMENT,ONLINECREATIONOFAMANAGEMENT,EXAMINEETOTRYBOOK,CONTROLTHECONSTITUTIONTHATTHESTUDENTEXAMINEANDTRYANEXAMINATIONANDAPPROVALETCFUNCTIONTHISTHESISMAINLYINTRODUCEDTOMANAGETHEANALYSIS,DESIGNOFTHESUBSYSTEMANDALLPROCESSESOFTHEDEVELOPMENTTOJAVAEESONLINEEXAMINATIONMAKEUSEOFERDIAGRAM,PROCEDUREFLOWCHARTETCTOONLINEMANAGETHEDESIGNPROCESSOFSUBSYSTEMTOCARRYONEXPATIATIONTHEFULLTEXTISTOTALLYDIVIDEDINTOTHEDESIGN,KEYTECHNIQUEOFTHEANALYSIS,SYSTEMOFTHEDEVELOPMENTPROJECT,NEEDTOSOLVE,CONCLUSIONFIVEPARTDEVELOPTHEMAININTRODUCTIONINTHEPROJECTDEVELOPSONLINEEXAMINATIONSYSTEMPURPOSE,DEVELOPMENTPROJECTOFCHOICEANDDEVELOPMENTFRAMEOFTHEASSURANCEOFTECHNIQUETHENEEDANALYSISINTRODUCEDTHETOTALNEEDOFTHEONLINEEXAMINATIONSYSTEMANDTHEFUNCTIONREQUESTOFEACHMOLDOFSYSTEMPIECETHESYSTEMDESIGNINTRODUCEDTHEDESIGN,SYSTEMMOLDOFTHEINSTRUCTIONTHOUGHT,DATABASEOFSYSTEMDESIGNTHEDESIGNOFTHEPIECETHEKEYTECHNIQUEINTRODUCEDATCONCRETECARRYOUTNEEDSOMETECHNIQUESFORSOLVE,SUCHASDEVELOPMENTFRAMEOFINTEGRATIONTECHNIQUE,DEVELOPMENTFRAMEWITHTHEDATABASELINKANDTHEBACKUPANDREVIVIFICATIONOFDATAKEYWORDSERVLET,JSP,JAVA,MYSQL,MODELOFB/S目录前言21、开发方案311问题分析312项目的目的313方案的选择414开发框架技术62、开发软件721任务的概述722运行环境73、系统设计831指导思想8、B/S结构开发思想81、系统工程的流程思想82、面向对象机制的设计思想93、代码分层思想9432系统结构图10、本系统分为学生考试子系统101、系统的用例图如下112、系统部分模块类图12333数据库设计15、主要数据库表的介绍151、数据库ER图152、数据库表的创建语句及表的属性16334系统模块部分设计17341用户登录17342考试主界面19343管理里员后台登录244、关键技术的问题2941系统的构架和数据库的2942框架的整合技术3043映射文件STRUTSCONFIGXML3244访问数据库的工具345、结束语36参考文献36致谢37前言现今,不管是国内还是国外的各大厂家,都在不断的推出一系列的考试、认证。如微软的MCSE、CISCO的CCNA等。我们国家的自考或是成考,以及各省市的各种考试,现在都在朝着信息化的道路前进在走。我们相信在今后这一系列的考试将会走向网络化考试的。这样才是符合信息发展的。所以我们考虑这是一个机会。我们要给不同的考试一个好的解决方案。这个方案在技术上来讲我们是采用B/S模式。在WINDOWS/LINUX平台上,使用IE浏览器,完成抽题、考试、交卷等考试任务。各考点模块通过网络获取题库,考点模块按照题库中的抽题策略,自动给每个考生生成一份试卷,考生在线作答,考试结果数据通过网络回收,系统自动进行判分,生成考试成绩和统计数据。“在线考试系统”是集合现代考试理论、方法和现代信息技术手段的智能化网上考试系统,为学生个性化学习提供“灵活、方便、科学、公平”的“个别化考试服务”,是终结性评价系统。学生可以随时、随地进行课程结业考试。现阶段,学校与社会上的各种考试大都采用传统的考试方式,在此方式下,组织一次考试至少要经过五个步骤,即人工出卷,考生考试,人工阅卷,成绩评估和试卷分析。显然,随着考试类型的不断增加及考试要求的不断提高,教师的工作量将会越来越大,并且其工作将是一件十分烦琐和非常容易出错的事情,可以说传统的考试方式已经不能适应现代考试的需要。随着计算机应用的迅猛发展,网络应用不断扩大,如远程教育和虚拟大学的出现等等,且这些应用正逐步深入到千家万户。人们迫切要求利用这些技术来进行在线考试,以减轻教师的工作负担及提高工作效率,与此同时也提高了考试的质量,从而使考试更趋于公证、客观、更加激发学生的学习兴趣。例如目前许多国际著名的计算机公司所举办的各种认证考试绝大部分采用这种方式。为了适应新形势的发展,我们推出了这一系统,使其尽快在各类考试中发挥高效,便捷的作用,把老师从繁重的工作中解脱出来。1、开发方案11问题分析传统的学校教学中,进行一场考试,要求老师刻试卷、印试卷、安排考试、监考、收集试卷、评改试卷、讲评试卷和分析试卷,这是一个繁杂的过程,需要大量人力、物力与时间的投入,已经越来越不适应学校信息化建设与现代教学的需要。尤其在远程网络教学中,学生分布广,不易统一集中安排考试,给校方和学生带来了众多的不便。而在线考试系统,正是信息化建设的产物,它是传统考场的延伸。它可以利用互联网络和局域网,随时随地的对学生进行考试,加上数据库技术的利用,大大简化了传统考试的过程,因此在线考试是电子化教学的不可缺少的辅助手段。在当今信息时代,计算机技术与网络技术越来越广地应用于各个领域,改变着人们的学习、工作、生活乃至思维方式,也引起了教育领域的重大变革。将计算机与网络技术应用于现代高等教育中,是现代高等教育发展的需要,也是改革教育模式,提高学校教学效果和教学效率、提高科研和管理水平的必要手段。12项目的目的在线考试系统的总体目标在线考试系统可以帮助教师完成一个考试从题目设计,考试安排,考试实施,考卷批改到分数统计总结的所有工作。所有的考试数据和其它数据库需要一种主流的方式进行存储和管理,例如使用数据库技术。考试数据的存放和处理必须对考试保密,需要一定的安全性保障。对考试的系统目标这个软件是分布式的,这意味着只要有考试客户端可以连接到考试应用服务器,任何考生在任何地方进行身份确认,都能完成考试。题目最好有一定的稳定性和随机性。稳定性可以保证每一次考试对每一个考生是公平的,随机性可以避免作弊的发生。考试的部分结果在考生考完之后就可以知道,同时提供一个机会让考生知道自己哪里做错了,并给出反馈信息说明理由。对教师的系统目标提供一个功能全面的考核管理客户端,可以进行考试设计和安排。通过管理客户端,管理员可以进行考试的身份管理。考生的考试结果可以被保存下来,供进行分析统计和察看。13方案的选择开发在线考试系统,提出以下解决方案选择MYSQL作为后台的数据库,选择JAVA、JSP、JAVASCRIPT、HTML,SERVLET,STRUTS,作为应用程序开发工具,运用TOMCAT服务器技术,整个系统完全基于B/SBROWSER/SERVER,采用最流行的MVC模式开发JAVA简介JAVA是SUN公司推出的新的一代面向对象程序设计语言,特别适合于INTERNET应用程序开发。JAVA的产生与流行是当今INTERNET发展的客观要求,JAVA是一门各方面性能都很好的编程语言,它的基本特点是简单、面向对象、分布式、解释的、健壮的、安全的、结构中立的、可移植的、性能很优异的、多线程的、动态的,特别适合在INTERNET环境上开发的应用系统。WEB应用程序开发环境JSP技术JSP的全称是JAVASERVERPAGES,它是SUN推出的一种动态网页技术标准。它在传统的静态页面文件(HTML,HTM)中加入JAVA程序片段和JSP标记,就构成了JSP页面。JSP具有以下的优点将业务层与表示层分离使用JSP技术,网络开发人员可充分使用HTML来设计页面显示部分(如字体颜色等),并使用JSP指令或者JAVA程序片段来生成网页上的动态内容;能够跨平台JSP支持绝大部分平台,包括现在非常流行的LINUX系统,应用非常广泛的APACHE服务器也提供了支持JSP的服务;组件的开发和使用很方便如ASP的组件是由C,VB等语言开发的,并需要注册才能使用;而JSP的组件是用JAVA开发的,可以直接使用;一次编写,处处运行作为JAVA开发平台的一部分,JSP具有JAVA的所有优点,包括WRITEONCE,RUNEVERYWHERETOMCAT应用服务器目前支持JSP的应用服务器是较多的,TOMCAT是其中较为流行的一个WEB服务器,被JAVAWORLD杂志的编辑选为2001年度最具创新的JAVA产品,可见其在业界的地位。TOMCAT是一个免费的开源的SERVLET容器,在TOMCAT中,应用程序的部署很简单,你只需将你的WAR放到TOMCAT的WEBAPP目录下,TOMCAT会自动检测到这个文件,并将其解压。你在浏览器中访问这个应用的JSP时,通常第一次会很慢,因为TOMCAT要将JSP转化为SERVLET文件,然后编译。编译以后,访问将会很快。TOMCAT也具有传统的WEB服务器的功能处理HTML页面。但是与APACHE相比,它的处理静态HTML的能力就不如APACHE。我们可以将TOMCAT和APACHE集成到一块,让APACHE处理静态HTML,而TOMCAT处理JSP和SERVLET。TOMCAT是一个很好的工具,不仅仅因为其免费,功能强大,更因为其开放性,越来越受到人们的重视。MYSQL数据库MYSQL是由MYSQLAB公司开发的,并支持全世界最流行的开源SQL数据库的管理系统,目前版本很多,MYSQL50对存储过程,触发器和试图有了很好的支持,成为开源数据库的首选B/S开发模式V伴随着INTERNET的迅速发展,计算机技术正在由基于C/S(CLIENT/SERVER)模式的应用系统转变为基于B/S模式的应用系统。过去,网络软件的开发都采用C/S(CLIENT)模式,在这种模式下,主要的业务逻辑都集中于客户端程序,因此,必然导致以下问题系统安装、调试、维护和升级困难。由于客户端的硬件配置可能存在差异,软件环能各不相同,因此,在安装时,必须对每一个客户端分别进行配置,同样,在软件升级时也要对客户端分别处理。在整个系统中,业务逻辑和用户界面都集中到了客户端,必然会增加安全隐患。B/S模式带来了巨大的好处开发成本及维护成本降低。由于B/S架构管理软件只安装在服务器端(SERVER)上,即应用程序在部署、升级、维护时,只需要在服务器端进行配置就可以了,网络管理人员只需要管理服务器就行了,用户界面主要事务逻辑在服务器(SERVER)端完全通过WWW浏览器实现,极少部分事务逻辑在前端(BROWSER)实现,所有的客户端只有浏览器,网络管理人员只需要做硬件维护。良好的安全性能,防火墙技术可以保证后台数据库的安全性。所有的配置工作都集中在服务器端且所有客户端请求都是通过DBMS来访问数据库,从而大大减少了数据直接暴露的风险。14开发框架技术对于框架技术,我们采用STRUTSJAVABEANHIBERNATE的整合,其实任何一种框架都可以完成我们的项目,但我们选择三种框架的组合是因为三种框架各有好处,我们利用它们的优点,来避免它们的缺点,充分利用JAVA技术在WEB的应用。STRUTS是应用比较广泛的一种表现层框架STRUTS是一个为开发基于模型MODEL视图VIEW控制器CONTROLLERMVC模式的应用架构的开源框架,是利用SERVLET,JSP和CUSTOMTAGLIBRARY构建WEB应用的一项非常有用的技术。由于STRUTS能充分满足应用开发的需求,简单易用,敏捷迅速。它使用服务层框架可以将JAVABEANS从JSP/SERVLET中分离出来,而使用表现层框架则可以将JSP中剩余的JAVABEANS完全分离,这部分JAVABEANS主要负责显示相关信息,一般是通过标签库(TAGLIB)实现,不同框架有不同自己的标签库,STRUTS是应用比较广泛的一种表现层框架。JAVABEAN业务层的业务用户可以使用JAVABEAN将功能、处理、值、数据库访问和其他任何可以用JAVA代码创造的对象进行打包,并且其他的开发者可以通过内部的JSP页面、SERVLET、其他JAVABEAN、APPLET程序或者应用来使用这些对象。用户可以认为JAVABEAN提供了一种随时随地的复制和粘贴的功能,而不用关心任何改变。最初,JAVABEAN的目的是为了将可以重复使用的软件代码打包标准。特别是用与帮助厂家开发在综合开发环境(IDE)下使用的JAVA软件部件。这些包括如GRID控件,用户可以将该部件拖放到开发环境中。从此,JAVABEAN就可以扩展为一个JAVAWEB应用的标准部件,并且JAVABEAN部件框架已经扩展为企业版的BEAN(EJB)。HIBERNATE通过持久层的框架将数据库存储从服务层中分离出来它是O/RMAPPING的一种实现是目前在JAVA界使用非常广泛的O/RMAPPING的一种实现,可以实现关系型数据库和对象之间的映射。用来开发数据库系统非常方便,可以将数据库和程序的设计融合在一起。表现层和服务层的分离是通过两种框架达到目的的,剩余的就是持久层框架了,通过持久层的框架将数据库存储从服务层中分离出来就是其目的,持久层框架有两种方向直接自己编写JDBC等SQL语句(如IBATIS);使用O/RMAPPING技术实现的HIBERNATE和JDO技术;当然还有EJB中的实体BEAN技术。HIBERNATE的工作原理是通过文件把值对象和数据库表之间建立起一个映射关系,这样,我们只需要通过操作这些值对象和HIBERNATE提供的一些基本类,就可以达到使用数据库的目的。例如,使用HIBERNATE的查询,可以直接返回包含某个值对象的列表(LIST),而不必向传统的JDBC访问方式一样把结果集的数据逐个装载到一个值对象中,为我们的编码工作节省了大量的劳动。HIBERNATE提供的HQL是一种类SQL语言,是提供对象化的数据库查询方式,但HQL在功能和使用方式上都非常接近于标准的SQL2、开发软件21任务的概述在线考试管理子系统主要实现题库管理、在线制作试卷、在线控制考试、自动评分(客观题部分)、自动交卷、考生管理、成绩查询、试卷管理等功能,充分利用计算机科学与技术,改变传统的考试操作方式,实现无纸化考试的模式。系统需要解决的主要问题此系统我们不区分个人具体做那些模块,都需要把整个的系统的每个模块做一边以下是我们分析题库管理用于对单个试题的增、删、改、查等基本维护试卷管理随机组卷、还可对考生的基本信息进行维护。考试管理对考试分配试卷,并对考试的基本信息进行维护评卷管理对试卷的客观题自动的批改和查询成绩管理对每次考试的学生成绩的基本信息进行维护,并提供学生成绩的统计管理用户管理对使用本系统的用户基本信息进行维护,用户多数为系统管理员,学生22运行环境硬件需求PIII/256M/10G及以上配置,要求为考试系统分配足够的数据库磁盘空间推荐配置PIV2G/512M/40G操作系统需求WINDOWS2000及以上操作系统推荐,也可以使用SUNSOLARIS等LINUX操作系统数据库软件需求MYSQL数据库推荐,也可以使ORACLE8I/ORACLE9I数据在线考试管理子系统用户管理题库管理试卷管理考试管理评卷管理成绩管理库中间件软件需求TOMCATMYECLIPSE60系列服务器3、系统设计31指导思想、B/S结构开发思想1B/S(BROWSER/SERVER)结构即浏览器和服务器结构。它是随着INTERNET技术的兴起,对C/S结构的一种变化或者改进的结构。在这种结构下,用户工作界面是通过WWW浏览器来实现,极少部分事务逻辑在前端(BROWSER)实现,但是主要事务逻辑在服务器端(SERVER)实现,形成所谓三层(3TIER)结构。一个三层架构的应用程序由三部分组成,这三部分各自分布在网络中的不同地方。这三个部分分别是工作站或表示层接口、事务逻辑、数据库以及与其相关的程序设计。在一个典型的三层架构应用程序中,应用程序的用户工作站包括提供图形用户界面(GUI)的程序设计和具体的应用程序入口表格或交互式窗口。事务逻辑处在局域网(LAN)服务器或其他共享主机上,它作为响应工作站所发出客户请求的服务器,而相对于处于大型机的第三层它是作为客户端,并且决定需要什么数据以及数据存储在哪里。第三层包括数据库以及处理读写以及访问数据库的程序。然而应用程序的设计可能比这个架构要复杂,对于大型程序来说,这个三层模式是一种比较简便的考虑方法。这种应用程序的设计使用客户/服务器模式,各层可以同时开发,并且可以由不同的成员组用不同的语言来开发。因为各个层次的开发不会影响其他层次,所以这种模型对于进一步开发软件是很方便的。这样就大大简化了客户端电脑载荷,减轻了系统维护与升级的成本和工作量,降低了用户的总体成本(TCO)。以目前的技术看,局域网建立B/S结构的网络应用,并通过INTERNET/INTRANET模式下数据库应用,相对易于把握、成本也是较低的。它是一次性到位的开发,能实现不同的人员,从不同的地点,以不同的接入方式(比如LAN,WAN,INTERNET/INTRANET等)访问和操作共同的数据库;它能有效地保护数据平台和管理访问权限,服务器数据库也很安全。特别是在JAVA这样的跨平台语言出现之后,B/S架构管理软件更是方便、快捷、高效。、系统工程的流程思想2我们在系统开发过程中,采用软件工程的开发管理,在开发的过程中也遵循软件工程的思想,软件工程的主要环节有人员管理(自己模拟)、项目管理(我的小组模拟)、可行性与需求分析、系统设计、程序设计、测试、维护等,如图11所示。、面向对象机制的设计思想3所有计算机均由两种元素组成代码和数据。精确的说,有些程序是围绕着“什么正在发生“而编写,有些则是围绕“谁正在受影响“而编写的。第一种编程方式叫做“面向过程的模型“,按这种模型编写的程序以一系列的线性步骤代码为特征,可被理解为作用于数据的代码。如C等过程化语言。第二种编程方式叫做“面向对象的模型“,按这种模型编写的程序围绕着程序的数据对象和针对该对象而严格定义的接口来组织程序,它的特点是数据控制代码的访问通过把控制权转移到数据上,面向对象的模型在组织方式上有抽象、封装、继承和多态的好处。、代码分层思想4由于采用B/S设计模式分层思想,同时根据软件工程的管理思想及系统分析的设计与分析的思想进行系统的开发,利用JAVA语言开发WEB应用程序,提供STRINGHIBERNATESPRING框架对系统的程序代码结构进行分层。分层的策略如下SERVICELOCATOR表示层STRUTSSTRUTSACTION,ACTIONFORM,JSP,STRUTSCONFIGXML,ETCDAOCLASSES业务层JAVABEANHIBERNATESESSIONMANAGEMENT持久层HIBERNATEDATASOURCETRANSACTIONSBUSINESSSERVICECLASSESQUERYLANGUAGESUPPORTANDOTHERHIBERNATESERVICESDOMAINMODELBUSINESSOBJECTSSTRUTSJAVABEANHIBERNATE架构32系统结构图、本系统分为学生考试子系统和考试管理子系统,整个系统的结构图如下学生1查看成绩查询考生考试考生登录删除题目查询题目学生管理添加题库试题管理删除考生查询考生添加考生在线考试系统考生前台后台管理、系统的用例图如下2、系统部分模块类图3用户的管理的类图后台管理的模块类图系统部分功能时序图考生登录时序图管理员操作时序图33数据库设计、主要数据库表的介绍1根据系统需要和考试需要,设立了如下数据库表学生表STUDENT用来保存学生的信息,题库表TABLE_QUESTION用来保存题库的信息成绩表EXAMREPORT保存考生考的成绩试卷表EXAMPAPER保存考卷的信息、数据库ER图2数据库设计的逻辑实体关系图表示如下、数据库表的创建语句及表的属性3题库表CREATETABLETABLE_QUESTIONIDINT10NOTNULLAUTO_INCREMENT,问题主键CONTEXTVARCHAR150,内容ANSWER1VARCHAR150,答案ANSWER2VARCHAR150,ANSWER3VARCHAR150,ANSWER4VARCHAR150,ANSWERVARCHAR150,标准答案PRIMARYKEYID主键定义学生表CREATETABLESTUDENTSTU_IDINTNOTNULLAUTO_INCREMENT,主键SNOVARCHAR150,学号TABLE_QUESTIONPKIDCONTEXTANSWER1ANSWER2ANSWER3ANSWER4ANSWERPRIMARYKEYIDEXAMPAPERPKIDFKFKERIDINTNULL,QIDINTNULL,ANSWERVARCHAR150PRIMARYKEYIDSTUDENTPKSTU_IDSNONAMEPASSWORDPRIMARYKEYSTU_IDEXAMREPORTPKIDFKSTIDINT,AUTO_INCREMENT,SCOREINT,TERMVARCHAR50,NAMEVARCHAR150,名字PASSWORDVARCHAR150,密码GENDERVARCHAR15,性别CLASSNAMEVARCHAR150,班级HUMANIDVARCHAR150,身份证PHONEVARCHAR150,电话ADDRESSVARCHAR150,地址EMAILVARCHAR150,邮件PRIMARYKEYSTU_ID主键定义考卷表CREATETABLEEXAMPAPERIDINTNOTNULLAUTO_INCREMENT,主键的自增机制ERIDINTNULL,成绩的ID引用,QIDINTNULL,题目的ID引用不ANSWERVARCHAR150,问定义题PRIMARYKEYID主键成绩表CREATETABLEEXAMREPORTIDINTNOTNULLAUTO_INCREMENT,SCOREINT,分数STIDINT,学生的ID引用TERMVARCHAR50,学期PRIMARYKEYID主键定义34系统模块部分设计341用户登录对于已注册的用户根据用户名和密码进行登陆,登录界面如下1填写您的学号、密码2击“登陆”按钮;3用户名、密码都正确,登陆成功,进入考试主界面;4主要代码5/登录ACTION/STUDENTSERVICESTSNEWSTUDENTSERVICEIMP/调STUDENT用后台的业务/EXAMSERVICEESNEWEXAMSERVICEIMPL/创建试卷的业务方法PUBLICACTIONFORWARDLOGINACTIONMAPPINGMAPPING,ACTIONFORMFORM,HTTPSERVLETREQUESTREQUEST,HTTPSERVLETRESPONSERESPONSETHROWSEXCEPTIONSTRINGTARGET“F“/标识STRINGSNOREQUESTGETPARAMETER“SNO“/得到页面中的SNO属性的值STRINGPASSWDREQUESTGETPARAMETER“PASSWORD“/得到页PASSWORDSTUDENTSERVICESERVICENEWSTUDENTSERVICEIMPTRY/调用学生的业务方法,通过SNO来得到一个学生的实体STUDENTSTUSTSGETSTUDENTBYSNOSNOIFSTUNULL/以下是对登录用户的验证IFSTUGETPASSWORDEQUALSPASSWDHTTPSESSIONSESSIONREQUESTGETSESSIONTRUESESSIONSETATTRIBUTE“ST“,STUSESSIONSETATTRIBUTE“QFLG“,“0“TARGET“T“SYSTEMOUTPRINTLN“SNO“STUGETSNOIFSTUGETSNOEQUALS“ADMIN“TARGET“ADMIN“ELSEREQUESTSETATTRIBUTE“STINFO“,“密码错误“ELSEREQUESTSETATTRIBUTE“STINFO“,“用户不存在“CATCHEXCEPTIONEEPRINTSTACKTRACERETURNMAPPINGFINDFORWARDTARGET342考试主界面主要有模块组成,考试和当场的成绩查询,考生成功的登录后,在界面上选择自己所要参加考试的学期,当点击参加考试,就会触发后台的一些业务,随机的生成一份试卷考生卷的界面1考卷的生成是本系统中的最核心的,当考生点击参加考试,页面上的事件会提交给ACTION中的处理的相应的生成试卷方法,ACTION只是起到一种控制流程的作用,是MVC模式中的CONTROL层中,此时会调用相应后台生成试卷的核心算法,核心算法如下核心的算法/生成试卷的列表方法PUBLICLISTGENERATORPAPERINTNUMSESSIONSESSIONSESSIONFACTORYMANAGERCURRENTSESSION/通过SESSIONFACTORY来的到一个SESSION对象INTTEMP0/INTRD0/题目的序列号INTCOUNT0/总成绩LISTQSNEWARRAYLIST/问题的列表QUESTIONQNEWQUESTION/创建题库的实例对象STRINGHQL“SELECTMAXIDFROMTABLE_QUESTION“/从TABBLE_QUESTION中得到最大的ID号用来判断范围RDINTEGERPARSEINTSESSIONCREATESQLQUERYHQLUNIQUERESULTTOSTRING/得到唯一的题目号通过HQLSTRINGHQL1“SELECTCOUNTFROMTABLE_QUESTION“/计算从题库表中的得到的题目数COUNTINTEGERPARSEINTSESSIONCREATESQLQUERYHQL1UNIQUERESULTTOSTRING/得到题目的总数IFCOUNTSELECTSTUDENTEXAMPAPERINTERIDSESSIONSESSIONSESSIONFACTORYMANAGERCURRENTSESSIONRETURNLISTSESSIONCREATEQUERY“FROMEXAMPAPERWHEREERID“SETINTEGER0,ERID/通过学号和学期来查询考试的成绩PUBLICEXAMREPORTSELECTSTUDENTSCOREINTSNO,STRINGTERMSESSIONSESSIONSESSIONFACTORYMANAGERCURRENTSESSIONRETURNEXAMREPORTSESSIONCREATEQUERY“FROMEXAMREPORTWHERESTIDANDTERM“SETINTEGER0,SNOSETSTRING1,TERMTRIMUNIQUERESULT/提交学生的成绩将其保存到数据库中PUBLICINTEGERSUBMITSTUDENTS,LISTEPSSESSIONSESSIONSESSIONFACTORYMANAGERCURRENTSESSIONEXAMREPORTERNEWEXAMREPORTTRYFOREXAMPAPEREPEPS/迭代将试卷列表存到数据库中ERADDEXAMPAPEREPSESSIONSAVEEPSADDEXAMREPORTER/将考生考的成绩放到数据库中SESSIONSAVEERSYSTEMOUTPRINTLN“/测试是否成功CATCHEXCEPTIONEEPRINTSTACKTRACERETURNNULLRETURNERGETIDPUBLICINTRDMINTN/取随机数INTTEMP0RANDOMRANDOMRANDOMNEWRANDOMTEMPMATHABSRANDOMNEXTINTNRETURNTEMP1PUBLICINTAUTOGRADEINTERID/自动的评分功能SESSIONSESSIONSESSIONFACTORYMANAGERCURRENTSESSION/使用内连接来从数据库中取得相应的题目和答案来检查对了几题STRINGHQL“SELECTCOUNTFROMEXAMPAPERASEPINNERJOINTABLE_QUESTIONASQONEPANSWERQANSWERANDEPQIDQIDANDEPERID“INTCOUNTINTEGERPARSEINTSESSIONCREATESQLQUERYHQLSETINTEGER0,ERIDUNIQUERESULTTOSTRINGRETURNCOUNT/返回对的题目总数/得到考生考试的成绩PUBLICEXAMREPORTGETEXAMREPORTINTIDSESSIONSESSIONSESSIONFACTORYMANAGERCURRENTSESSIONRETURNEXAMREPORTSESSIONGETEXAMREPORTCLASS,ID/此方法是通过反射机制来得到成绩考生的成绩查询实现2/查询分数的ACTIONPUBLICACTIONFORWARDSEEKSCOREACTIONMAPPINGMAPPING,ACTIONFORMFORM,HTTPSERVLETREQUESTREQUEST,HTTPSERVLETRESPONSERESPONSETHROWSEXCEPTIONINTSCORE0HTTPSESSIONHSREQUESTGETSESSIONFALSE/得到一个会话空间,STRINGTERMREQUESTGETPARAMETER“SELECT“/从页面中得到SELECT参数STUDENTSSTUDENTHSGETATTRIBUTE“ST“/从会话中得到一个学生的实体TRYSCOREESSELECTSTUDENTSCORESGETID,TERMGETSCORE/调用一些后台的方法来取得学生考试的成绩CATCHEXCEPTIONEREQUESTSETATTRIBUTE“SCOREINFO“,“无成绩“/异常的处理REQUESTSETATTRIBUTE“SCOREINFO“,SCORE/将取得的成绩放到请求的页面中RETURNMAPPINGFINDFORWARD“LIST“/实现页面的跳转343管理里员后台登录操作的主要界面和代码题库管理模块的试题维护1试题维护主界面选择题库管理中试题维护是试题维护的主界面,展示了试题维A护的主要信息;可进行试题的添加、删除(单条删除)、批量查询等操作;试题的录入可进行多种试题的录入,每一种试题被录入到每一个试题库中,如B填空方式会填到填空表中、多选方式会填到多选题库中;点击主界面中录入,可弹出试题录入界面,输入试题的信息后,点击提交即可,界面如下试题的列表,试题列表的生成也是通过ACTION中相应的方法来调用后台的业务来C实现的,并可以对试题进行修改,删除,界面如下PUBLICACTIONFORWARDQLISTACTIONMAPPINGMAPPING,ACTIONFORMFORM,HTTPSERVLETREQUESTREQUEST,HTTPSERVLETRESPONSERESPONSETHROWSEXCEPTIONLISTQSQSIGETQUESTIONALL/创建一个LIST列表用来存放题目REQUESTSETATTRIBUTE“QS“,QSRETURNMAPPINGFINDFORWARD“LIST“PUBLICACTIONFORWARDDELQUESTIONACTIONMAPPINGMAPPING,ACTIONFORMFORM,HTTPSERVLETREQUESTREQUEST,HTTPSERVLETRESPONSERESPONSETHROWSEXCEPTIONINTIDINTEGERPARSEINTREQUESTGETPARAMETER“QID“/强制转化,使用到了包装类,因为从页面上得到的QID是一个字符串的格式QUESTIONQESSELECTQUESTIONIDBOOLEANBIFQNULLBQSIDELQRETURNMAPPINGFINDFORWARD“DEL“考生信息模块的维护2考生的添加界面,和源码A对考生信息的维护显示所有考生,和删除考生的界面,源码B/查询所有的学生PUBLICACTIONFORWARDLISTALLACTIONMAPPINGMAPPING,ACTIONFORMFORM,HTTPSERVLETREQUESTREQUEST,HTTPSERVLETRESPONSERESPONSETHROWSEXCEPTIONLISTSTDSSTSGETSTUDENTALLREQUESTSETATTRIBUTE“STDS“,STDSRETURNMAPPINGFINDFORWARD“LIST“PUBLICACTIONFORWARDDELSTUDENTACTIONMAPPINGMAPPING,ACTIONFORMFORM,HTTPSERVLETREQUESTREQUEST,HTTPSERVLETRESPONSERESPONSETHROWSEXCEPTIONINTIDINTEGERPARSEINTREQUESTGETPARAMETER“SID“STUDENTSSTSGETSTUDENTBYIDIDBOOLEANBIFSNULLBSTSDELSRETURNMAPPINGFINDFORWARD“DEL“4、关键技术的问题41系统的构架和数据库的对于数据库的连接,我们的数据访问接口采用JDBCODBC桥数据驱动程序,以纯JAVA的方式来连接数据库,为访问不同的数据库提供统一的接口。JDBC数据库驱动程序是把JDBC调用翻译成厂商专用API的调用。开放数据连接(ODBC)最初是为微软操作系统上的SQL提供API标准,后来也在其他的平台上提供了支持。ODBC为直接访问数据定义了一组函数,而不是在客户应用程序中嵌入SQL。JDBCODBC桥在JDBCAPI和ODBCAPI之间提供了一个桥梁,这个桥把标准的JDBC调用翻译成对应的ODBC调用,然后通过ODBCAPI把它们发送到ODBC数据源。在选择了数据访问接口后,开始利用这个原理进行具体的连接了。由于我们开发时是利用MVC的设计模式,所以在此我们的数据库连接是封存在M中的,即只要我们和M层连接上,就已经连接上数据库了。在M上我们采用HIBERNATE框架技术,以下是一个非常简要的HIBERNATE体系结构的概要图从这个图可以看出,HIBERNATE使用数据库和配置信息来为应用程序提供持久化服务(以及持久的对象)。我们只需在HIBERNATECFGXML中配置以下语句即可TRUETRUEMYSQLJDBCMYSQL/1270013306/EXAMROOT1234COMMYSQLJDBCDRIVERORGHIBERNATEDIALECTMYSQLDIALECT42框架的整合技术首先我们要建立WEB应用程序名字为ONLINEEXAM的项目,其基本内容及结构如下的形式先将项目中所需要的基础类库及各框架的类库放到LIB文件夹子下面,所需要的主要类库如下STRUTS2CORE206JARXWORK201JARHIBERNATE3JARCOMMONSBEANUTILSJARCOMMONSLANGJARMSSQLSERVERJAR然后在CLASSES中建立各框架的默认使用的文件STRUTSXMLHIBERNATECFGXMLAPPLICATIONCONTEXTXML到此,STRUTSJAVABEANSPRING初步配置完成。我们还需要具体的更改WEBXML服务器配置文件WEBXML文件中的配置ACTIONORGAPACHESTRUTSACTIONACTIONSERVLETCONFIG/WEBINF/STRUTSCONFIGXMLDEBUG3DETAIL30ACTIONDOLOGINJSP43映射文件STRUTSCONFIGXML/ACTIONFORM的配置问题/注PATH是页面中要跳转到ACTION中处理的方法,TYPE是系统所写的ACTION所在的位置,SCOPE是页面的传来的参数所保留的作用范围,默认的话也是SESSION,SCOPE有四种,PAGE,REQUEST,SESSION,APPLICATION四种作用范围是一次的增大以下的ACTION中的参数都是一样的/44访问数据库的工具主要是访问数据库的工具类本系统采用的是封装了JDBC的HIBERNATE来进行和数据库进行操作代码如下PACKAGECOMAHUTOAUTILIMPORTORGHIBERNATEHIBERNATEEXCEPTIONIMPORTORGHIBERNATESESSIONIMPORTORGHIBERNATESESSIONFACTORYIMPORTORGHIBERNATECFGCONFIGURATION/目的是为了代码的复用,减少重复的代码,并且采用的是一种线程安全的方法PUBLICCLASSHBNUTILPRIVATESTATICFINALTHREADLOCALTHREADLOCALNEWTHREADLOCAL/此种做法是创建一个线程PRIVATESTATICSESSIONFACTORYSFSTATICCONFIGURATIONCFGNULL

温馨提示

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

评论

0/150

提交评论