基于J2EE架构的在线考试系统-毕业设计论文_第1页
基于J2EE架构的在线考试系统-毕业设计论文_第2页
基于J2EE架构的在线考试系统-毕业设计论文_第3页
基于J2EE架构的在线考试系统-毕业设计论文_第4页
基于J2EE架构的在线考试系统-毕业设计论文_第5页
已阅读5页,还剩19页未读 继续免费阅读

下载本文档

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

文档简介

1、基于J2EE架构的在线考试系统目录 TOC o 1-4 h z HYPERLINK l _Toc73948867 摘要: PAGEREF _Toc73948867 h 3 HYPERLINK l _Toc73948868 Abstract: PAGEREF _Toc73948868 h 4 HYPERLINK l _Toc73948869 1 引言 PAGEREF _Toc73948869 h 5 HYPERLINK l _Toc73948870 2 在线考试系统构架 PAGEREF _Toc73948870 h 5 HYPERLINK l _Toc73948871 2.1 在线考试系统一般需

2、求分析 PAGEREF _Toc73948871 h 5 HYPERLINK l _Toc73948872 2.2 当前在线考试系统现状分析 PAGEREF _Toc73948872 h 6 HYPERLINK l _Toc73948873 2.3 基于J2EE的在线考试系统架构介绍及拥有的优势 PAGEREF _Toc73948873 h 6 HYPERLINK l _Toc73948874 2.3.1 结构总体介绍 PAGEREF _Toc73948874 h 6 HYPERLINK l _Toc73948875 2.3.2 客户层组件 PAGEREF _Toc73948875 h 7 H

3、YPERLINK l _Toc73948876 Applets PAGEREF _Toc73948876 h 7 HYPERLINK l _Toc73948877 应用程序客户端 PAGEREF _Toc73948877 h 7 HYPERLINK l _Toc73948878 2.3.3 WEB层组件 PAGEREF _Toc73948878 h 7 HYPERLINK l _Toc73948879 2.3.4 业务层组件 PAGEREF _Toc73948879 h 7 HYPERLINK l _Toc73948880 2.3.5 企业信息系统层 PAGEREF _Toc73948880

4、h 8 HYPERLINK l _Toc73948881 2.3.6 J2EE架构的优势 PAGEREF _Toc73948881 h 8 HYPERLINK l _Toc73948882 3 测试系统具体设计 PAGEREF _Toc73948882 h 9 HYPERLINK l _Toc73948883 3.1 基于J2EE的E-nettest在线考试系统构架概要 PAGEREF _Toc73948883 h 9 HYPERLINK l _Toc73948884 3.1.1 E-nettest系统结构 PAGEREF _Toc73948884 h 9 HYPERLINK l _Toc73

5、948885 3.1.2 E-nettest数据流程 PAGEREF _Toc73948885 h 10 HYPERLINK l _Toc73948886 3.2 E-nettest考试系统环境设置 PAGEREF _Toc73948886 h 11 HYPERLINK l _Toc73948887 3.3 E-nettest总体功能介绍 PAGEREF _Toc73948887 h 11 HYPERLINK l _Toc73948888 3.4 E-nettest模块设计 PAGEREF _Toc73948888 h 11 HYPERLINK l _Toc73948889 3.5 E-net

6、test数据库设计 PAGEREF _Toc73948889 h 13 HYPERLINK l _Toc73948890 4 关键技术 PAGEREF _Toc73948890 h 14 HYPERLINK l _Toc73948891 4.1 tomcat数据库连接池介绍与配置 PAGEREF _Toc73948891 h 14 HYPERLINK l _Toc73948892 4.2 applet数字签名技术 PAGEREF _Toc73948892 h 16 HYPERLINK l _Toc73948893 4.3 如何调用java外部程序 PAGEREF _Toc73948893 h

7、17 HYPERLINK l _Toc73948894 5 总结与展望 PAGEREF _Toc73948894 h 18 HYPERLINK l _Toc73948895 参考文献 PAGEREF _Toc73948895 h 19基于J2EE架构的在线考试系统计算机科学与技术专业001班沈志钢指导教师:袁贞明 张佳摘要: 目前国内基于B/S、C/S结构的在线考试系统产品已经有许多,本文首先介绍了这些考试系统的形成和发展过程,大致结构。然后通过仔细分析,提出了目前的这些系统还存有系统更新和维护等种种弊端,仍不够成熟。基于对现有产品的思考,结合J2EE的成熟技术,我们想到了是否可以将该技术运用

8、在在线考试系统中,提出了一个基于J2EE架构的在线考试系统。通过将该架构与已有结构的在线考试系统进行比较,分析了该架构的优势,重点介绍了该框架的整体构造以及相关的概念和技术。并通过设计了一个基于J2EE架构的在线考试系统对该架构做了一个比较深入的剖析。最后,对J2EE技术做了一个总结性的展望,认为该技术有着良好的发展空间和广阔的前景。关键词:J2EE,在线考试系统,b/s,JavaBean,jsp,数据池Abstract: At present, there are many b/s, c/s structure examination systems based on-line, this

9、paper first introduced most of these systems formed and developed process, and structures. Then, analysis these systems, and pointed out that there still have many defects about them, just like the update and the service to these systems .Thinking based on these produces, and now the J2EE technical

10、is becoming mature, we thinking about is this technical can be used in examination systems, so we mentioned a on-line system based on J2EE structure. Compared to other systems, and also analysis its advantages, we introduced this structures construction and technical as emphasize. Finally, make J2EE

11、 technical a expectation and it can progress quiet great and have a nice foreground.Keywords: J2EE, Examination system on-line, b/s, JavaBean, jsp, data pool1 引言现阶段,学校与社会上的各种考试大都采用传统的考试方式,在此方式下,组织一次考试至少要经过五个步骤,即出卷、考生考试、阅卷、成绩评估和试卷分析。显然,随着考试类型的不断增加及考试要求的不断提高,教师的工作量将会越来越大,并且其工作将是一件十分繁琐和非常容易出错的事情,可以说传统的

12、考试方式已经不能适应现代考试的需要。随着计算机应用的迅猛发展,网络应用不断扩大,如远程教育和虚拟大学的出现等等,且这些应用正逐步深入到千家万户。人们迫切要求利用这些技术来进行在线考试,以减轻教师的工作负担及提高工作效率,从而提高了考试的质量,使考试更趋于公证、客观、激发学生的学习兴趣。例如目前许多国际著名的计算机公司所举办的各种认证考试绝大部分采用这种方式。为了适应新形势的发展,目前国内有很多公司团体研究开发了基于Web的考试系统。而我们知道网络应用软件运行的模式主要有二类:Client/Server模式、Browser/Server模式。前者主要的缺点是维护、升级较麻烦,后者是近几年伴随In

13、ternet迅速发展而应运而生的一种技术,在这种模式下,客户端需要一个浏览器,服务器端是Web Server ,而Web Server是与数据库和应用服务器的紧密结合,可见,这种模式是瘦客户端,即对客户端的要求不高.如今,很多部门的业务系统、企业的MIS系统纷纷采用这种模式,它的主要优点是便于扩充应用、升级维护简便。然而,随着技术的发展,更先进的模式纷纷被提出并时兴起来,其中J2EE就是比较成熟的一种。2 在线考试系统构架2.1 在线考试系统一般需求分析 在线考试系统应具有以下要求:1)由于考试对应的是特定的对象,所以系统需要经过有效的身份验证才可以登陆。并且系统需要有可以管理会话的功能。以便

14、在考试过程中全程跟踪考试状态。2)系统的权限一般分为两种:管理员和学生。不同的身份使用不同的权限和功能。3)管理员需要对试题和考生进行有效的管理,负责试题的录入及更新和修改,对试题的分类,每次考试前,需要对试场环境和考生状态进行考前初始化工作。要注意的是, 鉴于考试环境一般为机房,考试者之间的距离很近,为了在线考试做到规范,对于每个应试者来说,试卷的试题和题量都应是相同的,但试题并不相同。系统要有良好的试卷上传和回收功能,确保信息传送的正确性。系统要有一个友善的界面,确保考生考试的顺利进行。因为试卷中的主观题需要老师批改,可能需要一段时间才能查询到成绩。但如果试卷是由客观题型组成的,考生就可以

15、在考试结束后查询到自己的成绩了。系统提供对考生成绩的统计和查询等管理功能。系统应具有良好的安全性管理。2.2 当前在线考试系统现状分析当前考试系统中,仍有许多是基于c/s模式的,每一次伴随着系统的升级,都要在每个客户端更新软件,耗时耗力。可喜的是,随着技术的发展,基于b/s模式的在线考试系统越来越多,逐渐占据了主导地位。它克服了c/s模式下的许多缺点,从传统的基于C/S模式的考试系统转变到基于B/S模式的考试系统,可以使用户在任何一台电脑上,只要可以上网,就可以使用该服务,大大简化了操作,为用户提供了方便。另一方面,也为教师的管理和批阅工作提供了方便,提高了效率。但是据我多方的观察和研究,发现

16、大多数的在线考试系统都是采用基于页面的模式开发,每个页面中都包含了要用到的所有功能逻辑,导致代码重复率高,结构不够清晰,维护升级起来也很费时间和人力。鉴于这种情况,所以我们将J2EE的概念加入到在线考试系统中来,使得该系统更易于升级和维护。2.3 基于J2EE的在线考试系统架构介绍及拥有的优势23.1 结构总体介绍J2EE使用多层的分布式应用模型,应用逻辑按功能划分为组件,各个应用组件根据他们所在的层分布在不同的机器上。事实上,sun设计J2EE的初衷正是为了解决两层模式(client/server)的弊端,在传统模式中,客户端担当了过多的角色而显得臃肿,在这种模式中,第一次部署的时候比较容易

17、,但难于升级或改进,可伸展性也不理想,而且经常基于某种专有的协议通常是某种数据库协议。它使得重用业务逻辑和界面逻辑非常困难。现在J2EE 的多层企业级应用模型将两层化模型中的不同层面切分成许多层。一个多层化应用能够为不同的每种服务提供一个独立的层,以下是 J2EE 典型的四层结构:运行在客户端机器上的客户层组件 运行在J2EE服务器上的Web层组件 运行在J2EE服务器上的业务逻辑层组件 运行在EIS服务器上的企业信息系统(Enterprise information system)层软件 图1 J2EE 典型的四层结构 客户层组件J2EE应用程序可以是基于web方式的,也可以是基于传统方式的

18、。J2EE规范中指出,客户层组件有两种,它们是应用客户端程序和applets客户端。.1 Applets从Web层接收的一个Web页面可以包含内嵌的applet。一个applet是一个用Java编程语言编写的小的客户端应用程序,它在安装在Web浏览器中的Java虚拟机中运行。然而,为了在Web浏览器中成功地运行applet,客户端系统很可能需要Java插作和安全策略文件。 Web组件是用来建立一个Web客户端程序的首选的API,因为这样在客户端系统中就不需要插件和安全策略文件。同样的,使用Web组件可以有效地改善应用程序设计,因为它们提供了一个将应用程序设计和Web页面设计有效分离的途径。We

19、b页面的设计者可以不必关心Java编程语言的语法就能很好地完成自己的工作。.2 应用程序客户端一个J2EE应用程序客户端运行在客户端机器上,它使得用户可以处理需要比标记语言所能提供的更丰富的用户界面的任务。具有代表性的是用Swing或抽象窗口工具包(AWT)API建立的图形用户界面(GUI),但是一个命令行界面也是当然可能的。 应用程序客户端直接访问运行在商业层的enterprise bean。然而,如果应用程序需要授权, 一个J2EE应用程序客户端可以打开一个 连接来与一个运行在Web层的servlet建立通信。 WEB层组件J2EE web层组件可以是JSP 页面或Servlets.按照J

20、2EE规范,静态的HTML页面和Applets不算是web层组件。正如下图所示的客户层那样,web层可能包含某些 JavaBean 对象来处理用户输入,并把输入发送给运行在业务层上的enterprise bean 来进行处理。图2 Web层组件 业务层组件业务层代码的逻辑用来满足银行,零售,金融等特殊商务领域的需要,由运行在业务层上的enterprise bean 进行处理. 下图表明了一个enterprise bean 是如何从客户端程序接收数据,进行处理(如果必要的话), 并发送到EIS 层储存的,这个过程也可以逆向进行。有三种企业级的bean: 会话(session) beans, 实体

21、(entity) beans, 和消息驱动(message-driven) beans。 会话bean 表示与客户端程序的临时交互. 当客户端程序执行完后, 会话bean 和相关数据就会消失. 相反, 实体bean 表示数据库的表中一行永久的记录。当客户端程序中止或服务器关闭时, 就会有潜在的服务保证实体bean 的数据得以保存.消息驱动 bean 结合了会话bean 和 JMS的消息监听器的特性, 允许一个业务层组件异步接收JMS 消息。图3 业务层组件 企业信息系统层企业信息系统层处理企业信息系统软件包括企业基础建设系统例如企业资源计划 (ERP), 大型机事务处理, 数据库系统,和其它的

22、遗留信息系统. 例如,J2EE 应用组件可能为了数据库连接需要访问企业信息系统。 J2EE架构的优势J2EE为搭建具有可伸缩性、灵活性、易维护性的系统提供了良好的机制:1)保留现存的IT资产: 由于技术需求的不断更新,在线考试系统必须可以适应新的要求,利用已有的对考试系统方面的投资,而不是重新制定全盘方案。这样,一个以渐进的(而不是激进的,全盘否定的)方式建立在已有考试系统之上的服务器端平台机制是学校和单位所需求的。J2EE架构可以充分利用用户原有的投资,这之所以成为可能是因为J2EE拥有广泛的业界支持和一些重要的企业计算领域供应商的参与。每一个供应商都对现有的客户提供了不用废弃已有投资,进入

23、可移植的J2EE领域的升级途径。由于基于J2EE平台的产品几乎能够在任何操作系统和硬件配置上运行,现有的操作系统和硬件也能被保留使用。 2)高效的开发: J2EE允许客户把一些通用的、很繁琐的服务端任务交给中间件供应商去完成。这样开发人员可以集中精力在如何创建商业逻辑上,相应地缩短了开发时间。高级中间件供应商提供以下这些复杂的中间件服务: 状态管理服务 - 让开发人员写更少的代码,不用关心如何管理状态,这样能够更快地完成程序开发。 持续性服务 - 让开发人员不用对数据访问逻辑进行编码就能编写应用程序,能生成更轻巧,与数据库无关的应用程序,这种应用程序更易于开发与维护。 分布式共享数据对象服务

24、- 让开发人员编制高性能系统,极大提高整体部署的伸缩性。 3)支持异构环境: J2EE能够开发部署在异构环境中的可移植程序。基于J2EE的应用程序不依赖任何特定操作系统、中间件、硬件。因此设计合理的基于J2EE的程序只需开发一次就可部署到各种平台。由于考试系统很多时候需要提供给许多不同的学校和单位使用,这些学校和单位的软件硬件环境存在有较大的差异,所以能支持异构环境这点就十分关键。同时J2EE标准也允许客户订购与J2EE兼容的第三方的现成的组件,把他们部署到异构环境中,节省了由自己制订整个方案所需的费用。 4)伸缩性: 学校和单位必须要选择一种服务器端平台,这种平台应能提供极佳的可伸缩性去满足

25、可能不断增多的在他们系统上进行考试的大批新的考生。基于J2EE平台的应用程序可被部署到各种操作系统上。例如可被部署到高端UNIX与大型机系统,这种系统单机可支持64至256个处理器。(这是NT服务器所望尘莫及的)J2EE领域的供应商提供了更为广泛的负载平衡策略。能消除系统中的瓶颈,允许多台服务器集成部署。这种部署可达数千个处理器,实现可高度伸缩的系统,满足未来系统升级和规模扩大的需要。 5)稳定的可用性: 虽然在线考试系统不象一般企业的服务器端平台必须能全天候运转以满足公司客户、合作伙伴的需要,但起码必须保证考生考试的这段时间内不发生意外停机等故障,从而影响到考生考试。J2EE部署到可靠的操作

26、环境中,他们支持长期的可用性。一些J2EE部署在WINDOWS环境中,客户也可选择健壮性能更好的操作系统如Sun Solaris、IBM OS/390。最健壮的操作系统可达到99.999%的可用性或每年只需5分钟停机时间。这是对在线考试系统,特别对于那些比较重要的考试的理想选择。 3 测试系统具体设计3.1 基于J2EE的E-nettest在线考试系统构架概要 E-nettest系统结构我们的系统结构是针对了J2EE的四层架构进行设计的客户端浏览器,负责处理用户视图界面负责处理考生的登录和做题信息,传送给相应的javabean组件。并将返回信息传送给用户页面显示。负责得到数据库的连接,从数据库

27、取得相应信息,将用户信息输入上传到数据库中。负责试题和考生信息等的存储。图4 系统结构如图所示,客户层负责提供用户界面接口,包括试题的显示和考生答案的输入。Web层负责将得到的考生登陆和题目上传的信息送交给业务层,同时,将从业务层处得到考试的相关信息输出到html页面为考生提供相关服务。业务层负责系统的具体逻辑实现,主要是得到数据池中的数据源,向数据库中提交和获得数据等。信息系统层主要采用了Microsoft sql2000数据库对数据进行存贮管理。 E-nettest数据流程考生首先进入登陆页面,输入用户名和密码,系统将该用户名和密码与数据库中考生表的用户名密码一一核对,如果存在该考生且未登

28、陆,则弹出一个考试的主页面正常进入考试,并将该考生置为考试状态。否则会跳到出错页面要求考生重新登陆。进入考试页面后,有许多分类的试题要求考生分别完成,考生点击相应页面的超链接,进入做题,在每个分页面的顶部,都将会有对该部分试题的操作提示和注意事项,考生阅读完相关事项后进行做题,每做完该部分试题都必须保存,系统将收集到的考生做题信息上传到数据库中,考生则继续做其他部分试题。完成所有考试后,考生点击交卷标记,系统保存考生所有的答题信息后正常他退出,并将考生置于离线状态。具体流程见下图:图5 系统流程3.2 E-nettest考试系统环境设置 本系统运行环境如下: 服务器端:软件环境:win2000

29、/nt Tomcat,jsdk用以支持jsp网页,sql server数据库服务器 硬件环境:p3 1.0以上cpu,256M Rom 硬件环境:p2 233以上cup,32M 以上内存3.3 E-nettest总体功能介绍客户端登陆服务:负责用户的登陆的输入,与服务器端的验证,如果是重登陆的,需重登陆密码。 题目下载:负责从数据库中读取试题数据,下载到客户端。用户答题:负责在客户的浏览器中显示下载的题目,供用户做题。题目上传:负责将客户所答题目的答案上传到服务器端。管理端生成试题:负责从试题源中生成当场考试的相应试题。试题初始化:负责在每场考试前清空试题回收信息。考生监控:负责在考试期间管理

30、监控各考生的考试状态。试卷回收:负责在考试结束后,将考生提交的答案上传到数据库服务器中。试卷批阅:负责自动化批阅回收试卷(客观题)。数据库连接服务:负责从各共性服务层模块接收相关数据库连接,查询,修改等服务,并返回相关数据。数据访问层异常管理:负责数据库连接服务出现的异常。3.4 E-nettest模块设计各模块的详细介绍:1)考生登陆模块:在客户层,考生通过主登陆页面输入用户名与密码。在web层,将从用户输入处得到的用户名和密码与从业务层返回的相应用户名和密码作比较,如果用户存在密码正确且还未登陆就登陆考试主页面,否则跳到出错页面要求重新登陆。在业务层,获得与mssql数据库的连接,并取出所

31、有的用户名和密码信息。将该信息传入web层。在EIS层,对应的是mssql数据库中的students表格。2)做题模块:(1)选择题:在客户层,浏览器中显示每个考生所对应的考试题目,要求考生输入考试答案。并有一个提交按钮供考生做完题目后上传题目。在Web层,jsp负责从业务层中获得题目,并将题目组织在一起向客户端显示。在业务层,获得与数据库的连接,并且取出选择题题目。在EIS层,对应的是数据库中choose表格。(2)word题:在客户层,在浏览器中applet的textarea区域显示word题的要求,并利用applett数字签名技术,突破访问本地文件系统的限制,打开word做题。在Web层

32、,利用servlet的文件上传下载技术,将读出的word文件下载到本地磁盘。在业务层,获得数据库连接,并取出word题目,word题是以二进制流的方式将word文件存贮在数据库。在EIS层,对应的是数据库中word表格。3)答案上传模块:在客户层,在浏览器中单击提交按钮将做完的答案提交制相应页面在Web层,将用户提交的答案提交给相应的javabean组件,并在客户端显示提示信息。在业务层,将提交上来的答案存入相应的数据库中。在EIS层,数据库中students表格,有两个相应字段用来存放该用户所对应的提交答案。e-nettest系统登陆服务用户答题答案上传数据库连接服务 MS SQL SERV

33、ER数据访问层异常管理题目下载生成试 题试题初始化考生监控试卷回收试卷批阅图6 系统模块3.5 E-nettest数据库设计由于目前市场上存在有许多的数据库产品,较流行的有oracle,Mssql,Access,等,oracle数据库多用于大企业中,稳定性最好,但价格也较高,且系统要求也较高,而Access数据库不支持网络功能,一般只对个人或小型的系统适用,而对于本系统来说,采用Msssql则是一个较为合适的选择,Mssql是微软网络数据库的主打产品,支持网络功能,日志记录等多种方便的服务,并且有着较为稳定的性能和可靠的管理。下面是数据库表的设计:Students table:id, char

34、, 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=离线)choose table: QNUM, INT, 4,notnull; QCON, TEXT, 16, notnull;QANSA, TEXT, 50, notnull;QANSB, TEXT, 50,notnull;QANSC, TEXT,

35、50,notnull;QANSD, TEXT, 50,notnull;QANSE, TEXT, 50,notnull;QANS, TEXT, 1,notnull;Word table: Topic_Number , nvarchar, 2,notnull; Question_Title, text, 16,notnull;Question_Content,image, 16,notnull;4 关键技术4.1 tomcat数据库连接池介绍与配置数据库连接池概述:数据库连接是一种关键的有限的昂贵的资源,这一点在多用户的网页应用程序中体现得尤为突出。对数据库连接的管理能显著影响到整个应用程序的伸缩

36、性和健壮性,影响到程序的性能指标。数据库连接池正是针对这个问题提出来的。数据库连接池负责分配、管理和释放数据库连接,它允许应用程序重复使用一个现有的数据库连接,而再不是重新建立一个;释放空闲时间超过最大空闲时间的数据库连接来避免因为没有释放数据库连接而引起的数据库连接遗漏。这项技术能明显提高对数据库操作的性能。数据库连接池在初始化时将创建一定数量的数据库连接放到连接池中,这些数据库连接的数量是由最小数据库连接数来设定的。无论这些数据库连接是否被使用,连接池都将一直保证至少拥有这么多的连接数量。连接池的最大数据库连接数量限定了这个连接池能占有的最大连接数,当应用程序向连接池请求的连接数超过最大连

37、接数量时,这些请求将被加入到等待队列中。数据库连接池的最小连接数和最大连接数的设置要考虑到下列几个因素:1) 最小连接数是连接池一直保持的数据库连接,所以如果应用程序对数据库连接的使用量不大,将会有大量的数据库连接资源被浪费;2) 最大连接数是连接池能申请的最大连接数,如果数据库连接请求超过此数,后面的数据库连接请求将被加入到等待队列中,这会影响之后的数据库操作。3) 如果最小连接数与最大连接数相差太大,那么最先的连接请求将会获利,之后超过最小连接数量的连接请求等价于建立一个新的数据库连接。不过,这些大于最小连接数的数据库连接在使用完不会马上被释放,它将被放到连接池中等待重复使用或是空闲超时后

38、被释放。以下介绍一下连接池配置关键几个环节:1)首先在中, 配置应用程序的路径2)然后配置资源名,用以在jndi中进行查询 3)定义各连接参数,用户名,密码,数据库驱动以及数据源的查找路径 usernamejavauser passwordjavadude driverClassName url jdbc:mysql:/localhost:3306/javatest?autoReconnect=true 4)由于系统是一个web应用程序,被布署在tomcat容器中,所以需要在$CATALINA_HOME/webapps/quality/WEB-INF/web.xml里设置被引用的资源:下面是配

39、置代码,必须放在和里。connectDB testjdbc/connectDBjavax.sql.DataSourceContainer5)最后,将第3方的驱动都保存在$CATALINA_HOME/common/lib/*.jar中,如我们这里连接的是mssql,则将mssql的驱动程序,放入其中。4.2 applet数字签名技术实现applet数字签名,使得applet可以突破默认安全限制,读取本地文件系统。在Java2的安全体系下,1个Applet开发和运行的过程如下: 在代码的分发端: 1)开发Java源程序并对其进行编译。 2)用JAR工具对类文件和资源文件进行封装。 3)用keyto

40、ol创建公钥和密钥,生成X。509V1签名证书,输出证书。 4)通过jarsigner工具用生成的密钥对JAR文件进行数字签名。 在代码的接收端: 1)用keytool输入证书视其为可信任。 2)用policytool创建和修改安全性策略配置文件,授权请求的访问权限。 3)从网络取得字节码,用公钥验证数字签名证书和文档代码的完整性。 4)验证字节码的合法性,根据策略文件分配相应权限。 5)执行代码,完成后被垃圾回收器回收内存。 在用公钥验证数字签名证书之前,接收方需要确认公钥自身的可靠性,因此通常情况是提供一个包含公钥的证书而不是公钥自身。1个证书包括: 1)1个公钥。 2)1个唯一的名字实体

41、(个人或公司),它是证书的所有者,包含用户名字、公司、组织、城市、地址、国家代码、省份等信息。 3)数字签名:1个证书被1个分发者的实体签名,保证证书确实包含另1个实体(所有者)的公钥。 4)分发者的标识名信息。 对于接收者可以用分发者的公钥来验证他的数字签名,检查证书的合法性。然而公钥可能包含在另一个证书中,而数字签名需要用另一个证书的分发者的公钥来验证,这样嵌套下去,直到一个公钥被接收者确认是可信任的。如果接收者不能建立信任链,例如:1个分发者的证书不合法,那么可以用keytoolimport命令来计算指纹,每个指纹是一个相关的短数字,它唯一可靠地标识证书(指纹是一个用信息摘要算法计算的证

42、书信息的哈希值),接收者可以呼叫证书的所有者,并比较发出的证书和接收证书的指纹,如果指纹相同,则证书不同。因此能够保证证书在传递的过程中未被修改。另一个潜在的问题是发送者身份的标识,有时一个证书是自签名的,即使用证书中的公钥相对应的密钥进行签名,如果接收者已经知道或信任发送者,那么就没有任何问题。否则发送者需要从一个可信任的第3方得到证书,这个第3方通常是一个证书的授权机构CA,那么首先发送一个自签名的证书签名请求CSR给CA,由CA验证CSR的签名及发送CSR的身份、许可证以及其它信息。然后CA通过一个用CA的密钥进行签名的证书,授权CSR的发送者作为公钥的所有者,任何人只要信任CA的公钥,

43、都可以用之来验证证书的签名,很多情况下CA自身有一个来自更高一级的CA的证书,从而构成证书链。所有信任的证书实体都可以作为信任证书被引入钥匙库,每个证书中的公钥都可以用来验证用相应的密钥生成的签名。 发送者在发送签名的代码和文档时还相应提供包含与签名的密钥相应的公钥证书。用keytoolexport命令或API函数可以从钥匙库中输出证书到文件中,然后将这个文件发送给需要的接收者,由接收者用keytoolimport命令或API函数将其引入钥匙库中。如果用jarsigner工具为JAR文件生成签名,他会从钥匙库中取出证书及证书链,并和签名一起放入JAR文件。 密钥和相应的公钥证书存放在一个由口令

44、保护的数据库中,称为钥匙库(keystore)。1个钥匙库包含2种类型的条目,可信任的证书条目,钥匙和证书条目,每个都包含1个密钥和与密钥相应的公钥证书,在钥匙库中的每个条目都有1个别名进行标识。1个钥匙库的所有者在钥匙库中可以有多个钥匙,可以通过不同的别名进行访问,每个别名通常是用钥匙库的所有者使用的钥匙的特定角色来命名,别名也可以标识钥匙的目的。例如:SignPersonalEmail可以被用来标识1个钥匙库的条目,它的密钥用于签名个人邮件,SignJarFiles用于标识1个条目,它的密钥用于签名JAR文件。4.3 如何调用java外部程序在系统中,由于涉及到需要调用word程序进行wo

45、rd试题的考试,因此需要用到调用java外部程序的功能,java.lang.Runtime 类提供了exce()方法来完成对外部可执行程序的调用。注意:在这里exce()方法调用的其实是java解释器这个可执行程序,外部类文件Invoked.class只不过是作为java解释器的参数出现。事实上,exce()方法还可以直接调用其它的可执行文件,而不仅仅是java解释器。具体代码见下:String path = C:;try Runtime.getRuntime().exec(cmd /c start winword + path + ); catch (IOException e) tStac

46、kTrace();5 总结与展望在传统的两层体系下,业务逻辑在客户端和服务器端都有分布,而且服务器端的主要计算任务都由数据库承担。数据库系统本身作为系统级软件,它本身的优势在于提供高效率的数据访问和处理而不是数值计算,利用数据库系统处理大量的业务计算并没有完全发挥出数据库管理系统的特长,当请求并发量巨大时,数据库性能下降很快。针对这一不足,基于J2EE架构的处理方式是:业务逻辑分布到应用服务器上,数据库上不再具有业务逻辑处理单元,而只负责基础业务数据的管理,主要的计算任务由应用服务器完成,从而充分利用了应用服务器在并发处理和逻辑计算方面的优势。另外,应用服务器还可以做集群的配制,即在物理上,统

47、一应用管理多台应用服务器对外部请求的分配和并行处理。这样,当计算请求并发量巨大时,集群的多台应用服务器之间可以动态的进行任务分配,实现负载均衡,保证了系统性能不会因为大量并发用户的访问而急剧下降,另外系统也同时具备了很好的可扩展性和伸缩性,即在请求并发量增大或减少时,可根据实际情况增加或减少应用服务器数量,以便保证性能的前提下,合理利用硬件资源。这些都是两层结构所不具备的优点。 基于J2EE的四层架构还具备很多特点。应用J2EE的四层架构对于保留现存的IT资产有着重要意义。由于社保机构在面对适应新的业务需求的同时,也要充分利用好已有的资产,因此,在信息系统建设方面,做平滑的系统迁移方案,而不是

48、重新制定全盘方案就变得很重要。这样,一个以渐进的,而不是激进的、全盘否定的方式建立在已有系统之上的服务器端平台机制,是所有社保经办机构所力求的。J2EE架构可以充分利用用户原有的投资,如一些公司使用的BEA Tuxedo、IBM CICS、IBM Encina、Inprise VisiBroker。之所以成为可能,主要是因为J2EE拥有广泛的业界支持。每一个供应商都对现有的客户提供了不用废弃已有投资,进入可移植的J2EE领域的升级途径。另外,由于基于J2EE平台的产品几乎能够在任何操作系统和硬件配置上运行,现有的操作系统和硬件也可以被完整地保留下来继续使用。 J2EE体系对大型系统的高效开发有

49、着良好的支持者。J2EE标准严格要求把一些通用的、很繁琐的服务端底层开发任务交给中间件供应商去完成,而这些复杂的系统级功能是常规应用开发中难度最大、开发成本最高的一部分工作。高级中间件供应商提供复杂的中间件服务,如:状态管理服务、持续性服务、分布式共享数据对象的缓冲服务等,它对开发人员来说是很重要的,这样开发人员可以集中精力在如何创建业务逻辑上,相应地缩短了开发时间。对于核心平台来讲,也就缩短了本地化开发的周期。 这篇论文拿在线考试系统作为实例,从中具体实现了最基本的J2EE架构并体现了其优势。由于时间关系,设计还不算很完美,主要研究了关键技术,设计有待于改进。参考文献2 Yuan Zhenm

50、ing, Zhang Liang, Zhan Guohua ,A NOVEL WEB-BASED ONLINE EXAMINATION SYSTEM FOR COMPUTE SCIENCE EDUCATION,3 Bruce Eckel ,Thinking in Java (3rd Edition), December 6, 20025 Danny Ayers,Java 数据编程指南,电子工业出版社6 John Bell , HYPERLINK :/www -java /eshop/book.php?pk=1085365952&id=17&ac=2000102212 t _self ,电子工业

51、出版社7 Subrahmanyam Allamaraju,p?pk=1085366035&id=13&ac=2000102212 t _self J2EE编程指南(1.3版),电子工业出版社e, Calvin said. Cirocco glanced at him, got a glimpse of his brown eyes before he turned back to his work. That was my thought. A real big fusion ramscoop. The machinery is in the hub, electromagnetic fiel

52、d generators to funnel the interstellar hydrogen into the center, where it gets burned. Gaby shrugged. Makes sense. But what about docking? Well, leaving the thing would be easy enough. just drop out a hole in the bottom and get escape velocity for free, plus some to fool around with. But there ough

53、t to he some sort of dingus that would telescope out to the center of rotation when the engine isnt running, to pick up scout ships. The main engine has to he there. The only other way would be to space engines around the rim. Id want three, at least. More would be better. nd girls dorms, but you sa

54、w everybody in the rec room and the dining hall and so on, and she was in my psychodrama group. Her hair had been black, and shiny as the lacquered furniture in Dr. Hongs rooms, her skin white like mother-of-pearl, her eyes long and narrow (making him think of cats eyes) and darkly blue. She was fif

55、teen, or so Nicholas believed-maybe sixteen. Im going home, she told him. It was psychodrama, and he was her brother, younger than she, and she was already at home; but when she said this the floating ring of light that gave them the necessary separation from the small doctor-and-patient audience, c

56、eased, by i And when I was there it rained. There was a big , trouble at one of the generating piles, and they shut it -_ down and it got colder and colder until everybody in the hospital wore their blankets, just like Amerinds in books, and they locked the switches off on the heaters in the bathroo

57、ms, and the nurses and the comscreen told you all the time it wasnt dangerous, they were-just rationing power to keep from blacking out the important stuff that was still running. And then it rained, just like on Earth. They said it got so cold the water condensed in the air, and it was like the who

58、le hospital was right under a shower bath. Everybody on the top floor had to come down because it rained right on their beds, and for two nights I had a man in my room with me that had his arm cut off in a machine. But we couldnt jump any higher, and it got kind of dark.It doesnt always get dark her

59、e, Diane said. Sometimes the rain sparkles. I think Dr. Island must do it to cheer everyone up.No, the waves explained, or at least not in the way you mean, Diane.Nicholas was hungry and started to ask them for something to eat, then turned his hunger in against itself, spat on the sand, and was sti

60、ll. es. I never met any one of his class who remembered him. They did not even remember that he was middleweight boxing champion.I mistrust all frank and simple people, especially when their stories hold together, and I always had a suspicion that perhaps Robert Cohn had never been middleweight boxi

温馨提示

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

评论

0/150

提交评论