网上在线考试系统的开发.docx
- 文档编号:27389533
- 上传时间:2023-06-30
- 格式:DOCX
- 页数:49
- 大小:316.89KB
网上在线考试系统的开发.docx
《网上在线考试系统的开发.docx》由会员分享,可在线阅读,更多相关《网上在线考试系统的开发.docx(49页珍藏版)》请在冰豆网上搜索。
网上在线考试系统的开发
西安建筑科技大学
本科毕业设计(论文)
题目
网上在线考试系统的
开发
学生姓名
学号
院(系)
专业
指导教师
时间
摘要
在线考试系统旨在实现考试的无纸化管理,通过互联网络或局域网可以对一些客观试题为主的科目进行考试,既方便校方考务的管理,也方便了考生,尤其适合考生分布广,不易集中的远程教育。
本设计以j2EE作为开发基础,用eclipse作为开发工具,主要使用了Struts+Spring+Hibernate等多种协议或技术,以Mysql作为数据库,完成了在线考试系统中考生和教师模块的基本功能,其中包括考生在线修改个人信息维护、在线考试、在线练习、查询考试记录、查询练习记录、查询成绩、等功能;教师的个人信息维护、在线出题、在线组卷、随机组卷、查询成绩、修改信息等功能。
该系统界面简单、操作方便、维护容易,经过测试,系统可靠性良好。
关键词:
在线考试,j2EE,Struts+Spring+Hibernate
ThedesignofanOnlineExaminationSystemBasedoninternet
Abstract
Onlineexaminationsystemtoachievepaperlessmanagementofexaminations,theexaminationofsomesubjectsthroughtheInternetorLAN,tofacilitatethemanagementoftheschoolExamination,candidatesarealsoconvenient,especiallyforcandidateswidelydistributed,easytofocusondistanceeducation.
Thecontentsofthisgraduat,Guersystembasedmainlyj2EEasthedevelopment,mainlyusingstruts+spring+hibernateandotheragreementsortechnology,usingeclipseasIDE,MYSQLasthedatabase.Basicallyanonlineexaminationsystemshouldbethemainfunctionalmodules,including:
anadministrator'slogin,managementandmaintenance;userregistration,login,logout,personalinformation,access,correction;testmanagement,problemsetsofmanagement,performancemanagement.Thesysteminterfaceissimpletooperate,easytomaintain.
Keywords:
OnlineExamination;J2EE;MYSQL;Struts+Spring+Hibernate
1绪论
1.1课题背景
网络化教育代表了教育改革的一个发展方向,已经成为现代教育的一个特征,并对教育的发展形成新的推动力。
随着Internet/Intranet的迅速发展和广泛普及,建立在其上的远程教育成为现代教育技术发展方向之一,考试测试作为远程教育的一个子系统也成为一个重要的研究领域。
现代远程教育作为一种新的教学手段已经开始进入我们的生活,正在给传统教育模式带来新的变革,并对教育的发展形成新的推动力。
Internet技术的发展使得考试的技术手段和载体发生了革命性的变化,Internet的开放性、分布性的特点和基于Internet的巨大的计算能力使得考试突破了时间和空间的限制。
基于Internet的考试系统正成为人们的研究热点之一。
与传统考试模式相比,网上考试具有无可比拟的优越性,它可以将传统考试过程中的试卷组织、审定印制、传送收集、登记发放、评判归档各个环节缩小到一至两个环节,几乎屏蔽了所有人工直接干预考试活动的可能性,不但能够节约大量的时间、人力、物力与财力,而且还可以大幅度提高考试成绩的客观性和公正性。
网上考试系统课题产生是当今教育信息化的趋势及我国高校教育信息化系统的建设所需;目的是充分利用学校现有的计算机软、硬件资源和网络资源实现无纸化考试以避免传统手工考试的不足。
与传统考试模式相比,网上考试渗入了更多的技术环节,对实现安全性的途径、方法也提出了更高的技术要求。
通过Internet/Intranet来实现网上考试,是现代教育技术的一个具体实现,具有很重要的现实意义。
可以实现教考分离以及考务工作的全自动化管理,可以有效利用校园网的软硬件资源,使其发挥最大效力,更好的为学校的教学、科研、管理服务,可以大规模的实行考试,实现考试的客观、公证性,自动化组卷、阅卷可以减轻教师的工作强度。
1.2课题目的和意义
随着考试类型的不断增加及考试要求的不断提高,教师的工作量将会越来越大,并且其工作将是一件十分烦琐和非常容易出错的事情,可以说传统的考试方式已经不能适应现代考试的需要。
计算机应用的迅猛发展,网络应用不断扩大,如远程教育和虚拟大学的出现等等,且这些应用正逐步深入到千家万户。
人们迫切要求利用这些技术来进行在线考试,以减轻教师的工作负担及提高工作效率,与此同时也提高了考试的质量,从而使考试更趋于公证、客观、更加激发学生的学习兴趣。
例如目前许多国际著名的计算机公司所举办的各种认证考试绝大部分采用这种方式。
为了适应新形势的发展,我们推出了这一系统,使其尽快在各类考试中发挥高效,便捷的作用。
本设计就是针对单项选择、多项选择、判断这类客观性考试题为主的考试系统设计,这类客观试题的改卷相对单一,教师的工作量将会越来越大,并且其工作将是一件十分烦琐和非常容易出错的事情,可以说传统的考试方式已经不能适应现代考试的需要。
本系统采用J2EE技术,完成了考生与教师这两个角色的一些基本功能,对于考生,可以通过本系统完成:
在线修改个人信息、在线考试、在线练习、查询考试记录、查询练习记录、查询成绩、等功能;对于教师,可以通过本系统完成:
在线修改个人信息、在线出题、在线组卷、随机组卷、查询成绩、修改信息等功能。
该系统界面简单、操作方便、维护容易,经过测试以上功能成功实现,系统可靠性良好
2系统应用的关键技术
2.1JSP技术介绍
2.1.1JSP的概述
JSP(JavaServerPages)是由SunMicrosystems公司倡导、许多公司参与一起建立的一种动态网页技术标准,类似于其他技术标准,如ASP,PHP等,主要用于开发动态网页内容。
JSP是新一代的动态内容编程技术,它继承了Java技术的“一次编写,随处运行”的特性,允许Web开发人员开发和维护与平台无关,信息丰富动态的Web页面,它能使Web开发人员轻易搭建网络平台,建立起功能强大的Web网站。
JSP可以把用户界面从内容层次中分离出来,使得Web开发人员不必修改在底层的动态内容,就可以修改整体的页面布局。
2.1.2JSP的运行机制
JSP文档被复制到Web服务器的文档目录中。
当有人请求这个文档时,服务器识别出这个带有.jsp扩展名的文档,并意识到需要做特殊处理。
第一次请求这个文档时,它被编译成一个servlet对象,并存储在内存中,然后输出内容回送给发出请求的用户机。
第一请求之后,只要有请求到来,服务器将进行检查,看看这个文件是否做过改动,如果没有变化,服务器调用先前编译过的servlet对象,JSP请求的步骤如下:
1.用户机请求一个JSP页面。
2.JSP引擎编译该JSP成一个servlet。
3.生成的servlet被编译并装载。
4.编译的servlet服务请求并把一响应发送回用户机。
JSP主要是针对Java程序处理不熟悉的人设计的。
与Servlet相比,JSP有如下两个优势:
方便与HTML混合;在开发、测试方面比Servlet方便。
2.1.3JSP与ASP的比较
JSP与ASP(ActiveServerPage)两者都是常用的动态网页技术,也都是可以嵌入HTML中的程序,但两者是有着本质的不同,主要从以下几个方面对其进行比较:
1.Web服务器的支持:
大多数通用的Web服务器如:
Apache、Netscape和MicrosoftIIS都支持JSP页面,只有微软本身的MicrosoftIIS和PersonalWebServer可以支持ASP。
2.平台的支持:
JSP具有平台独立性,只要是一般的Java程序可以运行的平台,都支持JSP程序。
Windows平台可以很好的支持ASP,但ASP对于基于Win32逐渐模型的依赖,使得它难于一直到其它平台上。
3.组件模型:
JSP是建立在可重用的、跨平台的组件(如:
JavaBeans、EnterprisesJavaBeans和用户定制的标签库等组件)之上的,而ASP使用的是基于Win32的COM组件模型。
4.脚本语言:
JSP可以使用Java编程语言或JavaScript作为脚本语言,而ASP使用VBScript或Jscript作为脚本语言。
5.安全性:
JSP使用Java安全模型,而ASP使用WindowsNT的安全结构。
6.与Access数据库的连接:
JSP使用JDBC建立与Access数据库的连接,而ASP对Access数据库使用DataActiveObjects。
7.用户定制的标签:
JSP可以使用用户定制标签库进行扩充,而ASP中没有用户定制标签库,ASP是不能扩充的。
2.2Java组件JavaBeans
2.2.1什么是JavaBeans
JavaBeans事实上有三层含义。
首先,JavaBeans是一种规范,一种在Java(包括JSP)中使用可重复使用的Java组件的技术规范。
其次,JavaBeans是一个Java的类,一般来说,这样的Java类将对应于一个独立的.java文件,在绝大多数情况下,这应该是一个public类型的类。
最后,当JavaBeans这样的一个Java类在我们的具体的Java程序中被示例之后,我们有时也会将这样的一个JavaBeans的实例称之为JavaBeans。
2.2.2JSP与JavaBeans的关系
使用JSP技术,Web页面开发人员可以使用HTML和XML标识来设计和格式化最终页面。
使用JSP标识或者小脚本生成页面上的动态内容。
生成内容的逻辑被封装在JSP标识和JavaBeans组件中,并且捆绑在小脚本中,所有的脚本在服务器端运行。
核心逻辑封装在标识和Beans中,可以方便页面设计者编辑和使用JSP页面。
在服务器端,JSP引擎解释JSP标识和小脚本生成所请求的内容(例如,通过访问JavaBeans组件,使用JDBC技术访问数据库),并且将结果以HTML(或XML)页面的形式发送回浏览器。
绝大多数JSP页面依赖于可重用的跨平台的足见(JavaBeans或者EnterpriseJavaBeans组件)来执行应用程序所要求的复杂的处理。
这样的好处是开发人员能够共享和交换执行普通操作的组件,加速了总体开发过程。
因此,基于Web的较为复杂的应用程序(如JSP开发网站或网上MIS),JSP的复杂架构必须由JavaBeans达成。
2.3关于Struts2
2.3.1Struts2简介
虽然Struts2号称是一个全新的框架,但这仅仅是相对Struts1而言。
Struts2与Struts1相比,确实有很多革命性的改进,但它并不是新发布的新框架,而是在另一个赫赫有名的框架:
WebWork基础上发展起来的。
从某种程度上来讲,Struts2没有继承Struts1的血统,而是继承WebWork的血统。
或者说,WebWork衍生出了Struts2,而不是Struts1衍生了Struts2.因为Struts2是WebWork的升级,而不是一个全新的框架,因此稳定性、性能等各方面都有很好的保证:
而且吸收了Struts1和WebWork两者的优势,因此,是一个非常值得期待的框架。
ApacheStruts2是一个优雅的,可扩展的JAVAEEweb框架。
框架设计的目标贯穿整个开发周期,从开发到发布,包括维护的整个过程。
ApacheStruts2即是之前大家所熟知的WebWork2.在经历了几年的各自发展后,WebWork和Struts社区决定合二为一,也即是Struts2
2.3.2Struts2的工作原理
工作流程当接收到一个httprequestInterceptor做一些拦截或者初始的工作当外部的httpservletrequest到来时初始到了servlet容器传递给一个标准的过滤器链ActionContextCleanUp这个在集成插件方面非常有用Otherfilters(SitMesh,etc)调用FilterDispatecher会去查找相应腁ctionMapper如果找到了相应的ActionMapper它将会将控制权限交给ActionProxyActionProxy将会通过ConfigurationManager来查找配置struts.xml下一步将会通过ActionInvocation来负责命令模式的实现(包括调用一些拦截Interceptor框架在调用action之前)一旦action返回,会查找相应的ResultResult类型可以是jsp或者freeMark等这些组件和ActionMapper一起返回给请求的url(注意拦截器的执行顺序)响应的返回是通过我们在web.xml中配置的过滤器如果ActionContextCleanUp是当前使用的,则FilterDispatecher将不会清理sreadlocalActionContext如果ActionContextCleanUp不使用,则将会去清理sreadlocals。
2.3.3Struts2与Struts1的区别
1.Action类
2.
Struts1要求Action类继承一个抽象基类。
Struts1的一个普遍问题是使用抽象类编程而不是接口;Struts2Action类可以实现一个Action接口,也可实现其他接口,使可选和定制的服务成为可能。
Struts2提供一个ActionSupport基类去实现常用的接口。
Action接口不是必须的,任何有execute标识的POJO对象都可以用作Struts2的Action对象。
3.线程模式
4.
Struts1Action是单例模式并且必须是线程安全的,因为仅有Action的一个实例来处理所有的请求。
单例策略限制了Struts1Action能作的事,并且要在开发时特别小心。
Action资源必须是线程安全的或同步的。
Struts2Action对象为每一个请求产生一个实例,因此没有线程安全问题。
(实际上,servlet容器给每个请求产生许多可丢弃的对象,并且不会导致性能和垃圾回收问题)
5.Servlet依赖
6.
Struts1Action依赖于ServletAPI,因为当一个Action被调用时HttpServletRequest和HttpServletResponse被传递给execute方法。
Struts2Action不依赖于容器,允许Action脱离容器单独被测试。
如果需要,Struts2Action仍然可以访问初始的request和response.但是,其他的元素减少或者消除了直接访问HttpServetRequest和HttpServletResponse的必要性。
7.可测性
8.
测试Struts1Action的一个主要问题是execute方法暴露了servletAPI(这使得测试要依赖于容器)。
一个第三方扩展——StrutsTestCase——提供了一套Struts1的模拟对象(来进行测试)。
Struts2Action可以通过初始化、设置属性、调用方法来测试,“依赖注入”支持也使测试更容易。
9.捕获输入
10.
Struts1使用ActionForm对象捕获输入。
所有的ActionForm必须继承一个基类。
因为其他JavaBean不能用作ActionForm,开发者经常创建多余的类捕获输入。
Struts2直接使用Action属性作为输入属性,消除了对第二个输入对象的需求。
Struts2也支持ActionForm模式。
rich对象类型,包括业务对象,能够用作输入/输出对象。
这种ModelDriven特性简化了taglib对POJO输入对象的引用。
2.4关于Spring
2.4.1Spring简介
Spring是一个开源框架,它由RodJohnson创建。
它是为了解决企业应用开发的复杂性而创建的。
Spring使用基本的JavaBean来完成以前只可能由EJB完成的事情。
然而,Spring的用途不仅限于服务器端的开发。
从简单性、可测试性和松耦合的角度而言,任何Java应用都可以从Spring中受益。
简单来说,Spring是一个轻量级的控制反转(IoC)和面向切面(AOP)的容器框架。
2.4.2为什么需要Spring
当已经有许多开放源代码(和专有)J2EEframework时,我们为什么还需要SpringFramework?
Spring是独特的,因为若干个原因:
1.它定位的领域是许多其他流行的framework没有的。
Spring关注提供一种方法管理你的业务对象。
2.Spring是全面的和模块化的。
Spring有分层的体系结构,这意味着你能选择使用它孤立的任何部分,它的架构仍然是内在稳定的。
因此从你的学习中,你可得到最大的价值。
例如,你可能选择仅仅使用Spring来简单化JDBC的使用,或用来管理所有的业务对象。
3.它的设计从底部帮助你编写易于测试的代码。
Spring是用于测试驱动工程的理想的framework。
Spring对你的工程来说,它不需要一个以上的framework。
Spring是潜在地一站式解决方案,定位于与典型应用相关的大部分基础结构。
它也涉及到其他framework没有考虑到的内容。
2.4.3为什么使用Spring
通过Spring提供的IoC容器,我们可以将对象之间的依赖关系交由Spring进行控制,避免硬编码所造成的过度程序耦合。
有了Spring,用户不必再为单实例模式类、属性文件解析等这些很底层的需求编写代码,可以更专注于上层的应用。
通过Spring提供的AOP功能,方便进行面向切面的编程,许多不容易用传统OOP实现的功能可以通过AOP轻松应付。
在Spring中,我们可以从单调烦闷的事务管理代码中解脱出来,通过声明式方式灵活地进行事务的管理,提高开发效率和质量。
2.5关于Hibernate
2.5.1Hibernate简介
Hibernate是一个开放源代码的对象关系映射框架,它对JDBC进行了非常轻量级的对象封装,使得Java程序员可以随心所欲的使用对象编程思维来操纵数据库。
Hibernate可以应用在任何使用JDBC的场合,既可以在Java的客户端程序使用,也可以在Servlet/JSP的Web应用中使用,最具革命意义的是,Hibernate可以在应用EJB的J2EE架构中取代CMP,完成数据持久化的重任。
2.5.2Hibernate的优势是什么
Hibernate封装了jdbc,简化了很多重复性代码,它简化了DAO层编码工作,使开发更对象化了,而且Hibernate有很好的移植性,支持各种数据库,如果换个数据库只要在配置文件中变换配置就可以了,不用改变hibernate代码。
由于hibernate操作的是纯粹的(pojo)java类,没有实现任何接口,没有侵入性,所以说它是一个轻量级框架,使用起来非常方便。
2.6关于Mysql
MySQL是一种开放源代码的关系型数据库管理系统(RDBMS),MySQL数据库系统使用最常用的数据库管理语言--结构化查询语言(SQL)进行数据库管理。
由于MySQL是开放源代码的,因此任何人都可以在GeneralPublicLicense的许可下下载并根据个性化的需要对其进行修改。
MySQL因为其速度、可靠性和适应性而备受关注。
大多数人都认为在不需要事务化处理的情况下,MySQL是管理内容最好的选择。
它使用系统核心提供的多线程机制提供完全的多线程运行模式,提供了面向C、C++、Eiffel、Java、Perl、PHP、Python以及Tcl等编程语言的编程接口(APIs),支持多种字段类型并且提供了完整的操作符支持查询中的SELECT和WHERE操作。
目前MySQL被广泛地应用在Internet上的中小型网站中。
由于其体积小、速度快、总体拥有成本低,尤其是开放源码这一特点,许多中小型网站为了降低网站总体拥有成本而选择了MySQL作为网站数据库。
2.7Tomcat服务器
2.7.1Tomcat服务器简介
Tomcat是一个免费的开源的Serlvet容器,它是Apache基金会的Jakarta项目中的一个核心项目,由Apache,Sun和其它一些公司及个人共同开发而成。
由于有了Sun的参与和支持,最新的Servlet和Jsp规范总能在Tomcat中得到体现。
Tomcat中采用了Servlet容器:
Catalina,完整的实现了Servlet2.3和Jsp1.2规范。
Tomcat提供了各种平台的版本供下载,可以从其官方网站上下载其源代码版或者二进制版。
由于Java的跨平台特性,基于Java的Tomcat也具有跨平台性。
2.7.2Tomcat的特点与优势
在Tomcat中,应用程序的部署很简单,你只需将你的WAR放到Tomcat的webapp目录下,Tomcat会自动检测到这个文件,并将其解压。
你在浏览器中访问这个应用的Jsp时,通常第一次会很慢,因为Tomcat要将Jsp转化为Servlet文件,然后编译。
编译以后,访问将会很快。
另外Tomcat也提供了一个应用:
manager,访问这个应用需要用户名和密码,用户名和密码存储在一个xml文件中。
通过这个应用,辅助于Ftp,你可以在远程通过Web部署和撤销应用。
当然本地也可以。
2.7.3Tomcat服务器的安装和配置
在开始安装之前,先准备J2SDK和TOMCAT两个软件,如果已经安装了J2SDK,就只需TOMCAT即可。
表2-1环境变量设置参考数据
变量名
变量值
CATALINA_HOME
D:
\ProgramFiles\tomcat6.0
CLASSPATH
.;%JAVA_HOME%\lib;%CATALINA_HOME%\lib
2.8关于B/S开发模式
2.8.1B/S与C/S有什么区别
B/S 是指浏览器和服务器端,在客户机端不用装专门的软件,只要一个浏览器即可.而C/S是指客户机和服务器,在客户机端必须装客户端软件后,才能访问服务器如sql server 2000软件体系结构定义了软件的局部和总体计算部件的构成,以及这些部件之间的相互作用关系。
部件包
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 网上 在线 考试 系统 开发