基于java技术的在线考试系统的设计与实现_第1页
基于java技术的在线考试系统的设计与实现_第2页
基于java技术的在线考试系统的设计与实现_第3页
基于java技术的在线考试系统的设计与实现_第4页
基于java技术的在线考试系统的设计与实现_第5页
已阅读5页,还剩114页未读 继续免费阅读

下载本文档

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

文档简介

1、 兰州大学计算机科学与技术学院本科生毕业论文(设计)题 目:基于JAVA技术的在线考试系统的设计与实现 有需要的联系我 296117806我还有在线测试的全部文件目录 TOC h z t 一级标题,1,二级标题,2 HYPERLINK l _Toc263671354 摘要 PAGEREF _Toc263671354 h I HYPERLINK l _Toc263671355 ABSTRACT PAGEREF _Toc263671355 h II HYPERLINK l _Toc263671356 引言 PAGEREF _Toc263671356 h 1 HYPERLINK l _Toc2636

2、71357 第1章 系统概述 PAGEREF _Toc263671357 h 1 HYPERLINK l _Toc263671358 1.1 项目目标 PAGEREF _Toc263671358 h 1 HYPERLINK l _Toc263671359 1.3 开发工具简介 PAGEREF _Toc263671359 h 1 HYPERLINK l _Toc263671360 第2章需求分析 PAGEREF _Toc263671360 h 3 HYPERLINK l _Toc263671361 2.1 任务概述 PAGEREF _Toc263671361 h 3 HYPERLINK l _T

3、oc263671362 2.2 功能需求分析 PAGEREF _Toc263671362 h 3 HYPERLINK l _Toc263671363 2.3 数据库连接技术 PAGEREF _Toc263671363 h 4 HYPERLINK l _Toc263671364 2.4 MVC设计模式 PAGEREF _Toc263671364 h 4 HYPERLINK l _Toc263671365 第3章 系统设计 PAGEREF _Toc263671365 h 6 HYPERLINK l _Toc263671366 3.1 系统功能模块设计 PAGEREF _Toc263671366 h

4、 6 HYPERLINK l _Toc263671367 3.3 数据库设计 PAGEREF _Toc263671367 h 8 HYPERLINK l _Toc263671368 第4章 详细设计 PAGEREF _Toc263671368 h 10 HYPERLINK l _Toc263671369 4.1 系统模块设计 PAGEREF _Toc263671369 h 10 HYPERLINK l _Toc263671370 4.2 关键技术解决 PAGEREF _Toc263671370 h 19 HYPERLINK l _Toc263671371 结束语 PAGEREF _Toc263

5、671371 h 22 HYPERLINK l _Toc263671372 参考文献 PAGEREF _Toc263671372 h 23 HYPERLINK l _Toc263671373 致谢 PAGEREF _Toc263671373 h 24摘要在线考试是一种通过互联网络或局域网进行的新型考试方式,可实现考试的无纸化管理,这样即方便校方考务的管理,也方便了考生,尤其适合考生分布广,不易集中的远程教育。基于此本人利用JAVA技术开发了一款在线考试系统。该系统分为教师和学生两种用户,教师用户可以对系统进行试题的增加、删除、修改、查询操作,对考生的添加与删除操作,对试卷的生成与删除以及对学生

6、成绩的查询操作;学生用户可以进行在线考试和考试成绩的查询操作。本文主要从系统概述、需求分析、系统设计、详细设计、结论五部分介绍了基于JAVA技术的在线考试系统的分析、设计和开发的全部过程。关键词:在线考试;B/S模式;MVC模式;JSP;Oracle数据库ABSTRACTOnline examination is a new form of examination through the Internet or the local area network to work , and it can make the paperless management came true . Meanwh

7、ile it is convenient to the school management of authorities examining, and it also has facilitated the examinee, especially suit to the distance learning which the examinee is to distribute broadly and difficult to concentrate. Based on this I developed an on-line examination system by using Java t

8、echnologies. This system divides into two kinds of users include teachers and students , the teachers may add examination questions to the system, the deletion, the revision, the inquiry operation, to the examinees increase and deletion operation, to the production and deletion of examination paper

9、as well as to student achievement inquiry operation .The student can take the online examination and the examination score inquiry operation. The text mainly introduced the whole process of the online examinations analysis ,design and development which based on the JAVA technology through the five p

10、arts :the system survey, the demand analysis, the system design, the detailed design and the conclusion.Keyword: online examination,mode of B/ S,mode of MVC,JSP,databases of the oracle引言考试是学校教育或公司机构考察人员的一种主要方式。在传统的学校教学中,进行一场考试,要求老师刻试卷、印试卷、安排考试、监考、收集试卷、评改试卷、讲评试卷和分析试卷,这是一个繁杂的过程,需要大量人力、物力与时间的投入,已经越来越不适

11、应学校信息化建设与现代教学的需要。尤其在远程网络教学中,学生分布广,不易统一集中安排考试,给校方和学生带来了众多的不便。而在线考试系统,正是信息化建设的产物,它是传统考场的延伸。它可以利用互联网络和局域网,随时随地的对学生进行考试,加上数据库技术的利用,大大简化了传统考试的过程,因此在线考试是电子化教学不可缺少的辅助手段。在当今信息时代,计算机技术与网络技术越来越广地应用于各个领域,改变着人们的学习、工作、生活乃至思维方式,也引起了教育领域的重大变革。将计算机与网络技术应用于现代高等教育中,是现代高等教育发展的需要,也是改革教育模式,提高学校教学效果和教学效率、提高科研和管理水平的必要手段。第

12、1章 系统概述1.1 项目目标(1)在线考试系统的总体目标:在线考试系统可以帮助教师完成一个考试从题目设计,考试安排,考试实施,分数统计总结的所有工作。所有的考试数据和其它数据库需要一种主流的方式进行存储和管理,例如使用数据库技术。考试数据的存放和处理必须对考试保密,需要一定的安全性保障。(2)对学生用户目标:这个软件是分布式的,这意味着只要有考试客户端可以连接到考试应用服务器,任何考生在任何地方只要进行身份确认,就能完成考试。题目最好有一定的稳定性和随机性。稳定性可以保证每一次考试对每一个考生是公平的,随机性可以避免作弊的发生。(3)对教师用户的目标:教师可以进行考试设计和安排。通过管理学生

13、用户,教师可以进行考试的身份管理。考生的考试分数可以被保存下来,供教师进行统计和查看。1.3 开发工具简介开发在线考试系统,使用了以下开发工具及开发模式:选择Oracle作为后台的数据库,选择JAVA、JSP、JavaScript、Html作为应用程序开发工具,运用Tomcat服务器技术,整个系统完全基于B/S (Browser/Server)模式进行设计。(1)JAVA简介Java是Sun公司推出的新的一代面向对象程序设计语言,特别适合于Internet应用程序开发。Java的产生与流行是当今Internet发展的客观要求,Java是一门各方面性能都很好的编程语言,它的基本特点是简单、面向对

14、象、分布式、健壮的、安全的、结构中立的、可移植的、性能很优异的、多线程的、动态的,特别适合在Internet环境上开发的应用系统。(2)Web应用程序开发环境JSP技术JSP的全称是Java Server Pages,它是SUN推出的一种动态网页技术标准。它在传统的静态页面文件(*.html)中加入JAVA程序片段和JSP标记,就构成了JSP页面。JSP具有以下的优点:将业务层与视图层分离:使用JSP技术,网络开发人员可充分使用HTML来设计页面显示部分(如字体颜色等),并使用JSP指令或者JAVA程序片段来生成网页上的动态内容;能够跨平台:JSP支持绝大部分平台,包括现在非常流行的LINUX

15、系统,应用非常广泛的Apache服务器也提供了支持JSP的服务;组件的开发和使用很方便:如ASP的组件是由C+,VB等语言开发的,并需要注册才能使用;而JSP的组件是用Java开发的,可以直接使用;一次编写,处处运行:作为JAVA开发平台的一部分,JSP具有JAVA的所有优点。(3)Tomcat应用服务器目前支持JSP的应用服务器是较多的,Tomcat是其中较为流行的一个Web服务器,Tomcat是一个免费的开源的Serlvet容器,在Tomcat中,应用程序的部署很简单,你只需将你的项目放到Tomcat的webapps目录下,Tomcat会自动检测到这个文件。你在浏览器中访问这个应用的JSP

16、时,通常第一次会很慢,因为Tomcat要将JSP转化为Servlet文件,然后编译。编译以后,访问将会很快。 Tomcat也具有传统的Web服务器的功能:处理Html页面。但是与Apache相比,它的处理静态Html的能力就不如Apache。我们可以将Tomcat和Apache集成到一块,让Apache处理静态Html,而Tomcat处理JSP和Servlet。Tomcat是一个很好的工具,不仅仅因为其免费,功能强大,更因为其开放性,越来越受到人们的重视。(4)ORACLE数据库ORACLE 数据库系统是美国ORACLE公司(甲骨文)提供的以分布式数据库为核心的一组软件产品,是目前最流行的客户

17、/服务器(CLIENT/SERVER)或B/S体系结构的数据库之一。ORACLE数据库是目前世界上使用最为广泛的数据库管理系统,作为一个通用的数据库系统,它具有完整的数据管理功能;作为一个关系数据库,它是一个完备关系的产品;作为分布式数据库它实现了分布式处理功能。但它的所有知识,只要在一种机型上学习了ORACLE知识,便能在各种类型的机器上使用它。ORACLE 具有如下特性: 数据的大容量性。数据的保存的持久性。数据的共享性。数据的可靠性。(5)B/S 开发模式伴随着Internet的迅速发展,计算机技术正在由基于C/S(client/ Server)模式的应用系统转变为基于B/S模式的应用系

18、统。过去,网络软件的开发都采用C/S(client)模式,在这种模式下,主要的业务逻辑都集中于客户端程序,因此,必然导致以下问题:系统安装、调试、维护和升级困难。由于客户端的硬件配置可能存在差异,软件环境各不相同,因此,在安装时,必须对每一个客户端分别进行配置,同样,在软件升级时也要对客户端分别处理。在整个系统中,业务逻辑和用户界面都集中到了客户端,必然会增加安全隐患。B/S模式带来了巨大的好处:开发成本及维护成本降低。由于B/S架构管理软件只安装在服务器端(Server)上,即应用程序在部署、升级、维护时,只需要在服务器端进行配置就可以了,网络管理人员只需要管理服务器就行了,用户界面和主要事

19、务逻辑在服务器(Server)端,用户完全通过WWW浏览器访问,极少部分事务逻辑在前端(Browser)实现,所有的客户端只有浏览器,网络管理人员只需要做硬件维护。良好的安全性能,防火墙技术可以保证后台数据库的安全性。所有的配置工作都集中在服务器端而所有客户端请求都是通过DBMS来访问数据库,从而大大减少了数据直接暴露的风险。第2章需求分析2.1 任务概述在线考试管理系统主要实现题库管理、在线制作试卷、在线控制考试、自动评分(选择题)、自动交卷、考生管理、成绩查询、试卷管理等功能,充分利用计算机科学与技术,改变传统的考试操作方式,实现无纸化考试的模式。2.2 功能需求分析系统主要功能模块:系统

20、分为教师用户和学生用户,教师用户可以对系统进行试题管理、考生管理、试卷管理以及成绩管理;学生用户可以进行在线考试和考试成绩的查询操作。用户访问用例图如图2-1所示:教师用户学生用户图2-1 用户访问用例图系统成绩查询成绩管理在线考试学生管理试卷管理题库管理2.3 数据库连接技术对于数据库的连接,本系统的数据访问接口采用JDBC数据驱动程序,以纯Java的方式来连接数据库,为访问不同的数据库提供统一的接口。JDBC(Java Data Base Connectivity,java数据库连接)是一种用于执行SQL语句的Java API,可以为多种关系数据库提供统一访问,它由一组用Java语言编写的

21、类和接口组成。有了JDBC,向各种关系数据发送SQL语句就是一件很容易的事。有了JDBC API,就不必为访问Sybase数据库专门写一个程序,为访问Oracle数据库又专门写一个程序,或为访问Informix数据库又编写另一个程序等等,程序员只需用JDBC API写一个程序就够了,它可向相应数据库发送SQL调用。同时,将Java语言和JDBC结合起来使程序员不必为不同的平台编写不同的应用程序,只须写一遍程序就可以让它在任何平台上运行,这也是Java语言“编写一次,处处运行”的优势。Java 具有坚固、安全、易于使用、易于理解和可以从网络上自动下载等特性,是编写数据库应用程序的杰出语言。所需要

22、的只是 Java应用程序与各种不同数据库之间进行对话的方法。而 JDBC 正是作为此种用途的机制。2.4 MVC设计模式 系统采用MVC设计模式,主要是将程序开发分为MODEL层(数据持久层)、VIEW(界面表示层)、CONTROL层(控制层)这三个层面,并将这三个层面分开来,形成了一个立体的架构。三个层次之间的主要交互如下所示:见图 2-2图2-2 MVC模式三层框架图(1)MVC模型介绍 MVC英文即Model-View-Controller,即把一个应用的输入、处理、输出流程按照Model、View、Controller的方式进行分离,这样一个应用被分成三个层模型层、视图层、控制层。视图

23、(View)代表用户交互界面, 模型(Model):就是业务流程/状态的处理以及业务规则的制定。业务流程的处理过程对其它层来说是黑箱操作,模型接受视图请求的数据,并返回最终的处理结果。业务模型还有一个很重要的模型那就是数据模型。数据模型主要指实体对象的数据保存(持续化)。 控制(Controller)可以理解为从用户接收请求, 将模型与视图匹配在一起,共同完成用户的请求。划分控制层的作用也很明显,它清楚地告诉你,它就是一个分发器,选择什么样的模型,选择什么样的视图,可以完成什么样的用户请求。(2)MVC设计模式的优点首先,最重要的是应该有多个视图对应一个模型的能力。在目前用户需求的快速变化下,

24、可能有多种方式访问应用的要求。其次,由于模型返回的数据不带任何显示格式,因而这些模型也可直接应用于接口的使用。 再次,由于一个应用被分离为三层,因此有时改变其中的一层就能满足应用的改变。一个应用的业务流程或者业务规则的改变只需改动MVC的模型层。 控制层的概念也很有效,由于它把不同的模型和不同的视图组合在一起完成不同的请求,因此,控制层可以说是包含了用户请求权限的概念。 最后,它还有利于软件工程化管理。由于不同的层各司其职,每一层不同的应用具有某些相同的特征,有利于通过工程化、工具化产生管理程序代码第3章 系统设计3.1 系统功能模块设计(1)系统功能结构图系统分为教师用户和学生用户,教师用户

25、可以对系统进行试题的增、删、改、查操作,考生的添加与删除操作,试卷生成与删除以及学生成绩的查询操作;学生用户可以进行在线考试和考试成绩的查询操作。整个系统的功能结构图如图3-1所示:在线考试系统教师用户添加试题试卷管 理成绩管 理题库管 理修改信息在线考试成绩查询修改试题删除试题查询试题生成试卷删除试卷删除学生图3-1 系统功能模块图成绩查询添加学生学生管 理学生用户教师用户权限:题库管理:用于对单个试题的增、删除、改等基本维护以及对试题进行按科目查询。试卷管理:进行试卷的组合和试卷的删除。成绩管理:对每次考试的学生成绩可以进行查看。学生管理:添加参加考试学生的基本信息。学生用户权限:学生用户

26、可以进行在线考试、个人信息修改以及考试成绩查询。(2)系统的用例图如图3-2所示:图3-2 系统用例图(3)用户登录类图如图3-3所示:图3-3 用户登陆类图(4)系统操作序列图如图3-4所示:图3-4 系统操作时序图3.3 数据库设计(1)主要数据库表的介绍根据系统需要和考试需要,设立了如下数据库表:试题表(question):用于保存所有试题的描述信息答案及所属科目。见表3-1选项表(choices):用于保存所有试题的所有选项及所属试题。见表3-2所属科目表(Subject):用于录入试题相关的科目应用。见表3-3成绩表(scorelist):用于存储学生的考试成绩。见表3-4教师表(t

27、eacher):用于保存教师的登陆的基本信息。见表3-5学生表(student):用于保存学生的考试的用户名及登陆密码。见表3-6(2)主要数据库表的结构定义(数据词典):数据库表名的定义使用:表名,表名可以是多个英文单词的组合,从组合的第二单词起首字母大写,字段命名是能表达字段内容的英文单词的组合,组合方式同表名相同。NN:表示not null,不填表可为空;PK:表示主键。数据类型不使用固定数据库的类型,标识大众类型,如字符串、字符、数字等。输写数据表在数据库中的物理名称,可用自己熟悉的语言再定义表名称,方便沟通。长度定义又数据类型决定:如字符串可选8000以下,数字可在50位之间,字符只

28、允许一位。主要表结构如下:表3-1 question主要字段数据类型长度属性描述备注questionID数字6PK 主键由系统自动生成questionDescription字符串50NN试题名称correctKey字符串1NN试题答案选项subjectId数字5NN外键试题所属科目。表3-2 choices主要字段数据类型长度属性描述备注choiceId数字7PK主键由系统自动生成choice字符串2NN试题选项optionDescription字符串100NN选项描述。表3-3 subject主要字段数据类型长度属性描述备注subjectId数字5NN主键由系统自动生成name字符串50NN

29、科目名称输入要唯一表3-4 scoreList主要字段数据类型长度属性描述备注scoreListId数字7NN主键由系统自动生成studentId数字6NN学生subjectId数字5NN科目score数字3NN成绩自动生成成绩。testDate日期8NN考试时间表3-5 teacher主要字段数据类型长度属性描述备注teacherId数字4NN主键由系统自动生成loginName字符串20NN教师登录名唯一loginPassword字符串20NN教师登录密码name字符串20NN教师姓名表3-6 student主要字段数据类型长度属性描述备注studentId数字4NN主键由系统自动生成lo

30、ginName字符串20NN学生登录名唯一loginPassword字符串20NN学生登录密码name字符串20NN学生姓名(3)数据库关系图数据库设计的逻辑实体关系如图3-5所示: 图3-5 数据关系图第4章 详细设计4.1 系统模块设计(1)用户登录:对于已注册的用户根据用户名和密码进行登陆,登录界面如图4-1所示:图4-1 用户登陆图填写您的用户名、密码,选择教师或学生;点击“登陆”按钮;用户名、密码都正确,登陆成功,进入系统主界面;主要代码:String loginName = request.getParameter(loginName);String loginPassword =

31、 request.getParameter(loginPassword);String identity = request.getParameter(identity);if(identity.equals(student)/学生登录Student student =userBiz.studentLogin(loginName);if(student=null)request.getSession().removeAttribute(uerror);request.getSession().removeAttribute(perror);request.getSession().setAtt

32、ribute(uerror, 该学生用户不存在);p /返回登录页面并显示错误信息;if(!student.getLoginPassword().equals(loginPassword)request.getSession().removeAttribute(uerror);request.getSession().removeAttribute(perror);request.getSession().setAttribute(perror, 密码错误);return redirect:/login.jsp /返回登录页面并显示错误信息;elserequest.getSession().r

33、emoveAttribute(uerror);request.getSession().removeAttribute(perror);request.getSession().setAttribute(student, student);return redirect:/protect/sindex.jsp /进入学生主页面;else if(identity.equals(teacher)/教师登录Teacher teacher = userBiz.teacherLogin(loginName);if(teacher=null)request.getSession().removeAttri

34、bute(uerror);request.getSession().removeAttribute(perror);request.getSession().setAttribute(uerror, 该教师用户不存在);return redirect:/login.jsp /返回登录页面并显示错误信息;if(!teacher.getLoginPassword().equals(loginPassword)request.getSession().removeAttribute(uerror);request.getSession().removeAttribute(perror);reques

35、t.getSession().setAttribute(perror, 密码错误);return redirect:/login.jsp /返回登录页面并显示错误信息;elserequest.getSession().removeAttribute(uerror);request.getSession().removeAttribute(perror);request.getSession().setAttribute(teacher, teacher);return redirect:/protect/tindex.jsp/进科教师主页面;request.getSession().setAt

36、tribute(error, 未知错误);return redirect:/login.jsp /返回登录页面并显示错误信息;(2)用户主界面:因为教师用户与学生用户的权限不同,在这里主要介绍教师用户,用户主界面是用户的管理界面。主界面如图4-2所示:图4-2 用户主页图点击左测具体的模块并进行具体的操作。选择注销按钮退出本系系统返回到登录页面。 主要代码:(3)操作的主要模块:题库管理模块的试题维护:试题维护主界面:选择题库管理中试题维护是试题维护的主界面,展示了试题维护的主要信息;可进行试题的编辑、删除、通过科目查询等操作;如图 4-3所示:图4-3 试题维护主界面主要代码如下:Strin

37、g sn = request.getParameter(subjects).trim();/获取科目IDInteger subjectId = Integer.valueOf(sn);/获取该科目信息Subject subject = subjectBiz .getSubjectById(subjectId); / 获取该科目所有试题Set set = questionBiz.getQuestionsBySubjectId(subjectId);Mapmap = new LinkedHashMap();for(Question q: set)q.setSubject(subject);map.

38、put(q.getId(), q);/蒋试题信息放入到session作用域中if(request.getSession().getAttribute(qMap)!=null)request.getSession().removeAttribute(qMap);request.getSession().setAttribute(qMap, map);return redirect:/protect/dealwithQuestions.jsp;/进入试题显示页面试题的录入:点击主界面中增加考题,可弹出试题添加界面,输入试题的信息后,点击提交即可,界面如图 4-4所示:图4-4 试题录入界面主要代码

39、如下:/获得被插入的试题所对应的学科String sn = request.getParameter(subjects).trim();Integer subjectId = Integer.valueOf(sn);Subject subject = subjectBiz .getSubjectById(subjectId);/创建试题对象String qd = request.getParameter(qd).trim();String co = request.getParameter(co).trim();Question question = new Question(qd,co);/

40、创建四个选项对象String ad = request.getParameter(A).trim();String bd = request.getParameter(B).trim();String cd = request.getParameter(C).trim();String dd = request.getParameter(D).trim();Choice choiceA = new Choice(A.,ad);Choice choiceB = new Choice(B.,bd);Choice choiceC = new Choice(C.,cd);Choice choiceD

41、= new Choice(D.,dd);/维护三者之间的关系question.setSubject(subject);on(question);choiceB.setQuestion(question);choiceC.setQuestion(question);choiceD.setQuestion(question);LinkedHashSet optionSet = new LinkedHashSet();optionSet.add(choiceA);optionSet.add(choiceB);optionSet.add(choiceC);optionSet.add(choiceD);

42、question.setOptionSet(optionSet); /添加试题questionBiz.addQuestion(question);Map map =(Map)request.getSession().getAttribute(qMap); if(map!=null) map.put(question.getId(), question); Map map1 =(Map)request.getSession().getAttribute(qMap1); if(map1!=null) map1.put(question.getId(), question); return redi

43、rect:/protect/viewResult.jsp;/进入信息显示页面。试题的编辑:点击查询试题页面的每条信息的编辑,可进行每条信息的修改。编辑界面如图 4-5所示:图4-5 试题编辑界面主要代码如下:String id = request.getParameter(qid);Integer qid = Integer.valueOf(id);Map map =(Map)request.getSession().getAttribute(qMap);Question question = map.get(qid);arameter(qd);String co = request.getP

44、arameter(co);String a = request.getParameter(A.);String b = request.getParameter(B.);String c = request.getParameter(C.);String d = request.getParameter(D.);question.setQuestionDescription(qd); question.setCorrectKey(co);for(Choice ch:question.getOptionSet()if(ch.getChoice().equals(A.)ch.setOptionDe

45、scription(a);if(ch.getChoice().equals(B.) ch.setOptionDescription(b);if(ch.getChoice().equals(C.) ch.setOptionDescription(c);if(ch.getChoice().equals(D.) ch.setOptionDescription(d);questionBiz.updateQuestion(question);Map map1 =(Map)request.getSession().getAttribute(qMap1); if(map1!=null) map1.put(q

46、uestion.getId(), question); return redirect:/protect/dealwithQuestions.jsp试题的删除:选中要删除的试题,点击删除后会提示是否真的删除,若点击确定则执行删除操作;若点击取消则不执行任何操作;删除界面如图 4-6所示:图4-6 试题删除界面主要代码如下:String qcheck = request.getParameterValues(qcheck);/获取选中试题的IDfor(String qs:qcheck)Integer qid = Integer.valueOf(qs);n(qid)/通过试题ID删除试题;retu

47、rn redirect:/protect/dealwithQuestions.jsp;试卷生成:试卷由教师选择试题,之后点击生成试卷则会自动生成一套试卷。页面如图 4-7所示:图4-7 试卷生成界面主要代码如下:Map map1 =(Map)request.getSession().getAttribute(qMap1);Integer qid1= Integer.valueOf(qcheck0);Question question1 = map1.get(qid1);Subject subject = question1.getSubject();Map paperMap = new Lin

48、kedHashMap();Question question = null;for(String qs:qcheck)Integer qid = Integer.valueOf(qs);question = map1.get(qid);paperMap.put(question.getId(), question);ServletContext application = request.getSession().getServletContext();MapSubject, Map map=(MapSubject, Map)application.getAttribute(spMap);ma

49、p.put(subject, paperMap);return redirect:/protect/viewResult1.jsp; 4.2 关键技术解决(1)系统与数据库的连接系统与数据库的连接是通过Tomcat应用服务器提供的数据库连接池进行连接,在服务器启动时,事先创建好一批数据库连接,轮流被大量请求使用,在每个请求的数据库连接使用完毕后,不是真正关闭数据库连接,而是将它还给Tomca服务器。这样做的好处是节省了打开各关闭数据库连接的时间,也节省了数据库连接资源。主要代码如下:private static Properties env=new Properties(); statictr

50、y InputStream is=JdbcUtil.class.getResourceAsStream(/com/joust/conf/db.txt);env.load(is);is.close(); catch (Exception e) throw new RuntimeException(e); private static final ThreadLocal tl=new ThreadLocal();public static Connection getConnection() throws ExceptionConnection conn=tl.get();if(conn=null

51、)Context context = new InitialContext();DataSource ds = (DataSource)context.lookup(java:comp/env/ + env.getProperty(datasource);conn = ds.getConnection(); /从池中获得连接tl.set(conn);return conn;/关闭数据库连接public static void close() Connection conn = tl.get();if(conn != null) try conn.close(); catch (SQLExcep

52、tion e) tl.remove();由于本系统开发时是利用MVC的设计模式,所以在此数据库连接是封存在M中的,即只要我和M层连接上,就已经连接上数据库了。(2)MVC设计模式的实现 视图是模型的表示,它提供用户交互界面。使用多个包含单显示页面的用户部件,通过JSP、JavaScript、HTML开发工具实现用户交互界面。模型。MVC系统中的模型从概念上可以分为两类系统的内部状态和改变系统状态的动作。模型是所有的业务逻辑代码片段所在。业务处理对象封装了具体的处理逻辑,调用业务逻辑模型,并且把响应提交到合适的视图组件以产生响应。业务实体对象可以通过定义属性描述客户端表单数据。通过业务实体对象实

53、现了对视图和模型之间交互的支持。实现时把做什么(业务处理)和如何做(业务实体)分离。这样可以实现业务逻辑的重用。用控制器提供一个控制和处理请求的集中入口点,它负责接收、截取并处理用户请求;并将请求委托给分发者类,根据当前状态和业务操作的结果决定向客户呈现的视图。主要代码如下:/ 目的,让所有调用业务逻辑的请求,/ 首先经过此Servlet (公司前台)/ 负责找到一个调用业务逻辑的类public class ActionServlet extends Servlet/ 保存了uri地址和某个Action之间的对应关系private Properties uris = new Propertie

54、s();public void init() throws ServletException / 从外部文件中读取uri地址和某个Action之间的对应关系s.getResourceAsStream(/com/joust/conf/actions.txt);try uris.load(is); catch (IOException e) / TODO Auto-generated catch blocke.printStackTrace();protected void service( ServletRequest request, ServletResponse response)thro

55、ws ServletException, IOException / 获取请求的uri地址(请求路径)String uri = request.getRequestURI();uri = uri.replaceAll(request.getContextPath(), );System.out.println(uri地址是: + uri);/ 根据路径获得一个Action类名 String className = uris.getProperty(uri);try if(className = null) / 这个地址没有对应的ActionSystem.out.println(这个地址没有对应

56、的Action);return;System.out.println(action类是:+ className);Action action = (Action)Class.forName(className).newInstance();/ view 这里是有action返回的视图地址String view = action.execute(request, response);/可以在视图地址前用一个前缀区分转发和重定向if(view.startsWith(redirect:) response.sendRedirect( request.getContextPath() + view.r

57、eplaceAll(redirect:, ); else request.getRequestDispatcher(view).forward(request, response);catch(Exception e) e.printStackTrace();结束语当今许多高校都非常关注无纸化网络考试的开发与应用,本文是通过考试方面进行的尝试,实践证明,该方法是可行的;本人结合企业的开发技术及在校所学理论知识(软件工程,操作系统,数据结构等学科),利用毕业设计的机会,开发一套在线考试系统,基本上实现了在线考试功能。由于时间仓促,一些技术和设备所限,该系统存在一些不足之处,有待进一步改进和完善,

58、具体说来有:(1)对后台数据库中数据的日常维护,包括自动清理过时数据。(2)程序中错误处理和输入控制不够全面,可能导致输入无效引发错误。(3)本系统只能完成选择题类型的考试。缺少客观题型。参考文献1 孙卫琴.Java2面向对象程序设计M.北京.电子工业出版社.2005.1:50-200.2薛惠丽,赵志燕.MP&filetitle=%e5%9f%ba%e4%ba%8eWeb%e7%9a%84%e5%9c%a8%e7%ba%bf%e8%80%83%e8%af%95%e7%b3%bb%e7%bb%9f%e6%8e%a2%e7%a9%b6 t _top 基于Web的在线考试系统探究J.me=CJFDB

59、ASEINFO&NaviLink=%e5%86%85%e8%92%99%e5%8f%a4%e7%a7%91%e6%8a%80%e4%b8%8e%e7%bb%8f%e6%b5%8e&Value=NMKJ t _blank 内蒙古科技与经济. HYPERLINK :/47/kns50/Navi/Bridge.aspx?DBCode=cjfd&LinkType=IssueLink&Field=BaseID*year*issue&TableName=CJFDYEARINFO&Value=NMKJ*2007*04&NaviLink=%e5%86%85%e8%92%99%e5%8f%a4%e7%a7%91

60、%e6%8a%80%e4%b8%8e%e7%bb%8f%e6%b5%8e t _blank 2007,(04). 3洪升彪.S%e6%a8%a1%e5%bc%8f%e8%80%83%e8%af%95%e7%b3%bb%e7%bb%9f%e4%b8%ad%e8%af%84%e5%88%86%e6%8a%80%e6%9c%af%e7%9a%84%e7%a0%94%e7%a9%b6%e4%b8%8e%e5%ae%9e%e7%8e%b0 t _top B/S模式考试系统中评分技术的研究与实现J.e=cjfd&LinkType=BaseLink&Field=BaseID&TableName=CJFDBA

温馨提示

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

最新文档

评论

0/150

提交评论