驾校在线考试系统.doc_第1页
驾校在线考试系统.doc_第2页
驾校在线考试系统.doc_第3页
驾校在线考试系统.doc_第4页
驾校在线考试系统.doc_第5页
免费预览已结束,剩余33页可下载查看

下载本文档

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

文档简介

驾校在线考试系统摘要:近几年,随着计算机技术的发展和互联网时代的到来和飞速发展,我们已经进入了信息时代,也有人称为数字化时代。Internet技术持续迅猛的发展,网络应用不断扩大,也给传统的考试提出了新的模式-在线考试。基于Internet的在线考试己经成为现代考试方式的有力的补充和发展。随着电子信息技术的发展,在线考试系统将突破传统考试模式的时间、空间限制。随着计算机Internet技术的日渐成熟,使得原本处于理论研究阶段的在线考试逐渐成为可以实际应用的技术。对于驾驶学校这个特殊的单位,本系统利用Internet开辟在线考试使学生可以在网上对自己的知识进行测试以便于在正式考试取得好成绩。本系统即采用B/S模式,利用JSP+ SQL2000数据库,实现了基于Web的在线考试。本系统调试已经成功,可以上网测试运行。关键词:JSP SQL SERVER2000 B/S模式1 引言随着计算机应用的迅猛发展,网络应用不断扩大,使得在线考试成为网络研究与应用的热点之一。基于Internet的在线考试己经成为现代考试方式的有力的补充和发展。传统的考试模式的主要地点是教室,只要房间里面配备了桌椅,就可以成为考试的地方。随着电子信息技术的发展,在线考试系统应运而生,它将突破传统考试模式的时间、空间限制。随着计算机Internet技术的日渐成熟,使得原本处于理论研究阶段的在线考试逐渐成为可以实际应用的技术。另外,我们也欣喜地看到,社会上许多考试也是在网上进行的,如(GRE)美国研究生入学考试、(GMAT)工商管理类研究生入学考试以及(CGFNS)全美护士国家委员会资格等。开发在线考试系统是为了培养21世纪的合格计算机应用有才,在教学内容不断更新的前提下,改进教学方法,利用Internet开辟在线考试系统使学生可以在网上对自己的知识进行测试,从而真正实现计算机教学方法和手段的现代化。本项目研究开发的在线考试系统虽然是一个初步的尝试,不管是否成熟,对于探索基Web服务的在线考试系统的开发和实施都有一定的意义。在重庆市的各个驾驶学校中,每年都有学生要参加驾驶理论考试。根据本市川粮驾校的要求我们设计了一个在线考试系统。其目的是为了模拟考试,让考生适应真正的考试环境。驾驶理论考试分为选择题和判断题两部分。阅卷时,对照评分标准判定分数,统计分数。本系统采用B/S模式,利用JSP+SQL2000数据库,实现了基于Web的在线考试。2 在线考试系统的需求分析本系统是根据川粮驾校的理论考试进行需求分析的,按照对方提出的实现键盘操作和自动进行错题分析两大需求进行扩展,最终整合成一个完整的模拟在线考试系统。2.1 用户需求分析该系统是为川粮驾校设计的模拟考试系统。根据川粮驾校提出的要求,考试过程中支持小键盘答题,实现无鼠标操作。考试结束后有错题分析,显示得分。后台管理系统可以进行题目信息和用户信息的管理。2.2 功能需求分析(1)系统在模拟考试过程中支持键盘操作。(2)系统使用防刷新系统,防止正在考试的考生由于题目过难从而重登陆生成试卷,如正在考试的考生重登陆将自动回到上次的试题考试。(3)系统为考试而设计,因此应可对试卷进行维护、管理。可按管理员要求自动生成一份或多份同等水平而题目不同的试卷,也可由管理员手工编辑试卷,注意试题的抽取应存在一定的间隔时间。(4)系统应能实现考试控制功能。可在服务器端以及通过网络接受学生的应考要求,接受并处理考生的答案,控制考生考试的答题时间。(5)系统可实现自动成绩管理。可自动对考生的答卷进行评分,并记录成绩;自动对这次考试的情况进行汇总。(6)系统可提供查询的功能。 (7)管理员可以通过浏览器访问数据库并进行操作。2.3 性能需求分析对于一个系统来说,可扩展性,安全性,可管理性是几个关键的因素。(1) 可扩展性:可扩展性是指系统能保证可持续增长以满足用户需求和业务复杂性要求,Web系统为动态变化的模型:它们通常一开始很小,但随着需求的增长而呈指数级增长。这种增长非常迅速,不仅表现在支持的用户的数量上,而且表现在提供的用户服务的复杂性和集成性方面。对于考试系统而言,这种扩展性就显得尤为重要,因为考试系统的功能完善是一个渐进的过程,现阶段本系统对客观题的考试基本都可以适用。我们目前开发的这个系统需要随着考生的要求和技术的发展而需要不断改进。(2) 可靠性:服务质量的一个重要方而是能够在期望的响应时间内访问信息。对需要通过Internet的应用程序或信息的单位用户来说,还意味着必须在用户期望的时间内为用户提供其需要的信息。试想一个同时有几百甚至几千人访问的考试系统,一旦服务器发生阻塞或者崩溃,会带来怎样的不可想象的麻烦。另外太长的延迟时间也会给考生带来不便。本系统统可以通过对TOMCAT的最大连接数的设置来进行管理。(3) 安全性:安全性是指系统能够保护数据或基础结构避免受恶意攻击或者盗用。安全性是通过为信息的机密性,完整性和可靠性提供充分的保护来预防风险,保障系统安全,是任何系统成功的基本要素。本系统同通过Servlet对帐号权限进行管理使得帐号的安全性,权限得到保障。(4) 可管理性: 可管理性是指可以很方便地对系统进行管理,确保系统的正常运行管理和运作涉及以下几个因素:维护系统服务及其服务正常工作所需的基础结构,工具以及管理员和技术人员,统的管理和监控必须能够远程完成。该系统的管理员可以使用管理员帐号从远程进行一切操作是管理性得到大大的提高。两种不同使用权限的用户: 普通用户(主要针对考生); 管理员(驾校的管理员);2.4 系统结构该系统采用了基于三层构架的模式系统的工作流程:客户端向服务器发出考试请求服务器在一系列认证后把试题发给客户端客户端答题,提交答案服务器端调用批改系统进行批改,向客户端返回成绩。后台数据库采用SQL2000,客户服务器系统的通信基于TCP/IP协议。 浏览器命题系统命题系统数据库接口答题系统服务器数据库接口考生库试题库网络 服务器端 图2-1 系统工作流程图2.5 在线考试系统的数据流图题库管理管理员题库文件 考题 考生数据录入 合法考生信息考生信息文件 登录合法考生生成试卷,答题 图2-2 系统总数据流图2.5.1管理员组卷数据流图管理员接受请求更改题库 题库管理 添加题目 试题信息 管理员接受请求更改考生信息 考生管理 添加考生 考生信息 图2-3管理员组卷数据流图2.5.2 考生考试数据流图考生试卷系统考试 输入考号 试卷信息 显示成绩 图2-4考生组卷数据流图2.6 数据字典的描述数据字典是关于数据的信息的集合,也就是对数据流图包含的所有元素的定义的集合。任何字典最重要的用途都是供人查阅对不了解的条目的解释,数据字典的作用也正是在软件分析和设计的过程中给人提供关于数据的描述信息。数据字典最重要的用途是作为分析阶段的工具。在数据字典中建立的一组严密一致的定义很有助于改进分析员和用户之间的通信,因此将消除许多可能的误解。对数据的这一系列严密一致的定义也有助于改进在不同的开发人员或不同的开发小组之间的通信。如果要求所有开发人员都根据公共的数据字典描述数据和设计模块,则能避免许多麻烦的接口问题。数据字典中包含的每个数据元素的控制信息是很有价值的。因为列出了使用一个给定的数据元素的所有程序(或模块),所以很容易估计改变一个数据将产生的影响,并且能对所有受影响的程序或模块作出相应的改变。因此,数据字典是开发数据库的第一步,而且是很有价值的一步。限于篇幅,下面给出本系统的部分数据字典描述: 用户信息表的数据字典的描述: 该表描述的是用户的信息,用户查询,修改时是调用该表的信息,从而返回给用户。比如成绩等。 名字:用户信息表 描述:用于存储用户所有的信息,可以修改,查询,添加用户信息定义:用户编号+用户帐号+用户密码+用户姓名+用户成绩位置:用户信息表(tb_user) 管理员信息表的数据字典的描述: 名字:管理员信息表 描述:用来存储管理员的所有信息。 定义:管理员编号+管理员帐号 +管理员密码 +管理员姓名+管理员备注 位置:管理员信息表(tb_admin) 该表描述的是管理员的信息,管理员可以通过修改用户的信息,并返回给用户信息表里,可以删除,添加,修改题库里的题目。 题库表的数据字典的描述:名字:题库表 描述:系统用于存储考试试题及答案的表。定义:题目编号+题目类别+题目内容+题目类型+题目答案+题目图片路径位置:题库表(tb_question) 该表描述的是所有题目及答案的表,用户可以通过此表生成考题,返回到用户试卷表中,成为考试题目,管理员可以通过题目编号查询。 试卷信息表的数据字典的描述:名字:试卷信息表描述:用来存储用户类型的表,识别用户属于哪种类型。定义:试卷的编号+题库题目题目+试卷题目编号+题目答案+题目类型位置:试卷信息表(tb_exam) 通过不同的用户生成不同类型的题目,全部存储在试卷信息表中,再返回到用户试卷表中,考生提交试卷后,该考生在此表中生成的题目自动删除。 用户试卷表的数据字典的描述:名字:用户试卷表 描述:存储用户考试时所生成的考试信息。定义:试卷编号+试卷类型+用户答题时间开始+答题时间结束 位置:用户试卷表(tb_examinfo) 该表描述的是试题信息的情况。试题通过从试卷信息表中生成的表, 待答题完将用户的成绩返回给用户信息表中。3 在线考试系统分析与设计本系统是面对驾校的所有考生和系统管理员。一些公开信息,所有的用户都可以使用并能得到结果,比如:所有的普通用户、管理员都可以对本系统进行使用;但是有一些信息被设置了权限,只允许管理员进行某些操作,比如:普通用户(考生)就不能添加试题、删除试题等。因此,经过用户的需求分析,做出了详细的系统设计。3.1 系统设计总体思想、目标采用了B/S结构基于Web技术,以sql2000作为后台数据库。来实现在线考试系统。该系统本着减轻驾校工作负担、提高工作效率、优化学生考试的流程,增强参加考试学生的身份识别,比传统的考试模式节省人力财力和时间。随着网上浏览器功能的日益增强,一种新型的体系结构B/S应运而生,并获得飞速发展。B/S结构极大的简化了客户端的工作,客户端只需安装、配置少量的客户端软件即可,服务器将担负更多的工作,对数据库的访问和应用程序的执行只由服务器完成。3.2 在线考试系统结构、功能设计系统按照结构化分析(Structure Analysis)的方法,采用自顶向下,逐步求精的原则,确定相应的系统数据流图,在设计阶段与结构化设计方法(Structure Design)相结合,运用“模块化设计”思想,把系统分为若干个功能子系统,把每个子系统按业务性质划分为若干个功能模块。根据需求分析,在线考试系统的页面分布图和系统功能结构图如下:考生信息页面考生页面考试页面结束页面主页登陆管理员页面学员管理学员查询学员添加学员修改系统管理题库管理查看考题添加考题生成试题 图3-1 在线考试系统的页面分布图考试系统远程查询系统远程考试系统本地服务器管理修改考生信息删除考生考生管理添加考生登陆考试出题自动记时自动交卷输出成绩单考生信息考生编号服务管理数据查询查看题目增加题目删除题目修改题目考生信息考生编号管理员帐户维护查询在线人数练习题生成 图3-2 在线考试系统的功能结构图3.3系统流程图开始进入用户登录界面填写身份验证信息身份验证是否通过 N是否管理员 Y进入普通用户考试主界面进入管理员管理主界面 Y N题目管理,考生管理,系统管理考试时间结束或提交考试结束 显示得分,错题分析 结束 图3-3 在线考试系统流程图3.4系统功能模块设计 根据需求分析和系统结构图,进行了系统功能模块设计,主要的模块有:用户登陆、用户管理,试题管理,考试模块,练习模块,查询等。 用户登陆:系统分为两种用户角色,根据不同的权限登陆到不同的界面。 用户管理:该模块包括了用户的添加,修改,删除等功能。为管理员提供了对用户的修改,管理员可以根据自己的需要来对系统中的用户进行管理,以满足需求。 试题管理:该模块为管理员提供了对系统中试题进行管理的功能包括添加,删除,修改试题。 练习模块:固定的5套练习题供用户练习使用。 考试模块:随机生成1套共100题的试卷,考试结束时自动评分错题分析。 查询:查询功能使用户可以方便查找自己相关资料。4 系统平台、计算模式及技术4.1 系统的软、硬件平台(1)系统的硬件平台:服务器端的最低配置是由建立站点所需的软件来决定的,在最低配置的情况下,服务器的性能往往不尽如人意,现在的硬件性能已经相当出色,而且价格也很便宜,因此通常应给服务器配置高性能硬件。包括Web服务器、客户机、网卡及Internet网络资源。(2)系统的软件平台:本系统基于Windows 2000 server操作系统、SQL server 2000数据库平台,采用B/S计算模式及JSP/Servlet开发动态Web技术。4.2 系统选用的计算模式及优越性4.2.1 Brower/Server模式通过对用户的需求分析以及系统的需求分析,为了更好的满足用户通过网络对系统进行访问和操作的需求,本学生信息管理系统最终选择了Brower/Server模式。Brower/Server模式将Web技术与数据库技术相结合,扩展了C/S模式的分布计算特性,实现了动态Web应用。B/S模式采用三层分布结构:浏览器Web服务器数据库服务器。B/S模式增加了较厚的中间层服务器(包括Web服务器及相关的接口程序),它将浏览器与数据库服务器连接的同时,分担了数据库服务器上较多的任务,真正实现了“瘦客户机胖中间层瘦数据库服务器”的计算模式。B/S(Brower/Server)三层体系结构模式如图浏览器http服务器应用程序服务器Servlet容器servletjspJDBC数据库图 4-1三层体系结构模式4.2.2 系统采用B/S三层体系结构模式的优越性使用简单,用户使用单一的Browser软件,通过鼠标即可访问文本、图像、声音、电影及数据库等信息。系统管理员无须再为客户端操心,大大减轻了管理负担。实现了开发环境与应用环境的分离,系统开发人员基于Web浏览器进行MIS系统开发,绝大部分工作由服务器端完成,只有生成的HTML页面被送回到客户端(包括少量嵌入式构件及脚本信息),可保证所有用户通过浏览器调用应用程序,实现了平台的无关性。数据库结构的改变不再对客户端产生连锁影响,只需修改服务器端的应用程序即可,极大地提高了系统的维护效率。保障系统安全性,B/S系统在客户机与数据库服务器之间增加了一层Web服务器,使两者不在直接相连。通过中间层的过滤器来实现系统的权限验证,就算其他用户知道系统某些页面的URL地址,没有通过中间层的权限验证也无法访问这些页面,这样有效地防止了非法用户的入侵。保障系统扩展性好,TCP/IP、HTTP的标准性使得B/S模式可直接接入Internet,具有良好的扩展性。较低的开发和维护成本,Brower/Server的应用只需在客户端装有通用的浏览器即可,维护和升级工作都在服务器端进行,不需对客户端进行任何改变,故而大大降低了开发和维护的成本。4.3 系统用到的相关技术4.3.1 Java Servlet技术Servlet是Java技术对CGI编程的回答。Servlet程序在服务器端运行,动态地生成Web页面。与传统的CGI和许多其他类似CGI的技术相比,Java Servlet具有更高的效率,更容易使用,功能更强大,具有更好的可移植性,更节省投资。在传统的CGI中,每个请求都要启动一个新的进程,如果CGI程序本身的执行时间较短,启动进程所需要的开销很可能反而超过实际执行时间。而在Servlet中,每个请求由一个轻量级的Java线程处理(而不是重量级的操作系统进程)。如果有N个并发的对同一CGI程序的请求,则该CGI程序的代码在内存中重复装载了N次;而对于Servlet,处理请求的是N个线程,只需要一份Servlet类代码。在性能优化方面,Servlet也比CGI有着更多的选择。Servlet提供了大量的实用工具例程,例如自动地解析和解码HTML表单数据、读取和设置HTTP头、处理Cookie、跟踪会话状态等。Servlet用Java编写,Servlet API具有完善的标准。因此,为I-Planet Enterprise Server写的Servlet无需任何实质上的改动即可移植到Apache、Microsoft IIS或者WebStar。几乎所有的主流服务器都直接或通过插件支持Servlet。4.3.2 JavaScript技术JavaScript是一种基于对象(Object)和事件驱动(Event Driven)并具有安全性能的脚本语言。使用它的目的是与HTML超文本标记语言、Java 脚本语言(Java小程序)一起实现在一个Web页面中链接多个对象,与Web客户交互作用。从而可以开发客户端的应用程序等。它是通过嵌入或调入在标准的HTML语言中实现的。它的出现弥补了HTML语言的缺陷,它是Java与HTML折衷的选择。Javascript加入网页有两种方法:1、直接加入HTML文档方式,2、引用方式。在本系统中只采用了第一种方法来开发Javascript。4.3.3 JSP技术JavaServer Pages(JSP)是一种实现普通静态HTML和动态HTML混合编码的技术。许多由CGI程序生成的页面大部分仍旧是静态HTML,动态内容只在页面中有限的几个部分出现。但是包括Servlet在内的大多数CGI技术及其变种,总是通过程序生成整个页面。JSP使得我们可以分别创建这两个部分。JSP并没有增加任何本质上不能用Servlet实现的功能。但是,在JSP中编写静态HTML更加方便,不必再用 println语句来输出每一行HTML代码。更重要的是,借助内容和外观的分离,页面制作中不同性质的任务可以方便地分开:比如,由界面实现人员进行HTML设计,同时留出供Servlet程序员插入动态内容的空间。4.3.4 数据库技术数据库是学生信息管理系统的核心内容。目前,Web与数据库接口技术有很多,其中JDBC是Java程序连接和存取数据库的应用程序接口,由一组用Java语言编写的类与接口组成,是执行SQL语句的Java API。在数据的存取方面,采用了 JSP/Servlet+JDBC的技术,即客户端不产生数据库查询命令,客户端上的浏览器通过URL和中间层的Web服务器建立连接。Web服务器主要负责接收本地或远程浏览器的HTTP数据请求,然后中间层的Servlet收到请求后,通过执行程序中的SQL语句,利用JDBC提供的标准API对数据库进行访问和相应的操作处理。Servlet再将查询的数据传给JSP,最后生成标准的JSP页面将结果返回给提出请求的浏览器。这样,不仅将客户端与数据库服务器端分开,同时提高了数据库的访问效率。以下内容由本人完成5 表现层和业务层的开发与实现5.1 系统的结构整个考试系统采用三层体系结构。第一层是客户端(表示层),提供用户与系统的友好访问;第二层是中间层(也叫业务层),处理和实现业务逻辑;第三层是数据源层(数据服务层,数据库系统),负责数据信息的存储、访问及其优化。由于业务逻辑被提取到业务层,大大降低了客户端负担,因此也成为瘦客户(Thin Client)结构,三层结构在传统的二层结构的基础上增加了应用服务层,将应用逻辑单独进行处理,从而使得用户界面与应用逻辑位于不同的平台上,两者之间的通信协议由系统自行定义。通过这样的结构设计,使得应用逻辑被所有用户共享,这是两层结构应用软件与三层应用软件之间最大的区别。三层结构将表示部分和业务逻辑部分按照客户层和应用服务层相分离,客户端和应用服务层、应用服务层和数据库服务层之间的通讯、异构平台之间的数据交换等都可以通过中间件或者相关程序来实现。当数据库或者应用服务层的业务逻辑改变时,客户端并不需要改变,反之亦然,大大提高了系统模块的复用性,缩短开发周期,降低维护费用。在本系统中,浏览器直接通过HTML或者JSP的形式与用户交互,响应用户的请求。服务层主要由负责逻辑处理的Servlet和负责页面表现的JSP组成,本系统在执行用户请求时把Servlet用作应用程序的控制器,把JSP文档作为视图,JavaBean被用来表示模型。所有的请求都被发送给作为控制器的Servlet,它接受请求,并根据请求信息将它们分发给适当的JSP来响应。图5-1 系统结构图浏览器(IE、NetScape)Web服务器Jsp(Servlet)JavaBean数据库服务器(SQL Server)本系统服务层访问数据库并不是传统的直接访问,而是通过JavaBean先将数据库实例化,将每个表看作一个对象,每个表的字段看作对象的属性。这样每当用户需要操作数据库的时候Servlet会根据JSP的需求生成JavaBean的实例并输出给JSP环境,JSP可以通过直接调用方法或使用Use Bean的自定义标签得到JavaBean中的数据,实际上操作数据库就变成了对JavaBean的操作这种设计模式很好地实现了数据层与表示层的分离,使开发工作更加容易和迅速。5.2 表现层的开发本系统的表现层主要由JSP来实现,由静态的HTML和动态的JSP脚本交互构成显示信息。由于篇幅有限,仅给出部分页面。5.2.1登陆页面登陆页面Login.jsp的部分代码如下:  用户登陆   身份: 管理员 考生 账号: 密码: 该页面显示的结果为如图5-1:图 5-1 用户登陆界面图5.2.2后台管理页面当登陆身份选择为管理员,登陆成功后显示为后台管理页面,该页面采用框架的结构将left.jsp,title.jsp和main.jsp分别引入并显示给用户。该页面admin_index.jsp的具体代码如下 : 后台管理页面 该页面显示的结果如图5-2:图 5-2 后台管理页面5.2.3考试页面当登陆身份选择为考生,登陆成功并选择参加模拟考试,页面将为考试页面。该页面仍然采为框架式显示。具体代码如下: 试卷页面 在该框架中,top.jsp负责显示倒计时,showTest.jsp负责显示考试的页面。采取这种设计的好处是showTest.jsp的每次刷新不会影响倒计时。具体显示结果如图5-3。图5-3 考试页面图5.3 服务层的开发本系统的服务层主要由Servlet和一些进行逻辑处理的JSP组成。服务层的主要功能是响应用户的请求,并通过JavaBean来操作数据库,并将用户期望的信息传递给表现层,最终由表现层完成用户的相应。如果单单是用Servlet来处理业务,那么不同的用户请求就要需要不同的Servlet,但是很多时候不同的请求往往是需要Servlet做同样的事。比如管理员在进行用户资料管理的时候会需要显示某个用户的资料,而某个用户想在系统前台查询自己的资料,这两种情况要求服务层产生的响应都是一样的。如果对于这种情况而设计两个几乎一样代码的Servlet就太不划算。为了最大限度的代码重用,将一些业务处理的方法封装起来,这样当上述情况发生的时候只需要调用该方法就行了。以下是各功能模块服务层的具体实现,由于篇幅由限,仅给出部分代码。5.3.1登陆模块当用户请求登陆系统的时候,用户提交的账号信息会通过表现层传送给服务层进行检查,负责检查该信息的Servlet是Login,此时在Login中就会调用封装在UserService类中的login方法。处理该流程中Login的部分代码如下:public void doPost(HttpServletRequest request, HttpServletResponse response)throws ServletException, IOException response.setContentType(text/html;chartse=utf-8);HttpSession session = request.getSession();tryString user= request.getParameter(user);String password =request.getParameter(password);UserService us =new UserService();if(us.login(user, password)User u = us.selectFromNum(user);String type = u.getUserType();int id = u.getUserId();String name = u.getUserName();System.out.println(登陆成功!);session.setAttribute(isLogin, true);session.setAttribute(type, type);session.setAttribute(id, id);elseSystem.out.println(登陆失败);response.sendRedirect(Login.jsp);catch(Exception e)e.printStackTrace();UserService中的login方法代码入下:public Boolean login(String user ,String password) throws Exception DataService ds = new DataService();ResultSet rst =ds.tb_user();Boolean bl =false;trywhile(rst.next()if(user!=null&password!=null)/如果数据库存在提交的数据,返回true; if(rst.getString(user_num).equals(user)&rst.getString(user_password).equals(password)bl =true;catch(Exception e)System.out.println(e.toString();finallyOperation.close(stmt, rst, con);return bl;该流程中,如果用户提交的信息是合法的,那么login方法就回返回true值,反之就是false,在Login中就可以根据返回值作出不同的处理,如果是合法用户就登入系统,如果是非法用户,就会提示登陆失败,并且返回登陆页面。整个过程结构非常清晰,而且在整个处理过程中没有一句SQL的处理语句,数据库的查询部分是在数据层完成。服务层需要的数据信息是由数据层方法的返回的ResultSet对象提供的。5.3.2用户管理、试题管理模块用户管理和试题管理都属于管理员在后台的操作,管理方法实质上就是数据表信息的添加,修改,删除。而这些操作都是服务层通过JavaBean来实现的,为了方便服务层对用户和试题的管理,将用户信息表和试题信息表实例成JavaBean,数据表的字段就是该JavaBean的属性,分别将数据库的tb_user和tb_question数据表实例成User和Question这两个JavaBean,具体的JavaBean代码见附件。JavaBean设计好后,所有的信息管理都会变得非常容易,例如管理员进行的用户添加操作,管理员在user_add.jsp页面填写好用户的基本信息点击“提交”后,由user_add_do.jap进行处理。该页面真正处理这个业务的仅仅只有七行代码: 在这里服务层不用Servlet而用JSP主要是利用JSP种的jsp:useBean动作指令,如果用Serlvet来获取前面页面提交的表单参数,必须写出十多个request.getParameter()方法,而且获取的参数数据类型都是字符串,还要进行数据转换才能正确的写入数据库。而用JSP的jsp:useBean动作指令提交页面的参数会自动赋给JavaBean,不仅比用Servlet省去了十多行代码,连参数的类型转换都自动完成,剩下的就是调用数据层的addUser方法,整个流程就完成了。用户的修改操作和添加操作差不多,仍然用到jsp:useBean动作指令,只是调用数据层的方法变成了updateUser而已,具体代码如下: 用户信息的删除操作只需要将用户的唯一标识即由用户信息表主键实例化的userId属性传递给Servlet,再调用DateService的deleteUser方法就完成了,部分代码如下:public void doPost(HttpServletRequest request, HttpServletResponse response)throws ServletException, IOException response.setContentType(text/html);PrintWriter out = response.getWriter();int id =Integer.parseInt(request.getParameter(id); DateService ds= new UserService(); try ds.deleteUser(id); catch (Exception e) Out.println(删除失败); response.sendRedirect(deleteError.jsp);response.sendRedirect(user_show.jsp);试题信息的管理操作和用户的管理差不多,只是用到的JavaBean为Question,在进行删除处理同样是将唯一标识传递给服务层,再调用删除方法进行操作。5.3.3考试模块考试模块为整个系统的核心部分,考生选择参加模拟考试,从出卷到答题目再到自动评分整个过程涉及的数据表和服务层的方法都比较多,该模块仍然通过JavaBean来实现服务层和数据层的连接。当用户点击“参加模拟考试”时,服务层的Exam_namal迅速从session获取该用户的基本信息比如驾照类型,考试编号等,然后调用生成试题的方法,再将生成的题目存入考生试卷表中,为了防止在生成试题的过程中出现阻塞从而造成题目混乱,加入了线程的同步。该Servlet的部分代码如下:public void doPost(HttpServletRequest request, HttpServletResponse response)throws ServletException, IOException response.setContentType(text/html; charset=gb2312);request.setCharacterEncoding(gb2312); PrintWriter out = response.getWriter();HttpSession session = request.getSession();String num = (String)session.getAttribute(num);ExamService es = new ExamService();int

温馨提示

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

评论

0/150

提交评论