版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、本科生毕业论文(设计)题目: 在线知识测试系统的设计与实现 院 (系) 电子与信息工程系 专 业 计算机科学与技术 在线知识测试系统的设计与实现摘 要 21世纪的计算机网络科学技术不断发展,过去传统的基于纸笔的测试形式慢慢的不能适应现在的发展需求,利用计算机互联网技术的在线测试系统应运而生。该系统极大程度上减少了传统知识测试所带来的困难,系统应用于教育领域,将会极大的减少教师的工作量。 全文共分为开发方案、需求分析、系统设计、关键技术解决,结论五部分。开发方案中主要介绍开发在线测试系统的目的、开发方案的选择及开发框架技术的确定;需求分析介绍了在线测试系统的总体需求及系统各模块的功能需求;系统设
2、计介绍了系统设计的指导思想、数据库的设计、系统模块的设计;关键技术介绍了在具体实现时需解决的一些技术,如开发框架的整合技术、开发框架与数据库的连接等。本文采用struts1.2框架,与jsp网络编程技术和数据库技术相结合的手段,实现了一个基于mvc模式的在线知识测试系统的设计与实现。本文严格按照软件工程的思想和步骤进行在线知识测试系统的设计与实现的开发,通过需求分析、概要设计、详细设计、系统的编码实现等步骤完成在线知识测试系统的设计与实现的研发工作。关键词 在线测试; struts; ajax; mysqlonline knowledge test systemchen zhe(departm
3、ent of electronic and information engineering,ankang university,ankang,725000)abstract withthecontinuousdevelopmentofthescienceandtechnologyofcomputernetworkinthe21stcentury,thetraditionalknowledgetestbasedonpenandpapercannotmeettheneeds,sotheonlineknowledgetestsystemonaccountofcomputerinternettechn
4、ologyemergesasthetimesrequire.thesystemgreatlyreducesthedifficultiescausedbythetraditionalknowledgetest,anditsapplicationinthefieldofeducationwillgreatlyreducetheteachersworkload.thetextcanbedividedintofiveparts:developmentprograms,requirementsanalysis,systemdesign,keytechnologysolutionsandconclusio
5、n.developmentprogramsmainlyintroducethepurposeofdevelopingonlinetestsystem,theselectionofdevelopmentprogramandtheconfirmationofdevelopmentframework;requirementsanalysisdescribestheoveralldemandforonlinetestingsystemandthefunctionofeachmoduleinthesystem;systemdesignpresentstheguidingideologyofthisdes
6、ign,includingdatabasedesignandsystemmoduledesign;keytechnologysolutionintroducethespecifictechnologyinimplementation,suchastheintegrationoftechnologyfordevelopmentframework,connectionsbetweenframeworkanddatabaseandsoon.thispaperadoptsthemethodofcombiningstruts1.2framework,thejspwebprogramminganddata
7、basetechnologytoachieveabasedonmvc-patterninternetonlineknowledgetestsystem.thisarticledevelopstheinternetonlineknowledgetestsysteminstrictaccordancewiththeideasandthestepsofthesoftwareengineering,andcompletestheresearchanddevelopmentworkoftheinternetonlineknowledgetestsystembyrequirementsanalysis,o
8、utlinedesign,detaileddesign,encodingthesystemandothersteps.keywords onlinetest;struts;ajax;mysql 目 录1 绪论11.1 引言11.2 研究背景11.2.1 理论研究现状11.2.2 实践应用现状21.2.3 关键技术32 系统需求及可行性研究72.1系统的需求72.2可行性研究72.3总结73 系统设计93.1 系统功能93.1.1 系统目标93.1.2 系统综合功能框架图93.1.3 系统模块功能分析113.2 系统数据库设计134 系统功能实现174.1 数据连接174.2 安全策略174.3
9、 数据库连接公用模块174.4 在线知识测试系统的设计与实现设计184.5 测试者信息模块实现184.6 知识测试模块及成绩处理实现214.7 struts-config.xml文件配置265 后台模块295.1 后台首页设计295.2 测试者信息管理305.3 知识测试题目管理315.4 ajax动态下拉列表框326 系统测试356.1 测试者账号注册、登录、找回密码356.2 后台测试356.3 在线测试356.4 多人同时在线测试366.5 多名管理员同时登录367 总结与展望37参考文献39致 谢411 绪论1.1 引言随着科技的飞速发展,网络技术渐渐深入到人们的日常生活中。同时,带来
10、的是教育方式的一次变革,而互联网在线测试就是其中一个很重要的方向。基于web技术的网络测试系统可以借助于遍布全球的internet进行。因此,知识测试既可以在本地进行,也可以在异地进行,大大扩展了知识测试的灵活性。缩短了传统知识测试要求老师打印试卷,安排知识测试、监考、收集试卷、评改试卷、讲评试卷以及分析试卷的时间,这个漫长且复杂的过程,也使知识测试更趋于客观、公正。在线测试系统极大地提高了教学的灵活性,并且现在在许多领域已经有了广泛的应用。其中最有影响的案例就是ets(美国教育知识测试中心)举办的gre(美国研究生入学知识测试)的计算机化知识测试,它使知识测试由原来的每年只能有两次参加知识测
11、试的机会变成了每个工作日都可以参加的知识测试。本论文设计了一个基于mysql5.5+jsp+struts1.2+ajax的在线测试系统。该系统原则上可以满足学校及现代信息化企业的内部知识测试需求,可以实现学校低成本的投入,提高办公效率的宗旨。例如:一个学校如果使用了本系统,就无需老师阅卷、评卷,而是直接由系统代为判卷,使老师从传统的繁琐的阅卷过程中解放出来,为广大老师省去不少的时间,也提高了准确率,从而有更大的精力致力于日常的教学过程中,极大地提高了办公效率。在线知识测试系统的设计与实现已成为时代发展的趋势,众多的优势为在线知识测试系统的设计与实现在我国顺利普及打下良好的基础,这也从而使得我国
12、的网络信息迅速普及,让中国的高速信息化战略顺利进行! 1.2 研究背景1.2.1 理论研究现状目前对于在线知识测试系统的设计与实现的前身计算机辅助测试系统的研究,国外很早就开始了,并且在题库建设、统计测量等方面取得了许多显著理论成果,比如像我们熟知的经典测量理论和项目反应理论、题库理论、自适应测验理论等。可是关于internet环境下的网络知识测试测评系统的研究目前还处于发展阶段,在设计、开发方面缺乏系统的理论指导。关于网路知识测试测评系统开发规范与标准的研究前景,世界上已经有许多标准化组织或机构制定的网络教育资源标准里面都涉及到了有关网上在线测试系统的相关内容,其中影响较大的有:ieee l
13、tsc的lom、oclc dublin core的dublin core元数据标准,以及ims的leaning resource metadata和qti。我国教育部高教司于2000年5月已经推出了现代远程教育资源建设技术规范,该规范中对网络题库、知识测试系统的建设规范进行了定义。2000年11月,教育部组织国内8所重点高校的有关专拣成立了教育部教育信息化技术标准委员会(celtsc)开展网络教育技术标准研制,它指定了中国现代远程教育技术标准celts,其中包括练习/测试互操作规范qti(celts-10)、平台与媒体标准引用组谱(celts-17)。虽然目前这些标准还处于不断检验、完善阶段,
14、符合这些标准的网络知识测试系统还很少。而我国的celts标准主要参考ieee和ims,目前完成了11项规范,处于试用阶段。目前国内的大多数产品,无论是商业公司或学校开发的网络系统大都与这些规范有一定差距。1.2.2 实践应用现状计算机应用于知识测试源于美国,历经多年,已经在国外得到了广泛的应用。国外有许多专门的知识测试机构采用计算机辅助测试对参加考核的对象进行评价。著名的知识测试机构有美国思而文学习系统有限公司,它是一家从事教育和计算机化知识测试服务的专业公司,它在世界的6大洲140多个国家和地区有2200多个知识测试中心,可用25种语言提供近百个不同类型、一千多种知识测试。每年全球参加计算机
15、化知识测试的人数就有约400万。如今大部分的授权机构均委托思而文公司为其进行测试、评估。比如在信息技术领域中全球领先的计算机公司的授证知识测试,还有专业人员的认证知识测试、建筑师和股票经纪人的知识测试、医护人员的专业测试、美国飞机驾驶员(faa)的知识测试等。世界上最大的知识测试机构美国教育知识测试服务中心从1993年开始在cre(研究生入学知识测试)采用自适应知识测试模式,同时逐步减少纸卷笔试为基础的知识测试。2000年开始,toefl知识测试在中国采用自适应知识测试模式。总的看来,国外的知识测试特别是技术资格认证的知识测试,它都逐步采用了计算机辅助测试的方法,且自适应知识测试的形式开始广泛
16、运用。我国在这方面相对落后,目前还主要是计算机题库的应用,只有计算机类的知识测试部分采用了计算机辅助测试的方式,如大学计算机初级知识测试、高中信息技术会考。国家在中小学教育中已经开展了建立题库的工作,大学英语四、六级知识测试(cet)都采用计算机抽题出卷的方式进行测验。其中比较出名的有杭州电子工业学院开发的英语题库系统、北京师范大学研制的题库系统等。internet出现后,人们把焦点转向了基于web的网络知识测试系统。相对来说国外领先一步,而且目前已有许多成功案例,如:toefl、gre知识测试。微软、思科的水平认证知识测试已经逐步由原来的单击版计算机测试向网络化的测试过渡。微软atc管理中心
17、基于网络的联机培训认证知识测试是其中的典型代表。国内的清华大学、西安交通大学、湖北大学、重庆大学等也相继基于internet网络开发了针对客观题的网上测试系统。另外国内一商业原件公司也在积极研制,其中比较著名的有英时软件公司的powerexam、清华豪泰的科教2000,点控科技的点控知识测试平台等。1.2.3 关键技术(1) jsp技术jsp(java server pages)是由sun microsystems公司倡导的并且由许多公司参与一起建立的一种动态网页技术标准。jsp技术1有点类似asp技术,它是在传统的网页html文件(*.htm,*.html)中插入了java程序段(scrip
18、tlet)和jsp标记(tag),从而形成jsp文件(*.jsp)。 用jsp开发的web应用是跨平台的,它既能在linux下运行,也能在其他操作系统上运行。web服务器在遇到访问jsp网页的请求时,首先执行其中的程序片段,然后将执行结果以html格式返回给客户。程序片段可以操作数据库、重新定向网页以及发送 email 等等,这就是建立动态网站所需要的功能。所有程序操作都在服务器端执行,网络上传送给客户端的仅是得到的结果,对客户浏览器的要求最低。jsp(javaserver pages)是一种基于java的脚本技术2。在jsp 的众多优点之中,其中之一是它能将 html 编码从 web 页面的
19、业务逻辑中有效地分离出来。用 jsp 访问可重用的组件3,如 servlet、javabean 4和基于 java 的 web 应用程序。jsp 还支持在 web 页面中直接嵌入 java 代码5。可用两种方法访问 jsp 文件:浏览器发送 jsp 文件请求、发送至 servlet 的请求6。(2)struts技术struts 是apache软件基金会(asf)赞助的一个开源项目7。它最初是jakarta项目中的一个子项目 ,该技术在2004年3月成为asf的顶级项目。它通过采用javaservlet/jsp技术,实现了基于java eeweb应用的mvc设计模式的应用框架,是mvc经典设计模
20、式中的一个经典产品。struts框架具有组件的模块化,灵活性和重用性的优点,同时简化了基于mvc的web应用程序的开发。struts可以清晰地区分控制,事务逻辑和外观,从而简化了开发应用程序的过程。struts提供的类使得开发工作更加简单,struts配置文件8 struts-config.xml。这是将struts组件结合在一起的文件:默认位置 web-infstruts-config.xml。配置文件可以定义:1)全局转发2)actionmapping类 帮助控制器将请求映射到操作3)actionform bean 显示模块数据4)jdbc数据源以下是struts工作流程如图1.1所示。a
21、ctionservletclientactionjspmodelstrust-config.xml(反射)dispath(调用)forwardhttp requesthttp responseget图1.1 struts流程图在struts的实现里,model的具体表现形式就是actionform对象和与其对应的action对象了。在struts中model以一个或多个javabean的形式存在。这些bean分为三类:action form、action、javabean orejb。actionform通常称之为formbean,封装了来自于client的用户请求信息(3)jdbc技术jdb
22、c(java data base connectivity,java数据库连接)是一种用于执行sql语句的java api,可以为多种关系数据库提供统一访问,它由一组用java语言编写的类和接口组成。jdbc提供了一种基准,据此可以构建更高级的工具和接口,使数据库开发人员能够编写数据库应用程序。只要有了jdbc,向各种关系数据发送sql语句就成了一件很容易的事。换言之,有了jdbc api,也就不必为访问sybase数据库专门写一个程序,为访问oracle数据库又专门写一个程序,或为访问informix数据库又编写另一个程序等等,如今程序员只需用jdbc api写一个程序就够了,该程序可向相应
23、数据库发送sql调用。同时,将java语言和jdbc结合起来使程序员不必为不同的平台编写不同的应用程序,只须写一遍程序就可以让它在任何平台上运行,这也是java语言的特点“编写一次,处处运行”的优势。java 具有坚固、安全、易于使用、易于理解和可从网络上自动下载等特性,是编写数据库应用程序的杰出语言。(4)javascript技术9javascript是一种基于对象和事件驱动并具有相对安全性的客户端脚本语言10。同时也是一种广泛用于客户端web开发的脚本语言,常用来给html网页添加动态功能,比如响应用户的各种操作。它最初由网景公司(netscape)的brendan eich设计,是一种动
24、态、弱类型、基于原型的语言,内置支持类。javascript是sun公司的注册商标。ecma国际以javascript为基础制定了ecmascript标准。javascript也可以用于其他场合,如服务器端编程。完整的javascript实现包含三个部分:ecmascript,文档对象模型,字节顺序记号11。(5)mysql数据库12mysql是一种关系型数据库管理系统,是由瑞典mysql ab公司开发,目前属于oracle公司。关联数据库将数据保存在不同的表中,而不是将所有数据放在一个大仓库内,这样就增加了速度并提高了灵活性。mysql的sql语言是用于访问数据库的最常用标准化语言13。my
25、sql软件还采用了双授权政策,它分为社区版和商业版,由于其体积小、速度快、总体拥有成本低,尤其是开放源码这一特点,所以一般中小型网站的开发都选择mysql作为网站数据库14。由于其社区版的性能卓越,搭配php和apache可组成良好的开发环境。2 系统需求及可行性研究2.1系统的需求随着社会经济的发展,人们对教育也越来越重视。知识测试是教育中的一个重要环节,近些年来随着知识测试的类型及复杂程度不断增加以及知识测试要求不断提高,过去传统的知识测试方式要求教师打印考卷、监考、批卷、使教师的工作量越来越大,而且这些环节由于全部由人工完成,非常容易出错。因此,许多学校或知识测试机构就建立网络在线知识测
26、试网站来降低管理成本和减少人力物力的投入,同时,也为测试者提供更全面、更灵活的服务。测试者希望对自己的学习情况进行客观、科学的评价;教务人员希望有效地改进现有的知识测试模式,提高知识测试效率。为了满足测试者和教务人员的需求,网络在线知识测试系统的设计与实现应包含在线知识测试、成绩查询等功能,以满足用户的需求。2.2可行性研究开发一个网络在线测试系统,实现系统的主要功能,即添加试题,添加试卷,分发试卷,在线考试、试卷评分,成绩汇总及管理,考生信息管理,定时收卷,注册与验证登录。数据库可并发访问并具有较大的吞吐量。所建议系统是基于b/s模式的web系统,使用jsp语言开发并使用经典的mvc三层构架
27、使用mysql作为数据库管理系统。tomcat 6.0作为应用服务器使用免费的mysql和tomcat软件可以大大减少项目开支运用数据库连接池技术缓解了系统中数据库的压力瓶颈,提高了对数据库操作的性能本系统运用了目前比较流行的web框架strut,提供了对开发mvc系统的底层很好的支持,而mvc是表现层、业务逻辑层和持久层分开,因而是系统具有很好的扩充性,用户界面可以灵活变化。涉及到的最核心的技术问题就是如何实现在不刷新页面的情况下实时显示知识测试时间及剩余时间,并做到到达知识测试时间自动提交试卷的功能。如果在ajax技术出现以前,要实现这些功能会比较麻烦,单现在通过ajax技术可以轻松实现这
28、些功能,这为网络在线知识测试系统的设计与实现提供给了技术保障。2.3总结通过以上的研究,我觉得所建议的在线知识测试系统是可行的。随着企业网和校园网的迅猛发展,网上测试已成为必不可挡的测试方式,将来会渐渐成为一种趋势,更好的为企业和学校提供更佳快捷便利的测试机制,在技术方面完全可以实现以上所说的全部功能,只有慢慢的去开发,去实现,才能够发现问题,解决问题,慢慢的完善在线知识测试系统的功能,将来的知识测试系统功能一定会更强大,更完善。3 系统设计在该系统设计前,首先要对系统实现的目标,需求有一定的了解与分析,本章的作用就是阐述系统要实现的目标及详细的系统框架。3.1 系统功能3.1.1 系统目标根
29、据所作的需求分析及用户的需求可知,网络在线测试系统属于中小型的软件,在系统实施后,应达到以下目标:(1)具有空间性。被授权的用户可以在异地登陆网络在线测试系统,而无需到指定地点进行知识测试(2)操作简单方便、界面简洁美观。(3)系统提供知识测试时间倒计时功能,使测试者实时了解剩余时间。(4)随机抽取试题。(5)实现自动提交试卷的功能。当知识测试时间达到规定时间时,如果测试者还未提交试卷,系统将自动交卷,以保证知识测试严肃、公正地进行。(6)系统自动阅卷,保证成绩真实准确。(7)测试者可以查询知识测试成绩。(8)系统运行稳定、安全可靠。3.1.2 系统综合功能框架图根据在线知识测试系统的设计与实
30、现的特点,可以将其分为前台和后台两个部分进行设计。前台主要用于测试者注册和登陆系统、在线知识测试、查询成绩以及修改个人资料等;后台主要用于管理员对测试者信息、课程信息、考题信息和测试者成绩信息等进行管理。具体功能结构如图3.1和图3.2所示。在线知识测试系统的前台测试者注册找回密码在线知识测试成绩查询修改个人资料退出系统知识测试规则选择测试课程准备知识测试在线知识测试自动阅卷显示知识测试成绩图3.1在线知识测试系统的前台功能结构图在线知识测试系统的后台管理员信息管理测试者信息管理测试者成绩查询课程信息管理套题信息管理知识测试题目管理退出后台管理图3.2 在线知识测试系统的后台功能结构图3.1.
31、3 系统模块功能分析本系统主要分为在线测试模块与后台管理模块。在线测试模块中的主要功能是允许考生在网站上针对指定的课程进行考试。后台模块是管理员对网页信息进行管理的首页面,在该界面中,管理员可以清楚的了解网站后台管理系统包含的基本操作。一下是系统模块中涉及的一些相关页面:测试者登录页面15,该页面主要用于实现测试者登录,同时也提供了测试者注册、找回密码和进入后台的超链接,如图3.3所示。图3.3 测试者登录页面(login.jsp)在线知识测试页面,该页面用于实现在线答题功能,同时提供了显示知识测试时间和剩余时间及自动提交试卷的功能,如图3.4所示。图3.4 在线知识测试页面(startexa
32、m.jsp)套题信息管理页面16,该页面主要用于实现显示套题基本信息、批量删除套题信息等功能,同时还提供了添加套题的超链接,如图3.5所示。图3.5 套题信息管理页面(taoti.jsp)试题页面,该页面主要用于将知识测试题目添加到数据库,同时实现了在不刷新页面的情况下,改变课程时自动显示相关课程对应的套题,如图3.6所示。图3.6 添加知识测试题目页面(question_add.jsp)3.2 系统数据库设计根据用户角色和系统实现的功能,本系统数据库设计了一个数据库db_netexam数据库。 采用的数据库是mysql5.5 ,包含如下6个表文件:(1)tb_student(测试者信息表)测
33、试者信息表用来保存测试者信息,结构如表3.7所示。表3.7 tb_student测试者信息表字段名数据类型是否为空是否主键默认值描述idbigint(8)noyesnullid号(自动编号)namevarchar(20)nononull姓名pwdvarchar(20)nononull密码sexvarchar(2)nononull性别jointimedatetime(8)nonogetdate()注册时间questionvarchar(50)nononull提示问题answervarchar(50)nononull问题答案prefessionvarchar(30)yesnonull专业cardn
34、ovarchar(18)nononull身份证(2)tb_taoti(套题信息表)套题信息表用来保存套题信息,该表的结构如表3.8所示。表3.8 tb_taoti套题信息表字段名数据类型是否为空是否主键默认值描述idbigint(8)noyesnullid号(自动编号)namevarchar(50)nononull套题名称lessonidbigint(8)nononull所属课程jointimedatetime(8)nonogetdate()添加时间(3)tb_questions(测试题目信息表)用来保存知识测试题目信息,该表中保存着所属课程和所属套题的id,通过这两个id可以获取所属课程和套
35、题的信息。结构如表3.9所示。表3.9 tb_questions知识测试题目信息表字段名数据类型是否为空是否主键默认值描述idbigint(8)noyesnullid号(自动编号)subjectvarchar(50)nononull问题typechar(6)nononull类型jointimedatetime(6)nonogetdate()添加时间lessonidint(4)nononull所属课程idtaotildbigint(8)nononull所属套题idoptionavarchar(50)nononull选项aoptionbvarchar(50)nononull选项boptioncva
36、rchar(50)nononull选项coptiondvarchar(50)nononull选项danswervarchar(50)nononull正确答案notevarchar(50)yesnonull备注(4)tb_sturesult(测试者成绩信息表)用来保存测试者成绩,该表中的所属课程字段whichlesson与tb_lesson表中的name字段相关联。结构如表3.10所示。表3.10 tb_sturesult测试者成绩信息表字段名数据类型是否为空是否主键默认值描述idbigint(8)noyesnullid号(自动编号)stuidvarchar(16)nononull准考证号whi
37、chlessonvarchar(60)nononull所属课程ressingleint(4)nononull单选题分数resmoreint(4)nononull多选题分数restotalint(4)nononull合计分数jointimedatetime(8)nonogetdate()添加时间(5)tb_lesson(课程信息表)tb_lesson表用来储存课程信息,各字段及含义如表3.11所示。表3.11 tb_lesson课程信息表字段名数据类型是否为空是否主键默认值描述idbigint(8)noyesnullid号(自动编号)namevarchar(60)nononull姓名jointi
38、medatetime(8)nonogetdate()注册时间(6)tb_manager(管理员信息表)tb_manager用来存储管理员信息,各字段及含义如表3.12所示。表3.12 tb_manager管理员信息表字段名数据类型是否为空是否主键默认值描述idbigint(8)noyesnullid号(自动编号)namevarchar(30)nononull姓名pwdvarchar(30)nononull密码(7)数据表之间的关系设计17图3.13表达了各数据表之间的关联关系.图3.13数据表之间的关联关系由于在线知识测试系统的设计与实现对于数据的安全性及完整性要求比较高,并且为了增加程序的使
39、用范围,还要保证系统可以拥有储存足够多数据的能力。mysql是一种高性能的关系型数据库管理系统,逐渐成为在线事务进程和数据仓库等最好的数据库平台。综上所述,本系统采用mysql数据库。4 系统功能实现经过前期的系统功能,需求分析,已经清楚本设计需要完成的具体功能有,在线测试前台与后台管理模块,具体功能划分如下:4.1 数据连接数据库作为在线知识测试系统的设计与实现的核心,在建立之后要和前台应用程序建立连接才能发挥它的作用。jsp程序通过jdbc来连接和操作数据库。jdbc是一组api,可以协助编程人员轻松地处理程序与数据库之间的连接和操作动作。进行数据库连接时,需要使用java.sql套件中的
40、类。在正式连接数据库时,首先必须使用java.sql.class类中的forname方法加载驱动程序类,语法如下:class.forname(string 驱动程序类描述);对于sql server数据库,使用如下语句加载驱动程序类:class.forname(“com.mysql.jdbc.driver”);加载驱动程序类后,就可以使用drivermanager类来打开数据库连接,其语法如下:connection 连接对象=drivermanager.getconnection(string 数据库名称,string 用户名称,string 用户密码);对于mysql数据库,一个示例如下:s
41、tringurl=” jdbc:mysql:/:3306/exam”;username=”root”password=123connection conn=drivermanager.getconnection(url,username,passworcd);相应地,关闭数据库连接使用连接对象的close方法,其语法如下:连接对象.close();4.2 安全策略使用session限制未经登录的访问。当测试者从登录界面登录,jsp程序进行用户名称和密码的检查后,如果数据符合则成功登录,将用户的id值写到session对象中,对以后的页面都会先检查session对象保存的数据,
42、从而判断用户是否可浏览页面,以达到安全控制的目的。如果检查失败都会导向登录界面,要求用户重新登录。4.3 数据库连接公用模块在本知识测试系统中,我们把数据库参数写入一个名为conndb.properties的配置文件17中,这样在程序运行时如果环境变化,可以方便地修改数据库配置。conndb.properties内容如下:db_class_name=com.mysql.jdbc.driverdb_url=jdbc:mysql:/:3306/db_netexam?useunicode=true&characterencoding=gb2312db_user=rootdb_pwd
43、=1234.4 在线知识测试系统的设计与实现设计在线知识测试系统的设计与实现由一个公用模块和3个主要功能模块组成:(1)数据库连接公用模块(2)测试者信息模块(3)在线知识测试模块(4)后台模块4.5 测试者信息模块实现该模块主要包括测试者注册、测试者登录、修改个人资料以及找回密码等4个功能18。测试者首先要注册为网站用户,然后才被授权登录网站进行一系列操作的权限;登录后测试者还可以修改个人的注册资料。如果测试者忘记了登录密码,还可以通过网站提供的找回密码功能快速找回密码。由于本系统采用的是struts框架,所以在实现测试者信息模块时,需要编写测试者信息模块对应的actionform类和act
44、ion实现类。(1)编写测试者信息模块的actionform类。在测试者信息模块中,只涉及到数据表tb_student(测试者信息表),虽然根据这个数据表可以得出测试者信息模块的actionform类。但是本模块中应用的actionform类中并不是只包括这些属性。由于在修改个人资料时,需要验证输入的原密码是否正确,所以还需要在测试者信息的actionform类中添加一个oldpwd属性,同时,在进行批量删除测试者信息时,还需要添加一个保存要删除测试者id号的delidarray属性,由于是批量删除,所以该属性类型为字符串数组。代码位置(actionformstudentform.java)p
45、ublic class studentform extends actionform private string sex;/性别private string pwd;/密码private date jointime;/注册时间private string profession;/专业private string name;/姓名private string answer;/密码提示答案private string id;/自动生成的id号private string question;/密码提示问题private string cardno;/private string oldpwd;/原
46、密码private string delidarray=new string0;/记录删除id号的属性public string getsex() return sex;public void setsex(string sex) this.sex = sex;(2)创建测试者信息模块的action实现类测试者信息模块化的action实现类student继承了action类。在该类中,首先需要在该类的构造方法中分别实例化测试者信息模块的studentdao类。action实现类的主要方法是execute(),该方法会被自动执行,这个方法本身没有具体的事务,它是根据httpservletrequ
47、est的getparameter()方法获取的action参数值执行相应方法的。测试者信息模块action实现类的关键代码如下:代码位置(actionstudent.java)public actionforward execute(actionmapping mapping, actionform form,httpservletrequest request, httpservletresponse response) string action = request.getparameter(action);/获取action参数的值if (studentquery.equals(acti
48、on) return studentquery(mapping, form, request, response);/查询测试者信息的方法 else if (login.equals(action) /测试者身份验证的方法return studentlogin(mapping, form, request, response); else if (studentadd.equals(action) /测试者注册的方法system.out.println(开始增加测试者。);return studentadd(mapping, form, request, response);(3)测试者注册的
49、实现过程运行在线知识测试系统的设计与实现,首先进入的是测试者登录页面,在该页面中单击“注册”按钮,即可进入到测试者注册页面,在该页面中输入个人资料及密码,如图4.1所示。单击“保存”按钮,系统将根据您输入的身份证号进行验证是否已经注册,如果没有注册,将弹出如图4.2所示的提示框,否则进入到注册失败对话框。图4.1测试者注册页面的运行结果图4.2 注册成功对话框注册信息页面主要用于收集输入的测试者注册信息,及通过自定义的javascript函数验证输入信息是否合法。在设置用于收集注册信息的表单时,采用的是struts框架的html标签实现的。(4)修改测试者信息的action实现类在添加注册信息
50、页面中输入合法的注册信息后,单击“保存”按钮,网页会访问一个url,这个url是/manage/student.do?action=studentadd。从该url地址中可以知道添加注册信息页面涉及到的action的参数值为studentadd,也就是当action=studentadd时,会调用保存测试者注册信息的方法customeradd()。在该方法中,首先需要将接受到的表单信息强制转换成actionform类型,然后调用studentdao类中的insert()方法,将测试者信息保存到数据表中,并将返回值保存到变量ret中,如果返回值为re,表示该测试者信息已经注册,将提示信息“您已经
51、注册,直接登录即可!”保存到httpservletrequest对象的error参数中,然后将页面重定向到错误提示信息页面;否则,如果返回值为miss,表示注册失败,将错误提示信息“注册失败”保存到httpservletrequest对象的error参数中,然后将页面重定向到错误提示信息页面;否则表示注册成功,将返回的准考证号保存到httpservletrequest对象的ret参数中,然后将页面重定向到测试者注册成功页面。保存测试者注册信息的方法studentadd()的具体代码如下(actionstudent.java):/ 添加测试者注册信息private actionforward s
52、tudentadd(actionmapping mapping, actionform form,httpservletrequest request, httpservletresponse response) studentform studentform = (studentform) form;string ret = studentdao.insert(studentform);system.out.println(返回值ret: + ret);if (ret.equals(re) request.setattribute(error, 您已经注册,直接登录即可!);return mapping.findforward(error);else if(ret.equals(miss)request.setattribute(error, 注册失败!);return mapping.findforward(error);elserequest.setattribute(ret,ret);return mapping.findforward(studentadd);(5)编写保存测试者注册信息的studentdao(接口)类。保存测试者信息使用的studentdao类的方法是insert()。在inser
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
评论
0/150
提交评论