1、- 1 -摘 要计算机等级考试查询系统,基于学校里庞大的用户群应运而生。它是应用 JSP技术在 LINUX服务器上构建的系统模型。本系统采用 j2sdk1.4.1_07版本进行开发,使用RESIN服务器当做测试服务器,采用 mm.mysql.jdbc-2.0pre5驱动数据库。使用Dreamweaver编写 JSP语言。计算机等级考试查询系统主要解决不同类型的用户怎样进行不同类型的查询,即超级管理员、系管理员和学生用户怎样进行不同权限的查询。这样限定权限便于管理,而且查询结果一目了然。当然在开发软件系统的漫长过程中,我们会面临错综复杂的问题,人又难免会犯错误,这就需要进行软件测试。我在编码过程
2、中进行了模块测试,编码结束后又进行了系统测试和验收测试。分别采用白盒测试和黑盒测试的方法。测试结果表明每个模块之间的接口都吻合,即被调用模块都能正确接收参数,调用模块能调用自己想要调用的每个模块。各项功能基本上实现,产生记录符合要求。关键词:JSP 技术 查询 权限 软件测试- 2 -第一章 引言计算机等级考试查询系统是有其开发的必要性的,它的应用将大大节省了学校的人力资源,从而从人工劳动中解脱出来。我们这次开发的软件系统一共包括了三个部分:等级考试的报名系统、查询系统和管理系统。其中管理系统是另外两部分的总汇。我设计的这部分主要是查询系统,其中包含了超级管理员的查询、系管理员的查询和普通学生
3、的查询。这就需要分别限定查询的权限问题。我个人认为是难点中的难点。因为这是我第一次涉及 JSP技术,所以我用到的还只是很浅显的一部分,更深奥的还有待我在今后的学习当中逐渐的把它解决。计算机等级考试的查询系统是此次开发过程当中不可缺少的组成部分,它与另外两个系统相辅相成,形成完整的统一,尤其是其中的数据库,更是连接这三部分的纽带所在。以下我将分几个章节来进行具体介绍。关于 JSP简 介JSP是 Sun公司推出的新一代网站开发语言,Sun 公司借助自己在 Java上的不凡造诣,将 Java从 Java应用程序和 Java Applet之外,又有新的硕果,就是 JSP,Java Server Pag
4、e。JSP 可以在 Serverlet和 JavaBean的支持下,完成功能强大的站点程序。技术特点1将内容的产生和显示进行分离- 3 -使用 JSP技术,Web 页面开发人员可以使用 HTML或者 XML标识来设计和格式化最终页面。使用 JSP标识或者小脚本来产生页面上的动态内容。产生内容的逻辑被封装在标识和JavaBeans群组件中,并且捆绑在小脚本中,所有的脚本在服务器端执行。如果核心逻辑被封装在标识和 Beans中,那么其它人,如 Web管理人员和页面设计者,能够编辑和使用 JSP页面,而不影响内容的产生。在服务器端,JSP 引擎解释 JSP标识,产生所请求的内容(例如,通过存取 Ja
5、vaBeans群组件,使用 JDBC技术存取数据库),并且将结果以 HTML(或者 XML)页面的形式发送回浏览器。这有助于作者保护自己的代码,而又保证任何基于 HTML的 Web浏览器的完全可用性。2强调可重用的群组件绝大多数 JSP页面依赖于可重用且跨平台的组件(如:JavaBeans 或者 Enterprise JavaBeans)来执行应用程序所要求的更为复杂的处理。开发人员能够共享和交换执行普通操作的组件,或者使得这些组件为更多的使用者或者用户团体所使用。基于组件的方法加速了总体开发过程,并且使得各种群组织在他们现有的技能和优化结果的开发努力中得到平衡。3采用标识简化页面开发Web
6、页面开发人员不会都是熟悉脚本语言的程序设计人员。JavaServer Page技术封装了许多功能,这些功能是在易用的、与 JSP相关的 XML标识中进行动态内容产生所需要的。标准的 JSP标识能够存取和实例化 JavaBeans组件,设定或者检索群组件属性,下载 Applet,以及执行用其它方法更难于编码和耗时的功能。通过开发定制化标识库,JSP 技术是可以扩展的。今后,第三方开发人员和其它人员可以为常用功能建立自己的标识库。这使得 Web页面开发人员能够使用熟悉的工具和如同标识一样的执行特定功能的构件来工作。JSP 技术很容易整合到多种应用体系结构中,以利用现存的工具和技巧,并且扩展到能够支
7、持企业级的分布式应用。作为采用 Java技术家族的一部分,以及 Java 2EE的一个成员,JSP技术能够支持高度复杂的基于 Web的应用。由于 JSP页面的内置脚本语言是基于 Java程序设计语言的,而且所有的 JSP页面都被编译成为 Java Servlet,JSP 页面就具有 Java技术的所有好处,包括健壮的存储管理和安全性。作为 Java平台的一部分,JSP 拥有 Java程序设计语言“一次编写,各处执行”的特点。随着越来越多的供货商将 JSP支持加入到他们的产品中,您可以使用自己所选择的服务器和工具,修改工具或服务器并不影响目前的应用。- 4 -应用范围JSP同 PHP3类似,几乎
8、可以执行于所有平台。如 Win NT,Linux,Unix。在 NT下 IIS通过一个外加服务器,例如 JRUN或者 ServletExec,就能支持 JSP。知名的 Web服务器 Apache已经能够支持 JSP。由于 Apache广泛应用在 NT、Unix 和 Linux上,因此 JSP有更广泛的执行平台。虽然现在 NT操作系统占了很大的市场份额,但是在服务器方面 Unix的优势仍然很大,而新崛起的 Linux更是来势不小。从一个平台移植到另外一个平台,JSP 和 JavaBean甚至不用重新编译,因为 Java字节码都是标准的与平台无关的。性能比较有人做过试验,对 ASP、JSP、PHP
9、 这三种语言分别做回圈性能测试及存取 Oracle数据库测试。在循环性能测试中,JSP 只用了令人吃惊的四秒钟就结束了 2000020000 的回圈。而ASP、PHP 测试的是 20002000 循环(少一个数量级),却分别用了 63秒和 84秒。数据库测试中,三者分别对 Oracle 8 进行 1000 次 Insert,Update,Select和 Delete: JSP 需要 13 秒,PHP 需要 69 秒,ASP 则 需要 73 秒。前景分析与 ASP、PHP 相比,JSP 应该是未来发展的趋势。世界上一些大的电子商务解决方案提供商都采用 JSP/Servlet。比较出名的如 IBM
10、的 Ebusiness,它的核心是采用 JSP/Servlet的Web Sphere。它们都是通过 CGI来提供支持的。但去年 10月后它推出了 Enfinity,一个采用JSP/Servlet的电子商务 Application Server,而且声言不再开发传统软件。- 5 -第二章 需求分析一、开发环境1软件应用本系统采用 j2sdk1.4.1_07版本进行开发,使用 RESIN服务器当做测试服务器,采用 mm.mysql.jdbc-2.0pre5驱动数据库。使用 Dreamweaver编写 JSP语言。2.环境配置Windowsxp下配置环境变量,添加变量名为 JAVA_HOME 值为
11、D:j2sdk1.4.1_07,添加变量名为 classpath 值为 D:mm.mysql.jdbc-2.0pre5,在已有的 PATH环境变量里添加值 D:j2sdk1.4.1_07bin。这样开发环境配置完毕。二、可行性研究根据我们学校的实际情况,本系统主要分为三个部分:超级管理员、各系管理员和学生用户。超级管理员可以对任意信息进行查询。包括按系查询、按年级查询、按姓名查询、按学号查询、按性别查询、按时间段查询、按等级查询和按考试类别查询等等。还可以进行复合查询。比如按系和按年级同时查询,那样就会列出所有符合条件的信息,然后加以选择性查询。各系管理员由超级管理员分配其查询权限后,可以对本
12、系的学生进行任意查询,同样也是包括按年级查询、按姓名查询、按学号查询、按性别查询、按时间段查询、按等级查询和按考试类别查询等。也可以进行复合查询,比如按年级和姓名等。但是不能对非本系的人员进行任何查询。学生用户由超级管理员分配其查询权限后,只能通过自己的学号、姓名、性别、民族、身份证号、系别、年级等相关项进行查询,可以是单独输入某一项信息,也可以进行复合查询。- 6 -三、系统流程图及数据流图1系统流程图报单数据库输入数据输出数据查询系统2数据流图1) 基本结构数据流图查询系统用户输出 用户输入 数据输出- 7 -2) 具体功能流程图四、需求分析需求分析简单的说就是分析用户的要求。需求分析是设
13、计数据库的起点,需求分析的结果是否准确地反映了用户的实际要求,将直接影响到后面各个阶段的设计,并影响到设计结果是否合理和实用。需求分析的任务是通过详细调查现实世界要处理的对象,充分了解原系统工作概况,明确用户的各种要求,然后在此基础上确定新系统的功能。也就是说我们希望系统做什么。这个阶段是对系统认识最为全面的阶段,应该是用户基本上确定自己的最终要求阶段。1系统的功能1) 超级管理员的功能:超级管理员可以对任意信息进行查询。包括按系查询、按年级查询、按姓名查询、按学号查询、按性别查询、按时间段查询、按等级查询和按考试类别查询等等。还可以进行复合查询。比如按系和按年级同时查询,那样就会列出所有符合
14、条件的信息,然后加以选择性查询。2) 各系管理员的功能:可以对本系的学生进行任意查询,同样也是包括按年级查询、按姓名查询、按学号查询、按性别查询、按时间段查询、按等级查询和按考试类别查询- 8 -等。也可以进行复合查询,比如按年级和姓名等。但是不能对非本系的人员进行任何查询。3) 学生用户的功能:通过自己的学号、姓名、性别、民族、身份证号、系别、年级等相关项进行查询,可以是单独输入某一项信息,也可以进行复合查询。2逻辑结构设计这是经过多次反复修改之后的总体数据流图,力求达到详尽,有所不足会在今后不断的学习当中改进。这详细的数据流图会对下一步的操作起到至关重要的作用。- 9 -第三章 数据库设计
15、1用户字段名 含义 类型长度 是否为空 主键user-no 用户代号 char(10) 否user-name 用户名 char(20) 否2系别字段名 含义 类型长度 是否为空 主键dept-no 系号 char(3) 否dept-name 系名称 char(20) 否3考试信息字段名 含义 类型长度 是否为空 主键test-no 考试代号 char(10) 否 是test-name 考试名称 char(20) 否test-grade 考试等级 char(10) 否- 10 -4学生字段名 含义 类型长度 是否为空 主键s-no 学号 char(20) 否 是s-name 学生姓名 char(
16、10) 否s-deptno 学生系别号 char(3) 否s-sex 学生性别 char(2) 否s-grade 学生年级 char(10) 否s-cardno 学生身份证号 char(20) 否s-minzu 学生民族 char(10) 否- 11 -第四章 功能设计明确了系统应该做什么之后,下一步我们应该知道系统应该怎么做。我们的目标是用最好的办法来解决问题。那么创建模块就显得至关重要了,要掌握每个模块的作用以及模块与模块之间的关系。这是详细设计的初级阶段。一、查询功能模块1超级管理员的查询功能模块超级管理员的查询功能按系查询任意用户信息 按年级查询任意用户信息 按姓名查询任意用户信息 按
17、学号查询任意用户信息 按时间段查询任意用户信息 按等级查询任意用户信息 按考试类别查询任意用户信息 复合条件查询任意用户信息2系管理员的查询功能模块- 12 -超级管理员的查询功能按年级查询本系任意用户信息 按姓名查询本系任意用户信息按学号查询本系任意用户信息 按时间段查询本系任意用户信息 按等级查询本系任意用户信息按考试类别查询本系任意用户信息 复合条件查询本系任意用户信息3普通学生用户的查询功能模块学生用户的查询功能按姓名查询本人用户信息按学号查询本人用户信息 按身份证号查询本人用户信息 复合条件查询本人用户信息按系别查询本人用户信息二、详细设计阶段这是整个设计的核心部分,它起到承前启后的
18、作用,既对前面的准备阶段做了总结,又对后面的代码部分做了准备。1超级管理员查询流程图- 13 -开始输入账号和密码判断是否为空提示错误信息选择要查询的条件按系查询任意用户信息 按年级查询任意用户信息 按姓名查询任意用户信息 按学号查询任意用户信息 按时间段查询任意用户信息 按等级查询任意用户信息 按考试类别查询任意用户信息 复合条件查询任意用户信息2学生用户查询流程图上传到数据库输出信息- 14 -开始输入账号和密码判断是否为空提示错误信息选择要查询的条件按姓名查询本人用户信息 按系别查询本人用户信息按学号查询本人用户信息 按身份证号查询本人用户信息息 复合条件查询本系任意用户信息上传到数据库
19、输出数据3系管理员查询流程图- 15 -开始输入账号和密码判断是否为空提示错误信息选择要查询的条件按年级查询本系任意用户信息 按姓名查询本系任意用户信息按学号查询本系任意用户信息 按时间段查询本系任意用户信息 按等级查询本系任意用户信息按考试类别查询本系任意用户信息 复合条件查询本系任意用户信息上传到数据库输出数据三、代码所谓代码就是将人的语言转换成机器语言。那么选择一种合适的编程语言显得重要- 16 -了起来。选择正确的语言不仅可以节省时间也节省了很多人力和物力。并能使我们更好的掌握这门语言。我们此次的设计要求是根据“延边大学计算机等级考试网上查询系统”的具体要求而做,所以选用的是 JSP+
20、MYSQL的设计环境进行操作。用 Dreamweaver进行编写。由于对 JSP是完全陌生的,所以难免在开发的过程中遇到了许许多多的问题,下面就简单的举出几个例子:1控制页面跳转的语句用户名或密码错误,请重新输入!此用户已被锁定!2控制页面显示的语句- 17 -你输入的学号不存在!3控制页面显示语句 24控制选择条件语句5接受条件语句四、代码的实现- 18 -1超级管理员的显示页面由于超级管理员具有查询任意信息的权限。但是为了在学校数据库方面的内容的一致性,减少查询时带来的不必要的麻烦,我选择了下拉式的查询菜单。如下图所示的选择页面:其中可以按专业、年级、学号、姓名等等的内容查询。选择相关信息
21、后提交到数据库中,这样就会根据所选择的内容出现对应的资料。比如我对所有的条件都不加以限制的话将会出现如下信息: 如果我要查询系别为 401,年级为 2001级的用户信息的话,就出现如下的结果:- 19 -如果我要对系别为 401,年级为 2001,性别为男,报考等级为 1级的条件加以限制的话,会出现以下结果:2系管理员的显示页面由于系管理员只有查询本系信息的权限。也是同样的道理,为了统一数据库和避免错误,我用了下拉式的菜单,用户界面如下图所示:- 20 -选择相关信息后提交到数据库中,这样就会根据所选择的内容出现对应的资料。比如我对所有的条件都不加以限制的话将会出现如下信息:这样的话,是哪个系
22、的导员就可以查哪个系的情况了。比如我对系号是 401,年级为 2001的条件进行查询的话,将会出现如下显示:- 21 -3学生用户的显示页面由于学生只可以查自己的信息,所以无须用下拉式的菜单了,如下图:当正确的输入自己的学号时,会出现如下信息:如果你输入了数据库中没有的记录,就出现以下信息:- 22 -第五章 测试软件测试在开发软件过程中是一个不可缺少的部分,因为在开发软件系统的漫长过程中面对极其错综复杂的问题。人的主观认识不可能完全符合客观现实,与工程密切相关的各类人员之间的通信和配合也不可能完美无缺的。因为,在软件生命周期的各个阶段都不可避免地产生差错,我们力求在每个阶段结束之前通过严格的
23、技术审查,尽可能早地发现并纠正错误。测试的目的就是在软件投入生产运行之前,尽可能多地发现并纠正软件中的错误。基于上述的原因,我在编码过程中进行了模块测试,编码结束后又进行了系统测试和验收测试。下面一一讲述测试方案,测试过程以及测试结构。一、 模块测试1测试方案采用了白盒测试(又称结构测试) ,即按照程序内部的逻辑结构,检验程序中的每条通路是否都能按预定的要求正常工作。2测试过程主要检验各个模块之间的接口,每个被调用模块是否正确接收参数,每个调用模块是否能调用每个自己想要调用的模块。3测试结果测试结果表明,每个模块之间的接口都吻合,即被调用模块都能正确接收参数,调用模块能调用自己想要调用的每个模
24、块。二、系统测试和验收测试1测试方案采用了黑盒测试(又称功能测试) ,即检查程序功能是否能按照规格说明书的规定正常使用,程序是否能适当地接收输入数据产生正确的输出信息,并且持外部信息的完整性。2测试过程主要检验是否能正确实现每个功能,每个功能是否能按照规格说明书的要求正常使用,数据库的记录是否符合要求。- 23 -3测试结果测试结果表明符合设计要求,各项功能基本上实现,产生记录符合要求。结 束 语“只要功夫深,铁杵磨成针”终于经过我不懈的努力,一个完全陌生的事物在我眼前慢慢放出了光芒。由于我在毕业设计的前段时间出去实习了一阵子,所以当同学们都已经开始投入到 JSP的学习的时候,我对它还是一无所
25、知的。由于我起步的比较晚,所以和其他同学相比,我所掌握的还只是很浅很浅的一部分,但是在我回到学校之后开始做设计的时候,我得到了老师和同学的鼎力相助,这使我知道了众人拾柴火焰高,合作的力量是伟大的,使我在较短的时间里了解了 JSP操作的简单原理,以及和数据库的知识怎样恰当的联系在一起。在这里我要特别的感谢一下同学和老师的帮助,没有你们或许就没有我今天的成绩。通过这次的毕业设计,大大的提高了我对所学知识的应用能力,并能及时的把理论联系到实践中去,开阔了视野也增长了知识。由于是第一次接触这方面的东西,所以实践当中遇到了许许多多应付不来的问题,不过还好通过查找资料,上网查询,以及大家的帮助我才得以解决。总之这次毕业设计开发了一项这么有意义的东西是使我受益终生的,我想对我日后的工作也一定会有帮助。所以我还是要再次的感谢老师给我这次机会得以实践,以及您给我的帮助。我不会让你们失望的!- 1 -