jsp在线考试系统qe论文

jsp在线考试系统qe论文

ID:27193006

大小:963.00 KB

页数:41页

时间:2018-12-01

上传者:U-19252
jsp在线考试系统qe论文_第1页
jsp在线考试系统qe论文_第2页
jsp在线考试系统qe论文_第3页
jsp在线考试系统qe论文_第4页
jsp在线考试系统qe论文_第5页
资源描述:

《jsp在线考试系统qe论文》由会员上传分享,免费在线阅读,更多相关内容在学术论文-天天文库

xxx学院毕业设计(论文)题目:基于JSP的在线考试系统的设计与实现作者:学号:系(院):计算机科学系专业班级:计算机科学与技术指导老师:实验师(姓名)(专业技术职务)评阅老师:(姓名)(专业技术职务)2012年5月xxx 摘要4ABSTRACT5第1章引言61.1选题背景61.2课题背景及开展研究的意义6第2章项目概述72.1课题简要说明72.2可行性研究72.2.1经济可行性72.2.2技术可行性72.2.3运行可行性82.2.4时间可行性82.2.5法律可行性8第3章需求分析93.1在线考试系统一般需求分析93.2当前在线考试系统现状分析93.3性能需求10第4章相关技术分析114.1JSP编程语言114.2系统数据库连接114.3SQLSERVER2000数据库15第5章系统设计165.1数据字典165.2E-R图195.3在线考试总体功能介绍205.4在线考试模块设计215.5在线考试数据库设计236关键技术256.1tomcat数据库连接池介绍与配置256.2applet数字签名技术277.系统详细设计与实现301.系统登陆实现302.管理员的操作界面323.添加选择题模块324。题目查看模块34结束语38 致谢40参考文献41 摘要目前国内基于B/S、C/S结构的在线考试系统产品已经有许多,本文首先介绍了这些考试系统的形成和发展过程,大致结构。然后通过仔细分析,提出了目前的这些系统还存有系统更新和维护等种种弊端,仍不够成熟。基于对现有产品的思考,结合J2EE的成熟技术,我们想到了是否可以将该技术运用在在线考试系统中,提出了一个基于J2EE架构的在线考试系统。通过将该架构与已有结构的在线考试系统进行比较,分析了该架构的优势,重点介绍了该框架的整体构造以及相关的概念和技术。并通过设计了一个基于J2EE架构的在线考试系统对该架构做了一个比较深入的剖析。最后,对J2EE技术做了一个总结性的展望,认为该技术有着良好的发展空间和广阔的前景。关键词:J2EE,在线考试系统,b/s,JavaBean,jsp,数据池 AbstractAtpresent,therearemanyb/s,c/sstructureexaminationsystemsbasedon-line,thispaperfirstintroducedmostofthesesystems’formedanddevelopedprocess,andstructures.Then,analysisthesesystems,andpointedoutthattherestillhavemanydefectsaboutthem,justliketheupdateandtheservicetothesesystems.Thinkingbasedontheseproduces,andnowtheJ2EEtechnicalisbecomingmature,wethinkingaboutisthistechnicalcanbeusedinexaminationsystems,sowementionedaon-linesystembasedonJ2EEstructure.Comparedtoothersystems,andalsoanalysisits’advantages,weintroducedthisstructure’sconstructionandtechnicalasemphasize.Finally,makeJ2EEtechnicalaexpectationanditcanprogressquietgreatandhaveaniceforeground.Keywords:J2EE,Examinationsystemon-line,b/s,JavaBean,jsp,datapool 第1章引言1.1选题背景现阶段,学校与社会上的各种考试大都采用传统的考试方式,在此方式下,组织一次考试至少要经过五个步骤,即出卷、考生考试、阅卷、成绩评估和试卷分析。显然,随着考试类型的不断增加及考试要求的不断提高,教师的工作量将会越来越大,并且其工作将是一件十分繁琐和非常容易出错的事情,可以说传统的考试方式已经不能适应现代考试的需要。随着计算机应用的迅猛发展,网络应用不断扩大,如远程教育和虚拟大学的出现等等,且这些应用正逐步深入到千家万户。人们迫切要求利用这些技术来进行在线考试,以减轻教师的工作负担及提高工作效率,从而提高了考试的质量,使考试更趋于公证、客观、激发学生的学习兴趣。例如目前许多国际著名的计算机公司所举办的各种认证考试绝大部分采用这种方式。1.2课题背景及开展研究的意义为了适应新形势的发展,目前国内有很多公司团体研究开发了基于Web的考试系统。而我们知道网络应用软件运行的模式主要有二类:Client/Server模式、Browser/Server模式。前者主要的缺点是维护、升级较麻烦,后者是近几年伴随Internet迅速发展而应运而生的一种技术,在这种模式下,客户端需要一个浏览器,服务器端是WebServer,而WebServer是与数据库和应用服务器的紧密结合,可见,这种模式是瘦客户端,即对客户端的要求不高.如今,很多部门的业务系统、企业的MIS系统纷纷采用这种模式,它的主要优点是便于扩充应用、升级维护简便。然而,随着技术的发展,更先进的模式纷纷被提出并时兴起来,其中J2EE就是比较成熟的一种。 第2章项目概述2.1课题简要说明随着学校的不断扩大,有关学校管理的各种信息也成倍增长。面对庞大的信息量,有必要开发试卷考试系统来提高管理工作的效率。今天我们使用计算机对试卷考试信息进行管理,具有手工管理所无法比拟的优点。通过这样的系统,可以做到信息的规范管理、科学统计和快速查询,从而减少管理方面的工作量,有效地提高饭店信息管理的工作效率。2.2可行性研究该阶段通过对系统目标的初步调研和分析,提出可行性方案并进行论证。我们在这里主要从技术可行性、经济可行性和操作可行性等方面进行分析。2.2.1经济可行性开发该系统所需的相关资料可以通过已存在的相关系统进行调查采集,所需的其他应用软件、硬件系统也易于获得.因此,开发成本较低。而引进使用本系统后,与传统方式相比,具有高效率、低成本、高质量的特点,可以节省不少人力、物力及财力。所以,从经济的角度来看,该系统可行。2.2.2技术可行性技术可行性要考虑现有的技术条件是否能够顺利完成开发工作,软硬件配置是否满足开发的需求等。本网站用的是JSP开发语言,调试相对简单,当前的计算机硬件配置也完全能满足开发的需求,因此在技术上是绝对可行的。软件方面:由于目前单机模式相对发展成熟,故软件的开发平台成熟可行,它们速度快、容量大、可靠性能高、价格低,完全能满足系统的需求。 2.2.3运行可行性运行可行性是对组织结构的影响,现有人员和机构和环境对系统的适应性及人员培训补充计划的可行性。当前信息化技术已经相当普及,各类操作人员水平都有相当的高度,所以在运行上是可行性的。本系统的开发,是典型的Mis开发,主要是对数据的处理,包括数据的收集,数据的变换,及数据的各种报表形式的输出。采用流行的JSP+SQLSERVER2000体系,已无技术上的问题。2.2.4时间可行性从时间上看,在两个月的时间里学习相关知识,并开发本饭店管理系统,时间上是有点紧,但是不是不可能实现,通过两个多月的努力功能基本实现。2.2.5法律可行性①所有技术资料都为合法。②开发过程中不存在知识产权问题。③未抄袭任何饭店管理系统,不存在侵犯版权问题。④开发过程中未涉及任何法律责任。综上所述,本系统的开发从技术上、从经济上、从法律上都是完全可靠的。 第3章需求分析3.1在线考试系统一般需求分析在线考试系统应具有以下要求:(1)由于考试对应的是特定的对象,所以系统需要经过有效的身份验证才可以登陆。并且系统需要有可以管理会话的功能。以便在考试过程中全程跟踪考试状态。(2)系统的权限一般分为两种:管理员和学生。不同的身份使用不同的权限和功能。(3)管理员需要对试题和考生进行有效的管理,负责试题的录入及更新和修改,对试题的分类,每次考试前,需要对试场环境和考生状态进行考前初始化工作。要注意的是,鉴于考试环境一般为机房,考试者之间的距离很近,为了在线考试做到规范,对于每个应试者来说,试卷的试题和题量都应是相同的,但试题并不相同。系统要有良好的试卷上传和回收功能,确保信息传送的正确性。系统要有一个友善的界面,确保考生考试的顺利进行。因为试卷中的主观题需要老师批改,可能需要一段时间才能查询到成绩。但如果试卷是由客观题型组成的,考生就可以在考试结束后查询到自己的成绩了。系统提供对考生成绩的统计和查询等管理功能。系统应具有良好的安全性管理。3.2当前在线考试系统现状分析当前考试系统中,仍有许多是基于c/s模式的,每一次伴随着系统的升级,都要在每个客户端更新软件,耗时耗力。可喜的是,随着技术的发展,基于b/s模式的在线考试系统 越来越多,逐渐占据了主导地位。它克服了c/s模式下的许多缺点,从传统的基于C/S模式的考试系统转变到基于B/S模式的考试系统,可以使用户在任何一台电脑上,只要可以上网,就可以使用该服务,大大简化了操作,为用户提供了方便。另一方面,也为教师的管理和批阅工作提供了方便,提高了效率。但是据我多方的观察和研究,发现大多数的在线考试系统都是采用基于页面的模式开发,每个页面中都包含了要用到的所有功能逻辑,导致代码重复率高,结构不够清晰,维护升级起来也很费时间和人力。鉴于这种情况,所以我们将J2EE的概念加入到在线考试系统中来,使得该系统更易于升级和维护。3.3性能需求系统对环境的要求服务起端的最低配置是由建立站点所需要的软件来决定的,在最底配置的情况下,服务器的性能往往不进人意,现在硬件性能已经相当出色,而且价格也很便宜,因此通常应给服务器端配置高性能硬件。本机器的配置如下:处理器:InterPentium41.6Hz或更高。内存:512MB硬件空间:160GB题目主要采用的技术数据库:MicrosoftSQLServer2000。编程语言JSP。服务器:Tomcat5.5,jdk1.6开发环境:WindowsXP 第4章相关技术分析4.1JSP编程语言JSP(JavaServerPage服务器网页)是从1998年开始出现的新技术。由Sun公司倡导、许多公司参与一起建立的一种动态网页技术标准,是基于JavaServlet以及整个Java体系的web开发技术。在传统的网页HTML文件(*.htm,*.html)中加入脚本片段和JSP标记(Tag),构成JSP网页(*.jsp)。JSP技术为创建显示动态生成内容的web页面提供了简便的方法。JSP作为Java家族的一员,承袭了Java的特点,即跨平台的特性,也即一次编译,到处运行。在国外,己经大量使用JSP作为网络应用程序的开发工具,而在国内,尽管JSP还不是主流开发技术,但是由于JSP的强大优势,许多网站都已经准备转向JSP,利用JSP来开发动态网站。4.2系统数据库连接JDBC技术是JSPDataBaseConnectivity的缩写,它是SUN公司提供的一种支持基本SQL功能的通用的应用程序接口(ApplicationProgrammingInterface)。它由一组用JSP语言编写的类和接口组成。通过这些类和接口,程序开发人员可以在JSP语言中方便地建立与数据库的链接,通过执行相应SQL语句,完成对不同数据库的访问。因此,开发人员使用JDBCAPI可以不必编写一个应用程序来访问Sybase数据库,又另外编写一个应用程序去访问Oracle数据库,再写一个应用程序访问Microsoft的SQLServer。不但如此,使用JSP语言编写的应用程序可以在任何支持JSP的平台上运行,不必在不同的平台上开发不同的应用程序。简单地说,JDBC能完成下列三件事:1.同一个数据库建立连接;2.向数据库建立连接; 1.处理数据库返回的结果。JDBC是一种通用低层的应用程序编程接口,它在不同的数据库功能模块的层次上提供一个统一的用户界面。说JDBC是一处低级的API,是指它直接调用SQL命令,它比其他的一些数据库连接API要容易使用些,但它有同样可以作为更高级的,用户办面更友好的API或开发工具基础。很多可视化的JSP开发工具,如VisualAgeForJSP、VisualCafé、J++等都提供了基于JDBC的更面向用户的类和包,直接将关系数据库的表或视图映射为JSP类,程序员通过可视化工具直接对JSP对象进行操作,而真正需要的SQL调用则根据程序员发出的对对象的各种属性、方法的操作来自动产生。另一种使用JDBCAPI的方式为,用户程序可以提供一个界面(如菜单等)让用户选择对数据库进行的操作,选中一个任务后,提示用户输入一些必要的信息,然后根据用户的输入产生相应的SQL命令以及JSP程序。通过这处方式,用户可以完成对数据库的操作,即使他并不了解SQL语法以及JDBC编程。数据库访问的三层结构如图5.1所示,浏览器端程序要访问数据库,首先通过中间件,然后由中间件对数据库操作权限进行认证,认证通过才能对数据库进行操作。图4.1使用中间件的数据库访问三层结构用户对数据库的存取权限认证是中间件中完成,对数据库的查询、插入、更新和删除操作等都封装在中间件中,该中间件位于服务器端,中间件对数据库进行操作后,再将处理结果通过Web服务器返回到浏览器端用户。这样,在用户端输入的用户名和密码,可以通过加密算法进行加密后在网络上传输,在中间件中进行解密认证,然后再进行数据库的存取操作,数据库存取权限的用户名和密码出现在位于服务器端的中间件中,这样就更加安全。本系统采用的正是这样的三层结构的数据库访问模式。在三层模型中,命令将被发送到服务的”中间层”,而”中间层”将SQL语句发送到数据库。数据库处理SQL语句并将结果返回”中间层”,然后”中间层” 将它们返回用户。其模型如图5.2所示。图5.2JDBC的三层模型因为”中间层”可以进行对访问的控制并协同数据库的更新,并且可以使用一个易用的高层API,这个API可以由“中间层”进行转换,转换成低层的调用。所以在许多种情况下,三层模型可以提供更好的性能,本系统中所采用的就是此种模型。JDBC是JSP应用程序与数据库的沟通桥梁。它提供了三项服务功能:一、与数据库建立连接。二、将SQL语句传递给数据库。三、从数据库取得SQL语句的执行结果。当JDBC要与数据库建立连接前,首先,它必须先取得连接此数据库的JDBC驱动程序,Class.forName()即是在执行此项工作。建立数据库连接的第一步骤就是将JDBC驱动程序的类载入至JVM(JSPVirtualLMachine)中,本系统中利用JSP.lang.Class类内的forName()静态函数依据指定的类名称,将JDBC驱动程序载入进来。完成载入驱动程序的步骤后,必须使用JSP.sal.DriverManager类所提供的getConnection()静态函数,取得与数据库间的连接对象。此连接对象的类类型为JSP.sal.Connection,必须通过它才能将 SQL指令传递给数据库,而执行结果也需要通过连接对象来取得。当取得连接对象后,还必须取得Statement对象才能对数据库执行SQL指令。Statement主要实现两个功能:执行SQL语句以及取得执行结果。在JSP.sql.Statement的sql对象中执行查询或修改命令的函数后传回的是一个ResultSet对象,这个对象提供了一个存取SQL执行结果的管道,以便通过它将表格数据从数据库中取出。每个Statement对象只能产生一个ResultSet对象。数据库连接如图5.3所示:图5.3数据库的连接处理数据库的连接处理具体实现如下://建立JDBC——ODBC桥sun.jdbc.odbc.JdbcOdbcDriver;//桥建立不成功时的错误处理catch(ClassNotFoundExceptionevent){} //建立与数据库的连接,并发送SQL查询语句,将结果保存到rs对象中Con=建立JDBC——ODBC桥Sql=SQL查询语句执行查询Rs=返回结果//SQL出错处理catch(SQLExceptione1){}4.3SQLSERVER2000数据库SQLServer是由Microsoft开发和推广的关系数据库管理系统(DBMS),它最初是由Microsoft、Sybase和Ashton-Tate三家公司共同开发的,并于1988年推出了第一个OS/2版本。SQLServer近年来不断更新版本,1996年,Microsoft推出了SQLServer6.5版本;1998年,SQLServer7.0版本和用户见面;SQLServer2000是Microsoft公司于2000年推出的最新版本。SQLServer特点:1.真正的客户机/服务器体系结构。2.图形化用户界面,使系统管理和数据库管理更加直观、简单。3.丰富的编程接口工具,为用户进行程序设计提供了更大的选择余地。4.SQLServer与WindowsNT完全集成,利用了NT的许多功能,如发送和接受消息,管理登录安全性等。SQLServer也可以很好地与MicrosoftBackOffice产品集成。5.具有很好的伸缩性,可跨越从运行Windows95/98的膝上型电脑到运行Windows2000的大型多处理器等多种平台使用。6.对Web技术的支持,使用户能够很容易地将数据库中的数据发布到Web页面上。7.SQLServer提供数据仓库功能,这个功能只在Oracle和其他更昂贵的DBMS中才有。 第5章系统设计5.1数据字典数据字典是关于数据库中数据的描述,即元数据,而不是数据本身。针对饭店管理系统的需求,通过对饭店管理工作过程的内容和数据流程分析,设计如下所示的数据项和数据结构:allusers表:管理员表序号字段名称字段类型大小允许为空最大长度备注1IDInt4自增编号10 2usernameVarChar50是255 3pwdVarChar50是255 4cxVarChar50是255 5addtimeDateTime8是23  chengji表:成绩表序号字段名称字段类型大小允许为空最大长度备注1IDInt4自增编号10 2xuehaoVarChar50是255 3xztFloat8是15 4addtimeDateTime8是23 5dxtFloat8是15 6pdtFloat8是15 7tktFloat8是15  duoxuanti表:多选题库表序号字段名称字段类型大小允许为空最大长度备注1IDInt4自增编号10  2bianhaoVarChar50是255 3shitiText16是255 4nanyichengduVarChar50是255 5xuanxiangAVarChar300是255 6xuanxiangBVarChar300是255 7xuanxiangCVarChar300是255 8xuanxiangDVarChar300是255 9daanVarChar50是255 10addtimeDateTime8是23  kaosheng表:考生信息表序号字段名称字段类型大小允许为空最大长度备注1IDInt4自增编号10 2xuehaoVarChar50是255 3mimaVarChar50是255 4xingmingVarChar50是255 5banjiVarChar50是255 6xingbieVarChar50是255 7shenfenzhengVarChar50是255 8youxiangVarChar50是255 9dianhuaVarChar50是255 10dizhiVarChar50是255 11addtimeDateTime8是23  panduanti表:判断题库表序号字段名称字段类型大小允许为空最大长度备注1IDInt4自增编号10 2bianhaoVarChar50是255 3shitiText16是255 4nanyichengduVarChar50是255 5daanVarChar50是255  6addtimeDateTime8是23  tiankongti表:填空题表序号字段名称字段类型大小允许为空最大长度备注1IDInt4自增编号10 2bianhaoVarChar50是255 3shitiText16是255 4nanyichengduVarChar50是255 5daanVarChar50是255 6addtimeDateTime8是23  xuanzeti表:选择题库表序号字段名称字段类型大小允许为空最大长度备注1IDInt4自增编号10 2bianhaoVarChar50是255 3shitiText16是255 4nanyichengduVarChar50是255 5xuanxiangAVarChar300是255 6xuanxiangBVarChar300是255 7xuanxiangCVarChar300是255 8xuanxiangDVarChar300是255 9daanVarChar50是255 10addtimeDateTime8是23  5.2E-R图MNMN1N试题库试卷学生老师 5.3在线考试数据流程考生首先进入登陆页面,输入用户名和密码,系统将该用户名和密码与数据库中考生表的用户名密码一一核对,如果存在该考生且未登陆,则弹出一个考试的主页面正常进入考试,并将该考生置为考试状态。否则会跳到出错页面要求考生重新登陆。进入考试页面后,有许多分类的试题要求考生分别完成,考生点击相应页面的超链接,进入做题,在每个分页面的顶部,都将会有对该部分试题的操作提示和注意事项,考生阅读完相关事项后进行做题,每做完该部分试题都必须保存,系统将收集到的考生做题信息上传到数据库中,考生则继续做其他部分试题。完成所有考试后,考生点击交卷标记,系统保存考生所有的答题信息后正常他退出,并将考生置于离线状态。具体流程见下图:图5系统流程5.3在线考试总体功能介绍客户端登陆服务:负责用户的登陆的输入,与服务器端的验证,如果是重登陆的,需重登陆密码。题目下载:负责从数据库中读取试题数据,下载到客户端。 用户答题:负责在客户的浏览器中显示下载的题目,供用户做题。题目上传:负责将客户所答题目的答案上传到服务器端。管理端生成试题:负责从试题源中生成当场考试的相应试题。试题初始化:负责在每场考试前清空试题回收信息。考生监控:负责在考试期间管理监控各考生的考试状态。试卷回收:负责在考试结束后,将考生提交的答案上传到数据库服务器中。试卷批阅:负责自动化批阅回收试卷(客观题)。数据库连接服务:负责从各共性服务层模块接收相关数据库连接,查询,修改等服务,并返回相关数据。数据访问层异常管理:负责数据库连接服务出现的异常。5.4在线考试模块设计各模块的详细介绍:1)考生登陆模块:在客户层,考生通过主登陆页面输入用户名与密码。在web层,将从用户输入处得到的用户名和密码与从业务层返回的相应用户名和密码作比较,如果用户存在密码正确且还未登陆就登陆考试主页面,否则跳到出错页面要求重新登陆。在业务层,获得与mssql数据库的连接,并取出所有的用户名和密码信息。将该信息传入web层。在EIS层,对应的是mssql数据库中的students表格。2)做题模块:(1)选择题:在客户层,浏览器中显示每个考生所对应的考试题目,要求考生输入考试答案。并有一个提交按钮供考生做完题目后上传题目。在Web层,jsp负责从业务层中获得题目,并将题目组织在一起向客户端显示。 在业务层,获得与数据库的连接,并且取出选择题题目。在EIS层,对应的是数据库中choose表格。(2)word题:在客户层,在浏览器中applet的textarea区域显示word题的要求,并利用applett数字签名技术,突破访问本地文件系统的限制,打开word做题。在Web层,利用servlet的文件上传下载技术,将读出的word文件下载到本地磁盘。在业务层,获得数据库连接,并取出word题目,word题是以二进制流的方式将word文件存贮在数据库。在EIS层,对应的是数据库中word表格。3)答案上传模块:在客户层,在浏览器中单击提交按钮将做完的答案提交制相应页面在Web层,将用户提交的答案提交给相应的javabean组件,并在客户端显示提示信息。在业务层,将提交上来的答案存入相应的数据库中。在EIS层,数据库中students表格,有两个相应字段用来存放该用户所对应的提交答案。在线考试系统登陆服务用户答题答案上传数据库连接服务MSSQLSERVER数据访问层异常管理题目下载生成试题试题初始化考生监控试卷回收试卷批阅 图6系统模块5.5在线考试数据库设计由于目前市场上存在有许多的数据库产品,较流行的有oracle,Mssql,Access,等,oracle数据库多用于大企业中,稳定性最好,但价格也较高,且系统要求也较高,而Access数据库不支持网络功能,一般只对个人或小型的系统适用,而对于本系统来说,采用Msssql则是一个较为合适的选择,Mssql是微软网络数据库的主打产品,支持网络功能,日志记录等多种方便的服务,并且有着较为稳定的性能和可靠的管理。下面是数据库表的设计:Studentstable:id,char,10,notnull;password,char,10,null;number,char,10,notnull;sex,char,1,null;(1=男,0=女)chooseans,char,60,null;wordans,image,16,null;status,char,1,notnull;(1=在线,0=离线)choosetable:QNUM,INT,4,notnull;QCON,TEXT,16,notnull;QANSA,TEXT,50,notnull;QANSB,TEXT,50,notnull;QANSC,TEXT,50,notnull; QANSD,TEXT,50,notnull;QANSE,TEXT,50,notnull;QANS,TEXT,1,notnull;Wordtable:Topic_Number,nvarchar,2,notnull;Question_Title,text,16,notnull;Question_Content,image,16,notnull; 6关键技术6.1tomcat数据库连接池介绍与配置数据库连接池概述:数据库连接是一种关键的有限的昂贵的资源,这一点在多用户的网页应用程序中体现得尤为突出。对数据库连接的管理能显著影响到整个应用程序的伸缩性和健壮性,影响到程序的性能指标。数据库连接池正是针对这个问题提出来的。数据库连接池负责分配、管理和释放数据库连接,它允许应用程序重复使用一个现有的数据库连接,而再不是重新建立一个;释放空闲时间超过最大空闲时间的数据库连接来避免因为没有释放数据库连接而引起的数据库连接遗漏。这项技术能明显提高对数据库操作的性能。数据库连接池在初始化时将创建一定数量的数据库连接放到连接池中,这些数据库连接的数量是由最小数据库连接数来设定的。无论这些数据库连接是否被使用,连接池都将一直保证至少拥有这么多的连接数量。连接池的最大数据库连接数量限定了这个连接池能占有的最大连接数,当应用程序向连接池请求的连接数超过最大连接数量时,这些请求将被加入到等待队列中。数据库连接池的最小连接数和最大连接数的设置要考虑到下列几个因素:1)最小连接数是连接池一直保持的数据库连接,所以如果应用程序对数据库连接的使用量不大,将会有大量的数据库连接资源被浪费;2)最大连接数是连接池能申请的最大连接数,如果数据库连接请求超过此数,后面的数据库连接请求将被加入到等待队列中,这会影响之后的数据库操作。3)如果最小连接数与最大连接数相差太大,那么最先的连接请求将会获利,之后超过最小连接数量的连接请求等价于建立一个新的数据库连接。不过,这些大于最小连接数的数据库连接在使用完不会马上被释放,它将被放到连接池中等待重复使用或是空闲超时后被释放。以下介绍一下连接池配置关键几个环节:1)首先在$CATALINA_HOME/conf/server.xml中,配置应用程序的路径2)然后配置资源名,用以在jndi中进行查询3)定义各连接参数,用户名,密码,数据库驱动以及数据源的查找路径usernamejavauserpasswordjavadudedriverClassNamecom.microsoft.jdbc.sqlserver.SQLServerDriverurljdbc:mysql://localhost:3306/javatest?autoReconnect=true4)由于系统是一个web应用程序,被布署在tomcat容器中,所以需要在$CATALINA_HOME/webapps/quality/WEB-INF/web.xml里设置被引用的资源:下面是配置代码,必须放在里。connectDBtestjdbc/connectDBjavax.sql.DataSource Container5)最后,将第3方的驱动都保存在$CATALINA_HOME/common/lib/*.jar中,如我们这里连接的是mssql,则将mssql的驱动程序msbase.jar,mssqlserver.jar,msutil.jar放入其中。6.2applet数字签名技术实现applet数字签名,使得applet可以突破默认安全限制,读取本地文件系统。在Java2的安全体系下,1个Applet开发和运行的过程如下:  在代码的分发端:  1)开发Java源程序并对其进行编译。  2)用JAR工具对类文件和资源文件进行封装。  3)用keytool创建公钥和密钥,生成X。509V1签名证书,输出证书。  4)通过jarsigner工具用生成的密钥对JAR文件进行数字签名。  在代码的接收端:  1)用keytool输入证书视其为可信任。  2)用policytool创建和修改安全性策略配置文件,授权请求的访问权限。  3)从网络取得字节码,用公钥验证数字签名证书和文档代码的完整性。  4)验证字节码的合法性,根据策略文件分配相应权限。  5)执行代码,完成后被垃圾回收器回收内存。  在用公钥验证数字签名证书之前,接收方需要确认公钥自身的可靠性,因此通常情况是提供一个包含公钥的证书而不是公钥自身。1个证书包括:  1)1个公钥。  2)1个唯一的名字实体(个人或公司),它是证书的所有者,包含用户名字、公司、组织、城市、地址、国家代码、省份等信息。   3)数字签名:1个证书被1个分发者的实体签名,保证证书确实包含另1个实体(所有者)的公钥。  4)分发者的标识名信息。  对于接收者可以用分发者的公钥来验证他的数字签名,检查证书的合法性。然而公钥可能包含在另一个证书中,而数字签名需要用另一个证书的分发者的公钥来验证,这样嵌套下去,直到一个公钥被接收者确认是可信任的。如果接收者不能建立信任链,例如:1个分发者的证书不合法,那么可以用keytool-import命令来计算指纹,每个指纹是一个相关的短数字,它唯一可靠地标识证书(指纹是一个用信息摘要算法计算的证书信息的哈希值),接收者可以呼叫证书的所有者,并比较发出的证书和接收证书的指纹,如果指纹相同,则证书不同。因此能够保证证书在传递的过程中未被修改。另一个潜在的问题是发送者身份的标识,有时一个证书是自签名的,即使用证书中的公钥相对应的密钥进行签名,如果接收者已经知道或信任发送者,那么就没有任何问题。否则发送者需要从一个可信任的第3方得到证书,这个第3方通常是一个证书的授权机构CA,那么首先发送一个自签名的证书签名请求CSR给CA,由CA验证CSR的签名及发送CSR的身份、许可证以及其它信息。然后CA通过一个用CA的密钥进行签名的证书,授权CSR的发送者作为公钥的所有者,任何人只要信任CA的公钥,都可以用之来验证证书的签名,很多情况下CA自身有一个来自更高一级的CA的证书,从而构成证书链。所有信任的证书实体都可以作为信任证书被引入钥匙库,每个证书中的公钥都可以用来验证用相应的密钥生成的签名。  发送者在发送签名的代码和文档时还相应提供包含与签名的密钥相应的公钥证书。用keytool-export命令或API函数可以从钥匙库中输出证书到文件中,然后将这个文件发送给需要的接收者,由接收者用keytool-import命令或API函数将其引入钥匙库中。如果用jarsigner工具为JAR文件生成签名,他会从钥匙库中取出证书及证书链,并和签名一起放入JAR文件。   密钥和相应的公钥证书存放在一个由口令保护的数据库中,称为钥匙库(keystore)。1个钥匙库包含2种类型的条目,可信任的证书条目,钥匙和证书条目,每个都包含1个密钥和与密钥相应的公钥证书,在钥匙库中的每个条目都有1个别名进行标识。1个钥匙库的所有者在钥匙库中可以有多个钥匙,可以通过不同的别名进行访问,每个别名通常是用钥匙库的所有者使用的钥匙的特定角色来命名,别名也可以标识钥匙的目的。例如:SignPersonalEmail可以被用来标识1个钥匙库的条目,它的密钥用于签名个人邮件,SignJarFiles用于标识1个条目,它的密钥用于签名JAR文件。 7.系统详细设计与实现1.系统登陆实现选择用户类型,然后输入用户名和密码,用户正确就能进入相应的页面进行操作。否则,就会返回登陆界面,告诉用户用户名或密码有误。点击注册然后学生就能注册帐号,完成注册后就能用帐号和密码进行相应的考试操作。实现:<%Stringuid=request.getParameter("username");Stringpwd=request.getParameter("pwd");Stringcx=newString(request.getParameter("cx").getBytes("8859_1"));Stringsql="";if(cx.equals("管理员")) {sql="select*from[allusers]whereusername='"+uid+"'andpwd='"+pwd+"'";}else{sql="select*from[kaosheng]wherexuehao='"+uid+"'andmima='"+pwd+"'";}ResultSetRS_result=connDbBean.executeQuery(sql);if(!RS_result.next()){out.print("");}else{session.setAttribute("username",uid);session.setAttribute("cx",cx);response.sendRedirect("main.jsp");}RS_result.close();%> 2.管理员的操作界面管理要主要是对学生和老师进行相应的管理。3.添加选择题模块该模块的主要功能是让管理员可以添中题库中的选择题信息,其中较难实现的是 添加试题内容,这里用到一个在线编辑器,它的功能非常强大,不仅可以输入文字信息,还可以输入图片,表格,压缩包,甚至影音文件。实现本模块的主要代码如下所示:functioncheck(){if(document.form1.bianhao.value==""){alert("请输入编号");document.form1.bianhao.focus();returnfalse;}//if(document.form1.shiti.value==""){alert("请输入试题");document.form1.shiti.focus();returnfalse;}if(document.form1.xuanxiangA.value==""){alert("请输入选项A");document.form1.xuanxiangA.focus();returnfalse;}if(document.form1.xuanxiangB.value==""){alert("请输入选项B");document.form1.xuanxiangB.focus();returnfalse;}if(document.form1.xuanxiangC.value==""){alert("请输入选项C");document.form1.xuanxiangC.focus();returnfalse;}if(document.form1.xuanxiangD.value==""){alert("请输入选项D");document.form1.xuanxiangD.focus();returnfalse;}}functiongow(){document.location.href="xuanzeti_add.jsp?jihuabifffanhao="+document.form1.jihuabifffanhao.value;}添加选择题:

编号: *试题: *难易程度:难选项A: *选项B: *选项C: *选项D: *答案: 4。题目查看模块该模块主要是让管理员可以查看管理已添加的试题信息,可以进行查询,修改,删除,统计,打印等操作。实现起来非常方便,一目了然。其实现的代码如下所示:<%Stringsql;ResultSetRS_result;%>

已有选择题列表:

搜索:编号:试题:难易程度: 所有序号编号难易程度选项A选项B选项C选项D答案添加时间操作<%intcurpage=1;//当前页intpage_record=10;//每页显示的记录数intzgs=0;intzys=0;//用下面的方法(sql查询完成,速度快)Stringhsgnpage=request.getParameter("page");Stringfysql="selectcount(id)asssfromxuanzeti";ResultSetRS_resultfy=connDbBean.executeQuery(fysql);while(RS_resultfy.next()){zgs=Integer.parseInt(RS_resultfy.getString("ss"));zys=zgs/page_record+1;}if(hsgnpage!=null){curpage=Integer.parseInt(request.getParameter("page"));//获取传递的值,需要显示的页}else{curpage=1;}if(curpage==0){curpage=1; }if(curpage>zys){curpage=zys;}sql="";sql="selecttop"+page_record+"*fromxuanzetiwhereidnotin(selecttop"+((curpage-1)*page_record)+"idfromxuanzetiorderbyiddesc)";if(request.getParameter("bianhao")==""||request.getParameter("bianhao")==null){}else{sql=sql+"andbianhaolike'%"+newString(request.getParameter("bianhao").getBytes("8859_1"))+"%'";}if(request.getParameter("shiti")==""||request.getParameter("shiti")==null){}else{sql=sql+"andshitilike'%"+newString(request.getParameter("shiti").getBytes("8859_1"))+"%'";}if(request.getParameter("nanyichengdu")=="所有"||request.getParameter("nanyichengdu")==null){}else{sql=sql+"andnanyichengdulike'%"+newString(request.getParameter("nanyichengdu").getBytes("8859_1"))+"%'";}sql=sql+"orderbyiddesc";RS_result=connDbBean.executeQuery(sql);Stringid="";Stringbianhao="";Stringshiti="";Stringnanyichengdu="";StringxuanxiangA="";StringxuanxiangB="";StringxuanxiangC="";StringxuanxiangD="";Stringdaan="";Stringaddtime="";inti=0;while(RS_result.next()){i=i+1;id=RS_result.getString("id");bianhao=RS_result.getString("bianhao");shiti=RS_result.getString("shiti");nanyichengdu=RS_result.getString("nanyichengdu");xuanxiangA=RS_result.getString("xuanxiangA");xuanxiangB=RS_result.getString("xuanxiangB");xuanxiangC=RS_result.getString("xuanxiangC");xuanxiangD=RS_result.getString("xuanxiangD");daan=RS_result.getString("daan");addtime=RS_result.getString("addtime");%><%=i%><%=bianhao%><%=nanyichengdu%><%=xuanxiangA%><%=xuanxiangB%><%=xuanxiangC%><%=xuanxiangD%><%=daan%><%=addtime%>">修改&tablename=xuanzeti"onClick="return confirm('真的要删除?')">删除<%}%>
以上数据共<%=i%>条,打印本页 共<%=zgs%>条记录  <%=page_record%>条/页 首页 ">上一页 ">下一页 ">尾页 当前第<%=curpage%>页/共<%=zys%>页

结束语在传统的两层体系下,业务逻辑在客户端和服务器端都有分布,而且服务器端的主要计算任务都由数据库承担。数据库系统本身作为系统级软件,它本身的优势在于提供高效率的数据访问和处理而不是数值计算,利用数据库系统处理大量的业务计算并没有完全发挥出数据库管理系统的特长,当请求并发量巨大时,数据库性能下降很快。针对这一不足,基于J2EE架构的处理方式是:业务逻辑分布到应用服务器上,数据库上不再具有业务逻辑处理单元,而只负责基础业务数据的管理,主要的计算任务由应用服务器完成,从而充分利用了应用服务器在并发处理和逻辑计算方面的优势。另外,应用服务器还可以做集群的配制,即在物理上,统一应用管理多台应用服务器对外部请求的分配和并行处理。这样,当计算请求并发量巨大时,集群的多台应用服务器之间可以动态的进行任务分配,实现负载均衡,保证了系统性能不会因为大量并发用户的访问而急剧下降,另外系统也同时具备了很好的可扩展性和伸缩性,即在请求并发量增大或减少时,可根据实际情况增加或减少应用服务器数量,以便保证性能的前提下,合理利用硬件资源。这些都是两层结构所不具备的优点。基于J2EE的四层架构还具备很多特点。应用J2EE的四层架构对于保留现存的IT资产有着重要意义。由于社保机构在面对适应新的业务需求的同时,也要充分利用好已有的资产,因此,在信息系统建设方面,做平滑的系统迁移方案,而不是重新制定全盘方案就变得很重要。这样,一个以渐进的,而不是激进的、全盘否定的方式建立在已有系统之上的服务器端平台机制,是所有社保经办机构所力求的。J2EE架构可以充分利用用户原有的投资,如一些公司使用的BEATuxedo、IBMCICS、IBMEncina、InpriseVisiBroker。之所以成为可能,主要是因为J2EE拥有广泛的业界支持。每一个供应商都对现有的客户提供了不用废弃已有投资,进入可移植的J2EE领域的升级途径。另外,由于基于J2EE平台的产品几乎能够在任何操作系统和硬件配置上运行,现有的操作系统和硬件也可以被完整地保留下来继续使用。 J2EE体系对大型系统的高效开发有着良好的支持者。J2EE标准严格要求把一些通用的、很繁琐的服务端底层开发任务交给中间件供应商去完成,而这些复杂的系统级功能是常规应用开发中难度最大、开发成本最高的一部分工作。高级中间件供应商提供复杂的中间件服务,如:状态管理服务、持续性服务、分布式共享数据对象的缓冲服务等,它对开发人员来说是很重要的,这样开发人员可以集中精力在如何创建业务逻辑上,相应地缩短了开发时间。对于核心平台来讲,也就缩短了本地化开发的周期。这篇论文拿在线考试系统作为实例,从中具体实现了最基本的J2EE架构并体现了其优势。由于时间关系,设计还不算很完美,主要研究了关键技术,设计有待于改进。 致谢经过几个月的不懈努力,和指导老师的谆谆教导,以及同组同学的团结协作,充分利用大学四年所学的专业知识,通过大量阅读与设计相关的专业参考文献,我终于完成了本次毕业设计,已经基本上实现了科研管理信息系统的各项功能。通过这次毕业设计,我掌握了SQLServer2000这种大型数据库的编程方法,掌握了JSP语言和sql技术。对团队的协作,对软件开发方法和手段,有了一定的认识,丰富了我的软件开发的经验,提高了程序编写的水平,并加深理解了许多课程中、科研本上学到的知识和理论。同时,通过编写毕业设计论文,我还基本掌握了书写论文的能力鲁迅说,世上倘若有完全的人,那么存活的也就相当有限。本系统尽管有自己的特色。但缺陷也是明显的,如安全性,效率问题等等。由于时间,能力,国内JSP,SQL技术资料有限等原因,有些功能实现的并不完美,在已经完成的程序中,也存在许多不尽人意的算法,也没有统一优化,系统有待进一步改善,而这些问题也让我充分认识到了软件开发的困难。通过毕业设计,我学会了如何去了解一种新型的技术,去掌握一种技术。以及软件开发的基本流程。在学习过程中,我们遇到问题经常上网求助,去图书查询资料,扩大了自己的知识面。总之,这次毕业设计为我今后继续学习、深造奠定了基础,我非常感谢各位老师、同学的支持与帮助。 参考文献[1]JamesW.Cooper,《JavaDesignPattern》,科学出版社,2003.11[2]YuanZhenming,ZhangLiang,ZhanGuohua,ANOVELWEB-BASEDONLINEEXAMINATIONSYSTEMFORCOMPUTESCIENCEEDUCATION,[3]BruceEckel,《ThinkinginJava(3rdEdition)》,December6,2002[4]MikeJasnowski,《Java,Xml和Web服务宝典》,电子工业出版社,2003.6[5]DannyAyers,《Java数据编程指南》,电子工业出版社,2003.6[6]JohnBell,《JavaServlets2.3编程指南》,电子工业出版社,2002.6[7]SubrahmanyamAllamaraju,《J2EE编程指南(1.3版)》,电子工业出版社,2002.5[8]何梅,《JavaApplet编程实例》,清华大学出版社,2002.4[9]萨师煊,王珊.《数据库系统概论》.高等教育出版社,2002年2月:3-460[10]Brown等.《JSP编程指南(第二版)》.电子工业出版社,2003年3月:1-268[11]清宏计算机工作室.《JSP编程技巧》.机械工业出版社,2004年5月:1-410[12]朱红,司光亚.《JSP编程指南》.电子工业出版社,2001年9月:34-307

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。
关闭