您好,欢迎来到小侦探旅游网。
搜索
您的当前位置:首页《数据库原理》课程在线考试系统的设计与实现大学论文

《数据库原理》课程在线考试系统的设计与实现大学论文

来源:小侦探旅游网
1

中文题目:《数据库原理》课程在线考试系统的设计与实现 外文题目:THE DESIGN AND IMPLEMENTATION OF THE ONLINE EXAMINATION SYSTEM FOR THE COURSE OF DATABASE PRINCIPLE

毕业设计(论文)共 72 页(其中:外文文献及译文完成日期 年 月

15页) 答辩日期 年 月

2

摘要

如今,计算机网络技术日益成熟和校园网的普及,为在线考试提供了良好基础。利用计算机以及网络技术实现考试的信息化,具有传统考试不可比的优点。因此开发适应信息时代的在线考试系统是有必要的。

面对目前形势,设计出基于B/S结构在线考试系统。 此在线考试系统分别采用Windows 7、MySQL作为服务器端操作系统、后台数据库开发工具;系统体系结构采用B/S结构;MYECLIPSE为B/S模块应用程序开发工具。实现教师出卷、学生考试、教师组卷、教师阅卷、分配教师阅卷等功能。在设计中,使用目前流行的Ajax技术,提高客户机和服务器间数据交换效率以及灵活性。在本系统的开发中,还使用了例如XML、JavaScript等技术。 本系统基于Internet/Intranet,将考试工作自动化和信息化结合为一体,来达到系统设计的基本目标和满足校内外,对考试信息共享、利用的要求。

关键词:在线考试;MySQL;jsp

3

ABSTRACT

Nowadays, the popularization of computer network technology is increasingly mature and campus network, provide a good foundation for online exam. Using the computer and network technology to realize the test information, possesses the advantages of traditional exam than not. So to develop the online examination system of the information age is necessary.

In the face of the current situation, design the online examination system based on B/S structure. The online examination system with Windows 7, MySQL as the server operating system, background database development tools; The system architecture adopts B/S structure; MYECLIPSE application development tools for B/S module. To achieve volume, exam, teacher group volume, teachers marking, distribution, marking, etc. In the design, the use of currently popular Ajax technology, improve the efficiency of data exchange between the client and the server, and flexibility. In the development of this system, and USES the technology of such as XML, JavaScript, etc. This system based on Internet/Intranet, combine examination for automation and information technology as a whole, to achieve the basic purpose of system design and meet face-to-face, on the requirement of information sharing and utilization of exam.

Key words:The online test;MYSQL;jsp

4

目 录

前言 ........................................................................ 7 1 项目概述 ................................................................. 8 1.1 研究背景 ............................................................... 8 1.2 研究现状 ............................................................... 8 1.3 系统结构及研究内容和功能描述 ............................................ 8 1.4 业务流程描述 ........................................................... 10 1.5 本系统存在的问题和薄弱环节分析 ........................................ 13 2 可行性分析 .............................................................. 14 2.1 技术可行性 ............................................................ 14 2.2 操作可行性 ............................................................ 14 2.3 经济可行性 ............................................................ 14 3 需求分析 ................................................................ 15 3.1 总体目标 .............................................................. 15 3.2 具体目标 .............................................................. 15 3.3 系统功能建模 .......................................................... 15 3.3.1 系统数据流程图 ...................................................... 15 3.3.2 数据字典 ............................................................ 19 3.4 系统数据模型 .......................................................... 21 4 概要设计 ................................................................ 24 4.1 体系结构设计 .......................................................... 24 4.2.1 外部接口 ............................................................ 24 4.2.2 内部接口 ............................................................ 25 4.3 代码设计 .............................................................. 25 4.3.1 代码设计原则 ........................................................ 25 4.4 数据库设计 ............................................................ 26 4.4.1 数据库设计原则 ...................................................... 26 4.4.2 关系模式设计 ........................................................ 27 4.4.3 数据字典 ............................................................ 27

5

4.4 输入输出设计 .......................................................... 29 4.4.1 输入设计 ............................................................ 29 4.4.2 输出设计 ............................................................ 30 4.5 运行设计 .............................................................. 31 4.5.1 运行环境 ............................................................ 31 4.5.2 运行模块的组合 ...................................................... 31 4.5.3 运行控制 ............................................................ 31 4.5.4 运行时间 ............................................................ 31 4.6 出错处理设计 .......................................................... 31 4.6.1 出错输出信息 ........................................................ 31 4.6.2 出错处理对策 ........................................................ 32 4.7 安全保密设计 .......................................................... 32 4.7.1 数据安全性 .......................................................... 32 4.7.2 登录管理员的安全性 .................................................. 32 4.8 维护设计 .............................................................. 32 5 详细设计 ................................................................ 33 5.1 老师登录模块定义 ...................................................... 33 5.1.1 模块定义 ............................................................ 33 5.1.2 输入项 .............................................................. 33 5.1.3 条件 ............................................................ 33 5.1.4 测试要点 ............................................................ 33 5.2 学生登陆模块 ........................................................... 33 5.2.1 模块定义 ............................................................ 33 5.2.2 输入项 .............................................................. 33 5.2.3 输出项 .............................................................. 34 5.2.4 条件 ............................................................ 34 5.2.5 测试要点 ............................................................ 34 6 编码 .................................................................... 35 6.1 概述开发工具及编程脚本 ................................................ 35 6.1.1 WEB服务器简介 ...................................................... 35

5

6

6.1.2 ...................................................................... 35 6.1.3 JSP简介 ............................................................ 36 6.2 脚本习惯说明 .......................................................... 36 6.3 脚本 .................................................................. 36 7 测试 .................................................................... 44 7.1 测试原则及测试方法概述 ................................................ 44 7.2 测试项目测试用例 ...................................................... 44 7.3 软件测试结论 .......................................................... 46 7.3.1 软件能力 ............................................................ 46 7.3.2 缺陷和 .......................................................... 46 7.3.3 建议 ................................................................ 46 7.3.4 测试结论 ............................................................ 46 致谢 ....................................................................... 48 参考文献 ................................................................... 49 附录A 英文译文 ............................................................ 50 JSP技术简介及特点 ......................................................... 50 附录B 英文原文 ............................................................ 55 附录C程序清单 ............................................................. 61

7 辽宁工程技术大学毕业设计(论文)

前言

随着人们对信息管理和运用的需求的日益迫切及和信息技术的飞速发展,信息系统的整合和运用在生活的各个方面都得到广泛深入的使用。在线考试系统是非常典型的集管理信息系统和网络编程技。但是,随着学校管理工作内容、对象等不断的变化,复杂麻烦的手工操作以及一般的计算机软件已不能满足考试的需要了。使用先进的管理信息系统对学生息资源和试题资源进行科学的和系统打的管理己成为高校考试系统发展趋势了。

如今,几乎所有学校的各个部门都已建立了针对日常工作的信息管理系统。如财务管理信息系统、教务系统、科研管理信息系统、图书检索信息系统等。而这些系统在很大的程度上都提高了这儿些部门的工作效率、管理水平。但对于在线考试系统来说,还是比较缺乏完善的、系统化的信息管理的。

正是因为认识到了在线考试系统在学校信息化中的重要地位,所以,才需要用先进的系统开发工具以及技术来实现管理工作信息化的、科学化的管理,真正的做到“充分利用现有的资源和信息”,开发出来对现有信息充分整合和操作,并减少不必要的和繁杂的手工操作,提高办公的效率,有助于加快教育改革进程。所以,建设一个功能完善的、操作简单的在线考试系统迫在眉睫。

7

8 陶志方-《数据库原理》课程在线考试系统的设计与实现 1 项目概述

1.1 研究背景

而今的这个信息化的时代,Internet、计算机网络都扮演着特别重要的角色,世界各领域的信息管理的模式都正在被信息化改变着。而作为选拔人才的工具--考试,它的模式也面临着变革的挑战。现代化在线考试系统被迫切需要,一场难以也表的变革马上就要来临。只有使用信息化管理手段、计算机才可能实现考试的方便化、标准化和制度化。学校只有采用了在线考试系统,才可以跟上教育发展的需求。此在线考试系统是一个面向考试的通用的系统,它特别好的把物业考试的各个环节整合到一起,是一个将考试与当今计算机技术联合的体现。目前在我国大多学校没使用在线系统,基本上考试还处于传统状态,使教师不但劳动强度大还工作效率低。因此一个好的在线考试系统的推出顺应了时代需要。

1.2 研究现状

从目前网络教学系统技术实现的形式和方法来看,大致可分为两种教学模式。一种是以视频会议系统为主的实时在线式网络教学,它是通过传输音频和视频,将在空间上分离的教师和学生联结在一起,进行实时的、可视的交互式教学,另一种是基于Web技术的非实时自主式网络教学,它是使用先进的交互式Web技术将教学资源组织到相关的Web页面,存放在Web服务器上以B/S方式提供互动的教学服务,比如课件下载、在线交流等。而大多数在线学习的课程都是以公开课的形式存在,或者是在线培训的那种,大多数的都不可以进行在线考试,也没有考试相关。正是由于网络技术在考试方面的缺席,为我们研究此在线考试技术提供了空间。

国内外比较流行的信息管理系统的平台模式在大体上分为两种:客户机/服务器(Client/Server,简称C/S)模式还有Web浏览器/服务器(Browser/Server,简称B/S)模式。然而我国近几年的计算机的普及度升高,对信息管理系统的需求加大到一定量。C/S模式数据安全性比较差,分布功能也比较弱,并不能够实现快速部署、安装还有配置。因此,而今国内外信息管理系统正在从C/S结构转向B/S结构。而本课题正是采用基于浏览器/服务端(B/S)和Java语言开发的在线考试系统。

1.3 系统结构及研究内容和功能描述

在线考试系统结构如下:

8

9 辽宁工程技术大学毕业设计(论文)

《数据库原理》课程在线考试系统的设计与实现教师登录学生登陆 题型管理题库管理试卷管理考试结果管理 教师管理学生管理班级管理密码修改分数查看参加考试密码修改研究内容:

角色:学生和老师。

教师登录后,具有系统管理权限,系统管理主要是对学生的管理,录入学生信息,为学生分配账号和密码;教师还要维护题库,维护题库主要包括向题库中录入试题或导入试题和相应试题的答案,对题库的更新,即增加新的试题及相应的答案那些过时的题可以删除。对于所有参加考试的学生,教师要为其批阅试卷,主要是主观题的批阅;批阅完试卷后教师要统计其成绩,将学生成绩汇总,成绩汇总包括对本次考试成绩的汇总和近几次考试成绩的汇总。

学生在老师分配账号和密码后,可以登录本系统,参加老师安排的统一考试,早考试规定时间内答卷,如果超过时限,则只能选择提交试卷,不再可以答题;每次参加考试后都会有相应的考试成绩,由老师批阅后给出,学生通过本系统在线查看。

功能描述

本设计主要是完成《数据库原理》课程在线考试系统的设计与实现,本系统包括两个

基本信息管理模块:分为教师信息管理、班级管理和学生信息管理。教师信息管理主

Fig. 1-1Online examination system structure diagram

图1-1 在线考试系统结构图

9

10 陶志方-《数据库原理》课程在线考试系统的设计与实现 要是教师自己对自己信息的修改,主要是修改密码,也可以增加教师用户数或者删除现有教师。班级管理主要是对教师所带班级的管理,在本系统中主要是为了后面的安排考试和统计学生成绩,主要包括对班级的增加和删除。学生信息管理主要是添加学生或者删除学生。添加学生时,只需为其分配账号和密码,而删除啊学生时,就需要删除其所有的信息,比如成绩记录、考试记录。

试题管理模块:分为题库维护和题型管理。题库维护主要是对新考题及其答案的录入和教师已经不用的试题及其答案的删除。提醒管理主要是新题型的添加或旧题型的删除。

考试管理模块:分为安排考试、试卷管理、学生考试、批阅试卷和成绩统计。教师安排学生考试前,先要确定参加考试的班级,然后选择好试卷,试卷是从题库中生成,教师只需告诉系统试卷中的题型及相应的数量,则系统会按照教师的要求生成一份试卷,与此同时系统必须记录教师安排考试所用的试卷,以备日后有需要。学生考试主要是教师安排考试后,学生要按教师的要求参加考试,按系统要求完成考试。在学生结束考试后,教师要批阅学生试卷,主要是对试卷上主观题的批阅,客观题由系统自动批阅。统计成绩主要是在学生提交完试卷后,教师开始批阅试卷时,系统自动完成对试卷客观题的评分,在教师批阅完主观题给出分数后,系统将自动统计该试卷总分。

查询统计模块:分为学生成绩统计、学生查询成绩和教师查询成绩。教师每次安排学生考试后要给出学生成绩,则也需要统计学生成绩。可以统计本次成绩给出学生排名,也可以统计教师指定的近几次学生考试的成绩,将成绩汇总,更清晰的看到学生成绩的进退。教师在统计完学生的成绩后,保留记录,可以在任何需要的时候查询所有学生或者指定学生的所有成绩。学生查询成绩主要在考试后,教师给完成绩后查询本次成绩或者在老师汇总成绩后,查询汇总成绩,知道自己在过去几次考试中的表现。

1.4 业务流程描述

业务流程图是用来描述系统业务流程最好的工具,它可以让系统分析人员与管理人员的交流更便利、直观。业务流程图--描述系统业务流程处理,自开始到结束的一整个过程非结构化图形的工具。

10

11 辽宁工程技术大学毕业设计(论文)

表1-1 业务流程图符号说明

Tab. 1-1 Service flow chart symbol explanation

符号含义 实体/外部项

数据

处理/加工

业务流

库存数据

文档

符号

说明

用来表示实体,圈内写明实体名称。

用来表示输入抑或输出的数据等,框内写明其名称 。

用来表示业务处理,框子内写明处理的名称。

用来表示信息或处理的流向。

用来存储试题和试卷

用来存放各种信息

11

陶志方-《数据库原理》课程在线考试系统的设计与实现12 系统业务流程图如图1-2所示:

教教教教教教教教教教教教教教教教教教教教教教教教教教教教教教教教教教教教教教教教教教教教教教教教教教教教教教教教教教教教教教教教教教教教教教教教教教教教教教教教教教教教教教教教教教教教教图1-2 试题管理子系统业务流程图 Fig. 1-2 System operational flow chart

12

13 辽宁工程技术大学毕业设计(论文)

1.5 本系统存在的问题和薄弱环节分析

经过过对本系统考察,我得出这个系统存在的问题、薄弱环节有如下几个方面: (1)收集得到的信息被分散到各个部门,没有得到合理、充分利用。

(2)在线考试系统页面不太美观。视图效果会影响操作者心态,导致工作效率的下降。

(3)系统的安全保密性不太强。

13

14 陶志方-《数据库原理》课程在线考试系统的设计与实现 2 可行性分析

2.1 技术可行性

本系统基于Web技术,采用B/S结构,用Java语言编写,面向对象,采用的主要技术是Java Servelet、JavaBean、JavaScript、 JSP,主要用到的工具是Myeclipse10和MySQL。Jdbc提供链接各种关系数据库的统一接口,可以为多种关系数据库提供统一访问。JavaScript 对前台的一些操作进行验证,增加用户与浏览器的交互,增加用户在使用网页应用的时候的体验。JSP 用户通过浏览器向服务器发送页面请求,服务器加载并执行相应的JSP页面,接收用户的请求,并将处理结果发送给浏览器。这些技术在大学期间学习过,基本掌握,再加上导师的指导,可按期完成毕设。

可见本在线考试系统技术上可行。

2.2 操作可行性

在线考试系统是为学校考试开发的。因为本在线考试系统设计界面简易,明了。只要做出了详细使用说明,师生仅仅需要拥有一点基本的计算机的操作能力,就能得心应手的使用本在线考试系统了。

可见本在线考试系统在操作上可行。

2.3 经济可行性

本在线考试系统对软、硬件的要求都不是太高,学校无需装一个专门的客户端软件。仅是需要通过 Web 浏览器就已经可访问本在线系统了。

可见在经济上也可行。

14

15 辽宁工程技术大学毕业设计(论文)

3 需求分析

3.1 总体目标

在线考试系统服务于现代化考试,改变考试停留于现场的状况,考试所需的人力物力,给教师和考生减少压力,是考试更便捷。

3.2 具体目标

本设计主要是完成《数据库原理》课程在线考试系统的设计与实现, 本系统包括两个角色:学生和老师。

教师登录后,具有系统管理权限,系统管理主要是对学生的管理,录入学生信息,为学生分配账号和密码;教师还要维护题库,维护题库主要包括向题库中录入试题或导入试题和相应试题的答案,对题库的更新,即增加新的试题及相应的答案那些过时的题可以删除。对于所有参加考试的学生,教师要为其批阅试卷,主要是主观题的批阅;批阅完试卷后教师要统计其成绩,将学生成绩汇总,成绩汇总包括对本次考试成绩的汇总和近几次考试成绩的汇总。

学生在老师分配账号和密码后,可以登录本系统,参加老师安排的统一考试,早考试规定时间内答卷,如果超过时限,则只能选择提交试卷,不再可以答题;每次参加考试后都会有相应的考试成绩,由老师批阅后给出,学生通过本系统在线查看。

3.3 系统功能建模

3.3.1 系统数据流程图

DFD是数据流程图的简称。数据流程图是用以描述目标系统逻辑结构的。DFD由实体,处理,数据存储,数据流四个部分组成。为让数据流图描述的逻辑结构更让人明了,易读,故将数据流图作如下说明:

15

16 陶志方-《数据库原理》课程在线考试系统的设计与实现 表3-1 数据流程图符号说明

Tab. 3-1 Flow diagram of the data mark explanation

名称 外部实体

系统之外的,但是却又和系统有联系地人或者事物。

数据处理

对数据地逻辑进行处理,也就是数据的变换的过程。

数据存储

数据流

符号

说明

通过文件夹,数据文件等的存储数据。

表示流动地数据,也就是处理功能的输入及输出。

16

17 辽宁工程技术大学毕业设计(论文)

该系统的数据流图如下:

教教教教教教P0教教教教教教教教教教 教教教教 教教教教教教教教教教教教 教教教教教教教教教教教教

图3-1在线考试系统顶层数据流图

Fig. 3-1 Top level data flow chart of the online examination system

正确登陆信息教师成绩信息P2正确登陆信息考试与成绩管理个人成绩学生成绩信息D3试卷信息试卷信息试题信息正确登陆信息P1试题信息试题管理基本信息 D1试卷信息D4成绩库试卷库题库D2 基本信息表P3基本信息基本信息管理正确登陆信息个人基本信息

图3-2在线考试系统一层数据流图

Fig. 3-1Online examination system a layer of data flow chart

17

18 陶志方-《数据库原理》课程在线考试系统的设计与实现

错误登陆信息P1.1身份验证查看试题信息正确登陆信息P1.2题库管理新增试题信息删除试题信息教师登陆信息D1试题信息修改试题信息题库试题信息新增试卷信息P1.5手动抽题D2试卷库P1.6随机抽题删除试卷信息修改试卷信息查看试卷信息正确登陆信息P1.4试卷信息维护正确登陆信息身份验证P1.3登录信息错误登录信息试卷信息教师

图3-1在线考试系统二层数据流图

Fig. 3-1Online examination system two layer data flow chart

18

19 辽宁工程技术大学毕业设计(论文)

3.3.2 数据字典

数据字典就是对数据流图的说明和解释,内容包括:

(1) 数据流定义

数据流名:正确登陆信息 组成:教师用户名+教师密码 来源:教师 去处:P1.2,P1.3 数据流的结构 :教师登陆信息={教师用户名+教师密码} 简述:教师进入考试系统中的身份 注释:教师凭用户名和密码登陆系统

(2)数据存储定义

文件名:题库 编号:D1 数据存储结构:编号+章节+试题描述+答案+科目+分值 主关键字:编号 相关的处理:P1.2,P1.5,P1.6

文件名:试卷库 编号:D2 数据存储结构:编号+试卷描述+科目 主关键字:编号 相关的处理:P1.4,P1.5,P1.6

(3)数据处理数据字典

名称:试卷信息维护 输入:正确登陆信息,修改试卷信息,查看试卷信息 输出:删除试卷信息,修改试卷信息,查看试卷信息,试卷信息 处理逻辑:对试题进行删除、修改等操作 简要说明:对生成的试卷及试卷的删除、修改等进行操作

19

20 陶志方-《数据库原理》课程在线考试系统的设计与实现

名称:随机抽题 输入:试题信息 输出:新增试卷信息 处理逻辑:将生成的试卷存储在试卷库中 简要说明:自动生成试卷:教师先确定所需的考题类型的数目,如:单项选择20,再点击生成就会自动的生成一份所需试卷。

名称:手动抽题 输入:试题信息 输出:新增试卷信息 处理逻辑:将生成的试卷存储在试卷库中 简要说明:手动生成试卷:试卷生成教师选择一个考试科目,在试卷中手动的添加试题,及可以批量的添加也可以一道一道添加。

名称:题库管理 输入:正确登陆信息,修改试题信息,查看试卷信息 输出:新增试题信息,删除试题信息,修改试题信息,试题信息 处理逻辑:试题信息存储在试题库中 简要说明:以手动的方式将试题添加到题库,并对现有试题进行删除、修改、查询等操作

(4)外部实体的数据字典

名称:教师 简述:教师可以对试题及试卷进行增加、修改等操作 输出数据流:登陆信息 输入数据流:试题信息,试卷信息

20

21 辽宁工程技术大学毕业设计(论文)

3.4 系统数据模型

用于建立系统数据模型的主要的工具就是是实体—关联图,又叫E—R图。它提供了表示实体类型、属性和联系的方法,用来描述现实世界的概念模型。作图步骤如下:

⑴ 确定所有的实体集合。 ⑵ 选择实体集应该包含的属性。 ⑶ 确定实体集间的联系。

⑷ 确定实体集的关键字,并用下划线在属性上来表明关键字的属性组合。 ⑸ 确定联系的类型,在用线把表示联系的菱形框联系到实体集时,要在线旁注明是1或者n表示联系的类型。

表3-2 E-R图符号约定 Tab. 3-2 E-R chart mark agreement

符号含义 实体 属性 联系 线段

将属性连接到实体集或将实体集连接到联系集

符号

说明

表示实体集 表示属性

表示联系集

21

22 陶志方-《数据库原理》课程在线考试系统的设计与实现 物业信息系统综合E-R图如下图3-4所示。

姓名密码电话姓名密码电话学号班级工号学历学生管理老师所属参加查询试题编号类型编号管理管理管理管理管理批阅班级考试成绩题库试题类型试卷成绩班级审卷题目编号老师名称开始时间结束时间成绩学号答案选项题型编号题型名称试卷编号试卷名称考试时间编号学号分数名称任课教师试卷编号学生编号

图3-4 在线考试系统综合E-R图 Fig. 3-4 Online examination system E-R chart

22

23 辽宁工程技术大学毕业设计(论文)

以下给出上面E-R图的实体属性:

表3-3 实体及其属性表

Tab. 3-3 Table of Entity and its property

实体名称 属性

学生 id,学号,密码,名字,性别、电话、邮箱、备注、班级 老师 id,工号,密码,名字,性别,电话、邮箱、备注、班级 班级 id,班级编号,班级名称,老师 试题类型 id,编号,名称,分值

题库 id,题目编号,类型编号,题目,答案,正确答案 试卷生产 id,编号,名称,分值,时间 阅卷 id,分值,编号

成绩 id,试卷id,学生id,分值

表3-4 实体间联系及其属性表

Tab 3-4 Table of Entity relation and its property

联系名称 属性 维护题库 ID,题库信息 题型管理 ID,题型信息 试卷生产 ID,试卷信息 审阅试卷 ID,答题信息 学生管理 ID,学生信息 班级管理 ID,班级信息 参加考试 ID,答题信息

23

陶志方-《数据库原理》课程在线考试系统的设计与实现24 4 概要设计

4.1 体系结构设计

椐据以上的需求分析,可得到在线系统功能树: 在线考试系统功能结构图4-1所示。

《数据库原理》课程在线考试系统的设计与实现 基本信息管试题管理 考试管理 查询统计 理 教班学题题安试学批成学学教师级生型库排卷 生阅绩生生师信管信管维考管考试统成查查管理 息理 护 试 理 试 卷 计 绩 询询理管 统成成息 理 计 绩 绩 图4-1 在线考试系统功能结构图

Fig. 4-1 Online examination system function structure

4.2 接口设计

4.2.1 外部接口

1.用户界面

时界面应操作简单,才能让用户容易使用。因此做好css样式表单。 (1)对于用户来说,是易于理解和容易使用的。 (2)用户界面要适合于软件的功能。 (3)要有防错的处理。 (4)一定要满足用户业务流程。

24

25 辽宁工程技术大学毕业设计(论文)

(5)合理的布局、适合的颜色图案,版面也要清晰简洁。 在线考试系统的用户界面应该作到简单、可靠、易学习使用。 2.软件接口

WEB服务器TOMCAT6.0可用中间件JAVABEAN对后台数据库MySQL进行所有访问。

数据库运用了MySQL。数据库不但要提供数据存储和查询,更需发挥它的自动作业功能。MySQL是一多线程,多用户的强壮的数据库服务器。将Tomcat和MySQL组合,是很流行的服务器。

TOMCAT服务器是SUN公司JSDK基础上发展出的一优秀的SERVLET/JSP容器。它是APACHE-JSKARTA软件组织的一子项目。它不仅支持运行SERVLET及JSP,还具备作为商业JAVAWEB应用容器的一些特征。作为一个用来开放源码软件,TOMCAT拥有开放源码人们的广泛支持。它可和目前绝大部分的主流HTTP服务器结合在一起工作,而且可靠、运行稳定、效率高。

3.硬件接口

在输入方面,鼠标和键盘的输入,对输入可进行处理。

在输出方面,对打印机进行连接和使用,在网络硬件部分和网络传输部分,为实现高速传输,用了快速以太网。

4.2.2 内部接口

在内部接口方面,各个模块间用超链接、表单提交的方式来进行信息的传递。各个模块可通过引用类包来调用相应类中的办法和接口函数来完成数据库连接、查询、添加、删除和修改操作。

4.3 代码设计

4.3.1 代码设计原则

代码设计是处理对象的代号或表示符号,其主要目的是方便计算机排序、检索、查找等处理。代码设计的关键是方便用户,满足业务的要求。

(1)唯一确定性原则:仅代表唯一的实体,分类时通常选取事物的最稳定的本质属性作为分类的基础和依据。

(2)最小长度与可扩充性原则。

(3)标准化原则:代码的编制尽量标准化,尽量参照国家和行业标准。

25

26 陶志方-《数据库原理》课程在线考试系统的设计与实现 (4)便于计算机处理与便于记忆的原则。

(5)合理性:指代码结构要合理,尽量反映编码对象的特征,使代码具有分类标识作用。

(6)稳定性:应预留足够的位置,以适应环境的变化,避免经常修改代码。 (7)可识别性:短适宜、不用易混淆的字符,空格不能用于代码。

4.4 数据库设计

数据库设计运用了MySQL,充分的发挥了数据库的综合管理功能,设计时充分考虑了数据库的设计规范(采用了3NF设计);利用数据库的各种约束手段,如:关系约束、主键约束、规则和自定义数据类型约束等;充分利用数据库的事务处理机制来提高数据的批 量处理和同步更新;利用视图设计原则,使数据库设计更符合面向对象思想和方便的数据提取操作;利用触发器机制保证了数据库的完整同步更新;利用存储过程加速了数据的处理能力。

4.4.1 数据库设计原则

(1)数据的共享性。 (2)数据性。

(3)数据的完整性,即保证数据库存中数据准确。

(4)灵活性,可在相当短的时间内回答用户的各种各样的复杂而灵活的查询问题。 (5)安全性与保密性,做到对数据指定保护级别和安全控制。

在本次的系统设计中,采用关系数据库理论原则进行数据库设计,关系数据库的基础是数据间的依赖性,亦即函数关系依赖,它是实体之间的一种约束。关系数据库设计的核心问题是关系模式设计,即按照一定原则从数量较多而又相互关联[1]的数据中构造一组既能较好的反映客观现实世界又具有良好操作性能的关系模式。根据关系模式满足约束条件的不同,人们把它们各种不同的范式。例如从低级到高级有第一范式、第二范式、第三范式等等。因此,我们说某个关系模式属于某个范式,是指该关系模式满足某种确定的约束条件,具有一定的性质。而所谓关系模式的规范化就是指把一个低一级的关系模式分解为一组高一级关系模式的过程。下面简单的对范式的标准做一下介绍:

第一范式(1NF):关系模式的所有域为简单域,其元素不可再分。

26

27 辽宁工程技术大学毕业设计(论文)

第二范式(2NF):关系模式在满足1NF的基础上,每个非主属性完全函数依赖于关键字。

第三范式(3NF):关系模式在满足2NF的基础上,每个非主属性都不传递依赖关键字。

4.4.2 关系模式设计

参照本系统的E-R图,关系模式设计如下:

学生( id,学号,密码,名字,性别,电话,邮箱,备注,班级) 老师(id,工号,密码,名字,性别,电话、邮箱、备注、学历) 班级(id,班级编号,班级名称,老师) 试题类型(id,编号,名称,分值)

题库(id,题目编号,类型编号,题目,答案,正确答案) 试卷生产(id,编号,名称,分值,时间) 阅卷(id,分值,编号)

成绩(id,试卷id,学生id,分值)

4.4.3 数据字典

数据字典是物理数据库的具体体现,主要规定各关系的名称、各列的数据类型、长度、小数位、完整性约束等。根据上面设计好的实体以及实体间的关系形成数据库中的基本表,由以下18个表组成,如表4-1至4-6所示为其中的一部分:

表4-1 班级信息表

Tab. 4-1 Grand Information Form

列标示 id

grandNo grandName teacher

列含义 班级主建 班级编号 班级名称 老师

数据类型 int varchar varchar varchar

长度 11 16 16 16

是否允许为空 不允许为空 不允许为空 不允许为空 不允许为空

27

28 陶志方-《数据库原理》课程在线考试系统的设计与实现 表4-2 答案信息表

Tab. 4-2 Options information form

列标示 id

optionsNo optionsName qId

列含义 答案编号 选项 选项值 问题id

数据类型 int char varchar int

长度 11 1 100 11

是否允许为空 不允许为空 不允许为空 不允许为空 不允许为空

表4-3 问题信息表

Tab. 4-3Questions Information Form

列标示 id

qName qAnswer

表4-4 试卷信息表

Tab. 4-4 Test-paper Information Form

列标示 id tName startTime endTime

列含义 试题编号 试题名称 开始时间 结束时间

数据类型 int varchar datetime datetime

表4-5 试卷问题信息表

Tab. 4-5 Test-question Information Form

列标示 tId qId type

列含义 试卷Id 问题Id 题型

数据类型 int int varchar

28

列含义 问题编号 问题名称 正确答案

数据类型 int varchar char

长度 2 100 1

是否允许为空 不允许为空 不允许为空 不允许为空

长度 11 100 0 0

是否允许为空 不允许为空 不允许为空 不允许为空 不允许为空

长度 11 11 20

是否允许为空 不允许为空 不允许为空 不允许为空

29 辽宁工程技术大学毕业设计(论文)

表4-6 成绩信息表

Tab. 4-6 Test-result Information Form

列标示 tId

useId mark

designMark total

列含义 试卷Id 问题Id 选择题分数 设计题分数 总分

数据类型 int int int int int

表4-7 教师视信息表 Tab. 4-7 Teacher Information Form

长度 11 11 11 11 14

是否允许为空 不允许为空 不允许为空 不允许为空 不允许为空 不允许为空

列标示 id

username pwd name sex tel email remark education

列含义 老师编号 工号 密码 姓名 性别 电话 邮箱 备注 学历

数据类型 int varchar varchar char varchar varchar varchar Text varchar

长度 11 11 11 2 50 100 50 0 50

是否允许为空 不允许为空 不允许为空 不允许为空 不允许为空 不允许为空 不允许为空 不允许为空 不允许为空 不允许为空

4.4 输入输出设计

4.4.1 输入设计

输入设计要根据系统输出的要求确定输入的内容和格式。由于输入数据的准确性与及时性会影响管理信息系统的运行效果。输入数据的正确性对于整个系统质量的好坏起决定作用。输入设计不当又可能使输入数据发生错误,即使计算和处理十分正确,也不可能得到正确的输出。因此,输入设计既要给用户提供方便的界面,又要有严格的检查和纠错功能,以尽可能减少输入错误。输入设计主要包括输入数据的分析与获得、输入数据的格式设计、输入设备的选择、输入数据的校验等工作。

29

30 陶志方-《数据库原理》课程在线考试系统的设计与实现 表4-3 输入设计 编号:001 Tab. 4-3 Input design Serial number:001

输入名称:学生信息表 输入设备和介质:键盘、鼠标 输入源:老师 输入时间和频率:每次添加学生 输入信息量: 共享范围:本系统使用

表4-4 输入格式及内容 Tab. 4-4 Input form and content

数据项名称 类型 实际长度 备注 学生编号 int 11 自动生成 学号 Int 4 键盘输入 姓名 Varchar 20 键盘输入 性别 Varchar 20 键盘输入 密码 Varchar 20 键盘输入 电话 Varchar 20 键盘输入 邮箱 Varchar 20 键盘输入 班级 Varchar 20 键盘输入 备注 Varchar 300 键盘输入

4.4.2 输出设计

输出是由计算机对输入的原始信息进行加工处理,形成高质量的有效的信息,并使之具有一定的格式,提供管理者使用,这是输出设计的主要职责和目标。

本系统输出设备主要有:显示终端。

30

31 辽宁工程技术大学毕业设计(论文)

表4-5 输出设计 编号:005 Tab. 4-5 output design serial number:005

输出名称:考试成绩 输出设备和介质:显示器.

输出类型:显示器输出 输出时间和步骤:每次考试阅卷后

4.5 运行设计

4.5.1 运行环境

操作系统:Windows 7 数据库:MySQL 服务器:Tomcat 6.0 体系架构:B/S

4.5.2 运行模块的组合

(1)在登录发布网站后,录入相应用户名和密码会对用户权限进行判断。而为用户挂不同权限操作菜单。

(2)服务器接收用户发出的请求后。通过JAVABEAN中间件来对后台数据进行访问。

4.5.3 运行控制

(1)运行控制严格按照各模块请求方式来调用。

(2)网络方面客户发出请求以后,等待WEB服务器确实认收到请求后,再等待服务器发送回答数据,然后再对数据进行确认。服务器在接到数据后发送确认信号,在对数据处理、访问数据库后,将返回信息送回客户机,并等待确认。

4.5.4 运行时间

网络硬件对运行时间有最大的影响,当网络负载量大时,对操作反应将受到很大影响。所以采用快速以太网络,实现客户机与服务器[2]之间的连接,以减少网络在传输上的开销。其次是服务器的性能,它会影响对数据库访问时间的长短,因此建议使用高性能的服务器。总之,硬件对系统的速度的影响会大于软件的影响。

4.6 出错处理设计

4.6.1 出错输出信息

(1)对于软件错误,输入数据后点击提交按键后,后出现错误提示窗口,然后给出

31

32 陶志方-《数据库原理》课程在线考试系统的设计与实现 错误提示,返回当前输入的窗口。

(2)对于硬错误,可在出错的相应模块中输出简单的出错语句,并将程序重置。返回输入阶段。

4.6.2 出错处理对策

(1)所有客户机及服务器需安上不间断的电源系统防止因停电或者电压不稳而造成的数据库数据丢失。如真断电时,客户机不会收到较大影响。

(2)在网络传输的方面,可以考虑建立一条成本比较低的后备网络。用来保证主网络断路时的数据的通信。

(3)在硬件方面需,选择比较可靠、稳定的服务器机种,来保证系统可靠运行。

4.7 安全保密设计

4.7.1 数据安全性

数据保存在专门数据库服务器上,可避免在本地的错误操作或者硬件的故障造成数据丢失。

4.7.2 登录管理员的安全性

管理员的登录根据权限的不同可以看到不同的菜单项。同时数据库的权限会控制用户只能操作该管辖的人员信息。

4.8 维护设计

维护方面主要为对服务器上的数据库数据进维护。例如,定期为数据库进行备份,维护管理数据库死锁问题和维护数据库内数据的一致性等。

32

33 辽宁工程技术大学毕业设计(论文)

5 详细设计

5.1 老师登录模块定义

5.1.1 模块定义

老师登陆模块主要功能是添加试题,添加学生,批阅试卷,管理老师。

5.1.2 输入项

表5-1老师登录输入项 Tab. 5-1 User login Input

输入项 用户名

密码

标识 username pwd

输入媒体 数据类型 数值有效范围 键盘 键盘

Varchar2

Varchar2

英文字母A~Z,a~z,数字0~9,字符“_”

英文字母A~Z,a~z,数字0~9,字符“_”

长度 长度<=10

长度<=10

5.1.3 条件

用户名和密码的格式必须是英文字母A~Z,a~z,数字0~9,字符“_”。 5.1.4 测试要点

主要测试用户名和密码的格式。

5.2 学生登陆模块

5.2.1 模块定义

学生登陆进行考试。

5.2.2 输入项

表5-2 学生登陆输入项

Tab. 5-2 Notice issued the input module

输入项 学生信息 时间

标识 name time

输入媒体 数据类型 数值有效范围 键盘 键盘

Varchar2 Varchar2

中文输入

数字0~9,字符“_”

长度 长度<=45 长度<=10

33

34 陶志方-《数据库原理》课程在线考试系统的设计与实现 5.2.3 输出项

表5-3 学生输出项

Tab. 5-3 Notice issued the output module

输出项 学生信息

时间

标识 name time

输出媒体 数据类型 数值有效范围 系统内 系统内

Varchar2 Varchar2

中文输入

数字0~9,字符“_”

长度 长度<=45 长度<=10

5.2.4 条件

考生信息必须录入真实信息,录入格式要正确。 5.2.5 测试要点

主要是测试考生的和时间格式。

34

35 辽宁工程技术大学毕业设计(论文)

6 编码

6.1 概述开发工具及编程脚本

6.1.1 WEB服务器简介

Jakarta Tomcat服务器是在SUN公司JSWDK基础上发展起来的一个优秀的Servlet/JSP容器。Jakarta Tomcat服务器是Apache-Jakarta软件组织的一个子项目。它支持运行Servlet和JSP,还具备了当商业Java Web应用容器的特征。

Tomcat作为一个开放源码的软件,已经得到了众多开放源码志愿者的支。Tomcat还可以和大部分目前的主流HTTP服务器在一起工作,而且还运行稳定,可靠,效率高。Tomcat除了能够运行Servlet以及JSP,也提供了Web服务器的一些特有的功能,例如Tomcat管理和控制平台,安全域管理,Tomcat阀等。Tomcat早己成为目前的开发企业JavaWeb应用的最佳的选择之一。

6.1.2

MySQL--一个开放源码的,小型关联式数据库管理系统.瑞典MySQL AB公司开发。MySQL被广泛的应用在Internet上面的中小型网站。由于MySQL体积小,速度快,总体拥有成本低,特别是开放源码这一个特点,许多的中小型网站为降低网站总体成本而选择了它作为网站数据库。有以下特点:

1.用C和C++编写,并用了多种编译器来进行测试,保证了源代码可移植性。 2.支持HP-UX、LinuxAIX、FreeBSD、NovellNetware、Mac OS、OS/2 Wrap、OpenBSD、Solaris等多种操作系统。

3.也为多种编程语言提供了API,这些编程语言有Python、C、C++、Java、Eiffel、PHP、Perl、Ruby等。

4.支持多线程充分利用了CPU资源。

5.优化了的SQL查询算法,可有效地提高查询速度。

6.既能作为单独的应用程序来应用在客户端服务器的网络环境中,也能作为一个库嵌入到其他软件中。

7.提供多种语言支持,如中文的GB 2312、BIG5,Shift_JIS等都可用作数据表名、数据列名。

8.提供了TCP/IP、ODBC、JDBC等多种数据库连接途径。

35

36 陶志方-《数据库原理》课程在线考试系统的设计与实现 9.提供了用于管理检查,优化数据库操作的管理工具。 10.支持大型的数据库,可处理有上千万条记地大型数据库。 11.支持好多种存储引擎。

12.MySQL是开源的,不需支付额外费用。 13.MySQL使用的是标准的SQL数据语言形式。

6.1.3 JSP简介

JSP的英文全名称是Java Server Page。中文全名称是Java服务器端语言。JSP核心就是Java技术。在服务器端JSP文件中会被编译成为类文件(.class),并以Servlet的形式接受用户访问以及处理数据,因此JSP实质是Servlet。JSP优势如下:

(1) JSP方便和 HTML结合在一起应用,JSP语言可在处理Java语言过程中灵活的用各种HTML标识。

(2) JSP运行的速度快,JSP在服务器端会会被编译成类文件,因此,只需初始化一次,然后保存到服务器的内存,供给多个客户端同时的访问,所以运行的速度快。

(3) JSP技术获得很多软件公司的支持,JSP技术己成为服务器语言的标准。并由IBM、Sun、Bea等著名大软件公司提供技术的支持。

(4)JSP技术得到了众多开放性代码组织的支持,例如Apache组织。Apache组织为JSP技术提供大量代码、模块以及设计模式。

(5)JSP技术可跨平台运行,JSP应用语言为Java,它可实现一次编写在多个平台上运行,即JSP既可在Windows平台上来运行,也可在Linux平台以及Unix平台上来运行。

6.2 脚本习惯说明

(1)包名每一个单词都必须要大写。 (2)类名以及方法名都要是小写。 (3)变量名第一个字母一定要小写。

6.3 脚本

(1)下面是一个用JavaScript编写的脚本程序,被浏览器访问后,其运行结果是显示客户端系统的时间。

(2)下面是一个用JavaScript编写的脚本程序,被浏览器访问后,其结果是如果添加用户时,确认密码和再次输入额密码填写的是否一致,如果不一致给出提示并重新填写密码。

(3)下面是一个JavaScript编写的脚本程序,被浏览器访问后,其结果是如果登录信息有错误给出错误提示并重新登录。

4)下面是一个JavaScript编写的脚本程序,在被浏览器调用显示后,其运行结果体现输入内容的时候,不允许为空值,也不允许输入错误日期格式,否则给出提示并需要重新填写密码。

39

陶志方-《数据库原理》课程在线考试系统的设计与实现40

43

44 陶志方-《数据库原理》课程在线考试系统的设计与实现 7 测试

7.1 测试原则及测试方法概述

软件测试是为了软件产品在投入生产运用之前,尽量多地发现存在软件产品中的各种错误,然后消除障碍来保证软件的可靠性。软件的可靠性是指软件在给定的时间内,按软件规格说明书成功运行软件的概率。但我们还应该明白,软件系统测试不能证明测试的程序就是正确的,即便经过了最严格的软件系统测试,仍可能有一些错误藏在程序中没被发现。可知软件系统测试只能找到程序中的错误,却不能证明程序中没错误。

基于测试原则,我们选择了黑盒测试。黑盒测试是在程序接口上来进行测试的,主要是为发现以下的错误:

在接口上,输入能不能正确的接受、有没有不正确或遗漏了的功能、 能不能输出正确结果、是不是有数据结构的错误或外部信息访问的错误、性能上是不是能够满足要求、是不是有初始化的或终止性的错误。

7.2 测试项目测试用例

表7-1 药店会员信息管理系统的测试用例 Tab. 7-1 Office Automation Management System Test

测试模块 测试用例描述 学生登录模 实现学生的登录。 操作过程及数据 进入“学生登录”界面,在“学号”和“密码”文本框中输入正确值,单击“登录”按钮。 进入“学生登录”界面,在“学号名”和“密码”文本框中输入非正确值,单击“登录”按钮。 登录不成功,登录不成功,提示“学号名或密码错误”。 提示“学号名或密码错误”。 无 界面校验 预期结果 登录成功,进入主功能界面。 实际结果 登录成功,进入主功能界面。 偏差 无 用例类别 界面校验 44

45 辽宁工程技术大学毕业设计(论文)

块 进入“学生登录”界面,在“学号”和“密码”文本框中不输入任何值,单击“登录”按钮。 弹出提示信息“学号或密码不能为空!”。 弹出提示信息“学号或密码不能为空!”。 无 界面校验 老师登陆模块 题型管理 添加题型 对数据库中没有的题型进行添加 添加成功 添加成功 无 界面校验 对数据库中已有的题型就行添加 添加失败,提示该题型已存在 添加失败,提示该题型已存在 查询成功,显示查询的试题信息 查询失败,重新查询 无 界面校验 根据查询条件对题库信息进行查询 对已有的试题进行查询或者输入正确的试题题目进行查询 对没有的试题进行查询或者输入错误的试题题目进行查询 查询成功,显示查询的试题信息 查询失败,重新查询 题库管理 根据题目数和总分数生成试卷 录入合理的试题数目和分数 生成试卷成功 生成试卷成功 无 界面校验 试卷生成 录入不合理的试题数目和分数 生成试卷失败,重新录入信息 生成试卷失败,重新录入信息 阅卷 填写分数信息 填写正确的分数信息 评分成功 评分成功 无 界面校验 填写错误的分数信息 提示分数超过总分数,评分失败 提示分数超过总分数,评分失败 45

46 陶志方-《数据库原理》课程在线考试系统的设计与实现 考试结果查看 班级管理 根据查询条件对考试结果进行查询 输入正确的学号编号进行查询 查询成功,显示查询的考试结果信息 查询成功,显示查询的考试结果信息 查询失败,重新查询 无 界面校验 输入错误的学号编号进行查询 查询失败,重新查询 根据查询条件对班级信息进行查询 对已有的班级进行查询或者输入正确的班级编号进行查询 对没有的班级进行查询或者输入错误的班级编号进行查询 查询成功,显示查询的班级信息 查询失败,重新查询 查询成功,显示查询的班级信息 查询失败,重新查询 无 界面校验

7.3 软件测试结论

7.3.1 软件能力

该在线考试系统可实现查询、添加、修改、删除等操作相关提示信息的一致性、可理解性,也能够对输入的信息进行正确性的验证。

7.3.2 缺陷和

(1)系统页面不美观。

(2)数据库设计也存在一定漏洞。

7.3.3 建议

(1)在项目开始时,应制定编码标准、数据库标准和需求变更标准。

(2)开发、测试都要按照标准严格进行,可在后期减少因为开发、测试不一致导致的问题。

7.3.4 测试结论

经以上的综合测试以后,本人改正了发现的问题及存在的错误。系统已经具有一定的健壮性。

46

47 辽宁工程技术大学毕业设计(论文)

结论

在者几个多月的毕业设计中,我不知不觉当运用了自己三年来所学到的大多知识。虽然在以前也开发过一些小软件,但是还是觉得能将与学知识和真正合二为一的,只有毕业设计。通过毕设,我再一次复习并强化了自己软件工程、数据库的基本知识、JSP 的编程技术并且体会模块化的设计思想。

由于时间短,整体的功能还不算完善管理模块有些欠缺。在系统开发过程前,我也没有作专业的市场调查,资料不够完善,在线考试系统的定位不明确。

总之,通过和别人成功的系统比较,会发现自己做的在线考试系统总和人家有些差距,从界面到内容,成功的作品都做的比较好;界面美观大方,内容丰富。而自己的在线考试系统就比较单调。这些都说明自己的经验不够丰富,问题考虑的不够全面,很多方面需要加强。

人在总结中进步,做毕业设计的过程中,也发现了自己身上存在的许多问题,同样,自己也确实提高了不少。

47

48 陶志方-《数据库原理》课程在线考试系统的设计与实现 致谢

这个毕业设计相对简单,且由于时间短和技术水平不高等原因,有些想要实现的功能都没有实现,我感觉非常的遗憾。当然也做出了一些东西,并且把我学习的书本知识用到实际工作中,算是有所获益。

在这里,我对为我做毕设提供帮助的老师和同学表示感谢,尤其感谢我的指导老师孙宁老师,在孙老师的无私的指导和帮助下我才得以完成毕业设计和论文。孙老师认真负责的工作态度、严谨治学的精神以及深厚的理论水平是我受益匪浅。

马上就要离开母校,毕设的完成离不开母校的培养和母校老师的帮助,对母校也表示衷心的感谢。最后,我想对所有热爱学生的老师道一句:“老师,您辛苦了!”

48

49 辽宁工程技术大学毕业设计(论文)

参考文献

[1] 刘万军,郑少京,王松波,梁清华.《Java6程序设计》.清华大学出版社,2009.5 [2] 明日科技.《Java从入门到精通》.清华大学出版社,2012.9 [3] 张海藩.《软件工程导论》.清华大学出版社,2008.2 [4] 王珊,萨师煊.《数据库系统概论》.高等教育出版社,2006.5 [5] 王少峰.《UML面向对象技术》.清华大学教育出版社,2004.2 [6] Cay S.Horstmann,Gary Cornell.《Core Java》.elsevier edition ,2003,2 [7] 许令波.《深入分析Java Web》.电子工业出版社,2012.9 [8] 扎卡斯.《JavaScript高级程序设计》.人民邮电出版社,2006

[9] Y.Daniel Liang.《Java语言程序设计:进阶篇》.机械工业出版社,2012.1 [10] 张化祥.《Java语言基础教程》.清华大学出版社,2007.11

49

50 陶志方-《数据库原理》课程在线考试系统的设计与实现 附录A 英文译文

JSP技术简介及特点

JSP(Java Server Pages)技术是由Sun公司发布的用于开发动态Web应用的一项技术。它以其简单易学、跨平台的特性,在众多动态Web应用程序设计语言中异军突起,在短短几年中已经形成了一套完整的规范,并广泛地应用于电子商务等各个领域中。在国内,JSP现在也得到了比较广泛的重视,得到了很好的发展,越来越多的动态网站开始采用JSP技术。下面就对JSP及其相关技术进行简单的介绍。JSP技术可以以一种简捷而快速的方法生成Web页面。使用JSP技术的Web页面可以很容易地显示动态内容。JSP技术的设计目的是使得构造基于Web的应用程序更加容易和快捷,而这些应用程序能够与各种Web服务器、应用服务器、浏览器和开发工具共同工作。

JSP技术不是惟一的动态网页技术,也不是第一个,在JSP技术出现之前就已经存在几种优秀的动态网页技术,如CGI、ASP等。下面结合这些技术的介绍,讲述动态网页技术的发展和JSP技术的诞生。

JSP的开发背景及发展历史

在万维网短暂的历史中,万维网已经从一个大部分显示静态信息的网络演化到对股票进行交易和进行购书操作的一个基础设施。在各种各样的应用程序中,对于可能使用的基于Web的客户端,看上去没有任何。

基于浏览器客户端的应用程序比传统的基于客户机/服务器的应用程序有几个好处。这些好处包括几乎没有的客户端访问和极其简化的应用程序部署和管理(要更新一个应用程序,管理人员只需要更改一个基于服务器的程序,而不是成千上万的安装在客户端的应用程序)。这样,软件工业正迅速地向建造基于浏览器客户端的多层次应用程序迈进。

这些快速增长的精巧的基于Web的应用程序要求开发技术上的改进。静态HTML对于显示相对静态的内容是不错的选择;新的挑战在于创建交互的基于Web的应用程序,在这些程序中,页面的内容是基于用户的请求或者系统的状态,而不是预先定义的文字。

对于这个问题的一个早期解决方案是使用CGI-BIN接口。开发人员编写与接口相关的单独的程序,以及基于Web的应用程序,后者通过Web服务器来调用前者。这个方案有着严重的扩展性问题——每个新的CGI要求在服务器上新增一个进程。如果多个用户并发地访问该程序,这些进程将消耗该Web服务器所有的可用资源,并且系统性能会降低到极其低下的地步。

50

51 辽宁工程技术大学毕业设计(论文)

某些Web服务器供应商已经尝试通过为他们的服务器提供“插件”和API来简化Web应用程序的开发。这些解决方案是与特定的Web服务器相关的,不能解决跨多个供应商的解决方案的问题。例如,微软的Active Server Pages(ASP)技术使得在Web页面上创建动态内容更加容易,但也只能工作在微软的IIS和Personal Web Server上。

还存在其他的解决方案,但都不能使一个普通的页面设计者能够轻易地掌握。例如,像Java Servlet这样的技术就可以使得用Java语言编写交互的应用程序的服务器端的代码变得容易。开发人员能够编写出这样的Servlet,以接收来自Web浏览器的HTTP请求,动态地生成响应(可能要查询数据库来完成这项请求),然后发送包含HTML或XML文档的响应到浏览器。

Java Servlet就是一个基于Java技术的运行在服务器端的程序(与Applet

不同,后者运行在浏览器端)。Servlet会在本书第4章介绍。

采用这种方法,整个网页必须都在Java Servlet中制作。如果开发人员或者Web管理人员想要调整页面显示,就不得不编辑并重新编译该Java Servlet,即使在逻辑上已经能够运行了。采用这种方法,生成带有动态内容的页面仍然需要应用程序的开发技巧。

很显然,目前所需要的是一个业界范围内的创建动态内容页面的解决方案。这个方案将解决当前方案所受到的。如下:

能够在任何Web或应用程序服务器上运行。 将应用程序逻辑和页面显示分离。 能够快速地开发和测试。

简化开发基于Web的交互式应用程序的过程。

JSP技术就是被设计用来满足这样的要求的。JSP规范是Web服务器、应用服务器、交易系统以及开发工具供应商间广泛合作的结果。Sun开发出这个规范来整合和平衡已经存在的对Java编程环境(例如,Java Servlet和JavaBeans)进行支持的技术和工具。其结果是产生了一种新的、开发基于Web应用程序的方法,给予使用基于组件应用逻辑的页面设计者以强大的功能。

JSP页整体语义

JSP页实施类定义一个_ jspService() 方法映射反应对象的请求。这些变革细节是具体用于脚本语言(参见Chapter JSP.9, “Scripting”)。多数细节不是具体语言,这些细节在这个章节里描述。

JSP页的内容主要致力于描述被写入反应的输出流的数据(JSP容器通常传送返回给

51

52 陶志方-《数据库原理》课程在线考试系统的设计与实现 客户的数据。)描述是根据JspWriter对象它通过隐含对象暴露。(参见JSP.1.8.3, “Implicit Objects”)。

值的变化:

首先, 定义一个JspWriter 对象,这个对象不同于response.getWriter()返回对象。 并且为了实施中间转换,可以认为是插入到buffering。这是最初外在对象。JSP 页作者对于PrintWriter 或OutputStream 相关的ServletResponse被禁止写直接写入。

JSP容器不响应response.getWriter()直到第一部份内容送到客户。JSP对“glue”动作是一种语言,它是二进制。或于servlet相关, 或在引起内容之前改变反应类型内容。参照JSP.4,“Internationalization Issues”.

在一些动作主体中,输出不同于JspWriter对象实例的再分配,这取决于动作的细节。典型临时数据流添加到先前的输出流, 随后输出数据流再分配到先前数据流(嵌套)。Nested streams总被缓冲,并且明确要求缓冲嵌套数据流或被摈除的内容。

如果out JspWriter 对象数据缓冲区满, 则取决于autoFlush属性值,缓冲内容自动输入到ServletResponse output stream ,消除溢出;或抛出缓冲溢出的信号。如果JspWriter不溢出, 写入的内容将被直接送入ServletResponse输出流。

JSP页也能描述一些应该发生的具体事件。在JSP 2.1, 可被描述的唯一事件是初始化和页的损坏。在声明元素“well-known methodnames”中描述。(参见JSP.11.1.1.1, “Protocol Seen by theJSP Page Author”).

JavaScript是用于浏览器的第一种具有通用目的、动态的客户端脚本语言。Netscape于1995年首先提出了JavaScript,但当时将其称为LiveScript。后来Netscape迅速地将LiveScript改名为JavaScript,Java的开发商Sun与他们在同一年发表了一项声明。声明中指出Java和JavaScript将互相补充,但它们是截然不同的技术,这样才打消了很多人对这两项技术的错误理解。

JavaScript为创建用户界面控件提供了一种脚本语言。事实上,JavaScript在浏览器中插入了代码逻辑。它可以支持这样的效果:当光标在Web页的某个位置移动时验证用户输入或者变换图像。

Microsoft也编写出了自己的JavaScript版本并将其称为JScript。Microsoft和Netscape都支持一种围绕JavaScript和JScript的核心特性并由(European Computer Manufacturers Association,ECMA)标准组织控制的脚本语言标准。ECMA将其脚本语言命名为ECMAScript。

52

53 辽宁工程技术大学毕业设计(论文)

servlet和JSP经常包括一些组织中常见的信息,如logo、版本、商标或导航条。Web应用程序使用导入机制在任何所需的位置导入这些信息,因为这样可以很容易地在一个地方改变内容,然后维持在所有使用它的代码中。有些信息是静态的,永远不会或很少会改变,如组织的logo。在其他情况下,信息是动态的,经常在不可预见的时候改变,如必须针对每个用户的文本欢迎语。在这两种情况下,你可能都希望保证servlet或JSP可以于所导入的内容进行开发,servlet或JSP的实现在必要时正确地更新其导入的内容。

希望在JSP中导入不经常改变的资源。在导入JSP页面中使用include指令,并给予被导入的JSP代码段.jsp扩展名。

希望在JSP每次接收请求时,而不是在JSP转换为servlet时导入内容。使用jsp:include标准动作。

希望在JSP中根据从配置文件取得的值,动态地导入文件。使用jsp:include标准动作。在外部特性文件中提供它的值,或作为部署描述文件中的配置参数来提供。

希望在JSP文档中导入一段XML文件,或导入XML语法的JSP页面。要在每次请求时进行导入,使用jsp:include标准动作。如果要在翻译阶段进行导入,使用jsp:directive。include元素。JSP的运行原理与优点

在本节中简单介绍JSP的运行原理与优点。

在一个JSP文件第一次被请求时,JSP引擎把该JSP文件转换成为一个Servlet。而这个引擎本身也是一个Servlet。JSP的运行过程如下所示:

(1)JSP引擎先把该JSP文件转换成一个Java源文件(Servlet),在转换时如果发现JSP文件有任何语法错误,转换过程将中断,并向服务端和客户端输出出错信息。

(2)如果转换成功,JSP引擎用javac把该Java源文件编译成相应的class文件。 (3)创建一个该Servlet(JSP页面的转换结果)的实例,该Servlet的jspInit()方法被执行,jspInit()方法在Servlet的生命周期中只被执行一次。

(4)jspService()方法被调用来处理客户端的请求。对每一个请求,JSP引擎创建一个新的线程来处理该请求。如果有多个客户端同时请求该JSP文件,则JSP引擎会创建多个线程。每个客户端请求对应一个线程。以多线程方式执行可以大大降低对系统的资源需求,提高系统的并发量及响应时间。但不过也应该注意多线程的编程,由于该Servlet始终驻于内存,所以响应是非常快的。

(5)如果.jsp文件被修改了,服务器将根据设置决定是否对该文件重新编译,如果需要重新编译,则将编译结果取代内存中的Servlet,并继续上述处理过程。

53

陶志方-《数据库原理》课程在线考试系统的设计与实现 (6)虽然JSP效率很高,但在第一次调用时由于需要转换和编译而有一些轻微的延 迟。此外,在任何时候如果由于系统资源不足的原因,JSP引擎将以某种不确定的方式将Servlet从内存中移去。当这种情况发生时jspDestroy()方法首先被调用。

(7)然后Servlet实例便被标记加入“垃圾收集”处理。可在jspInit()中进行一些初始化工作,如建立与数据库的连接,或建立网络连接,从配置文件中取一些参数等,在jspDestory()中释放相应的资源。

基于Java语言的JSP技术具有很多其他动态网页技术所没有的特点,具体表现在如下方面:

1.简便性和有效性

JSP动态网页的编写与一般的静态HTML的网页编写是十分相似的。只是在原来的HTML网页中加入一些JSP专有的标签,或是一些脚本程序(此项不是必需的)。这样,一个熟悉HTML网页编写的设计人员可以很容易进行JSP网页的开发。而且开发人员完全可以不自己编写脚本程序,而只是通过JSP独有的标签使用别人已写好的部件来实现动态网页的编写。这样,一个不熟悉脚本语言的网页开发者,完全可以利用JSP做出漂亮的动态网页。而这在其他的动态网页开发中是不可实现的。

2.程序的性

JSP是Java API家族的一部分,它拥有一般的Java程序的跨平台的特性。换句话说,就是拥有程序的对平台的性,即Write once,Run anywhere!。

3.程序的兼容性

JSP中的动态内容可以各种形式进行显示,所以它可以为各种客户提供服务,即从使用HTML/DHTML的浏览器,到使用WML的各种手提无线设备(例如,移动电话和个人数字设备PDA),再到使用XML的B2B应用,都可以使用JSP的动态页面。

4.程序的可重用性

在JSP页面中可以不直接将脚本程序嵌入,而只是将动态的交互部分作为一个部件加以引用。这样,一旦这样的一个部件写好,它可以为多个程序重复引用,实现了程序的可重用性。现在,大量的标准JavaBeans程序库就是一个很好的例证。

欲从导入文件的上下文之外导入JSP代码段。使用c:import JSTL核心标记。

55 辽宁工程技术大学毕业设计(论文)

附录B 英文原文

JSP Technology Conspectus And Specialties

The JSP (Java Server mix) technology is used by the Sun microsystem issued by the company to develop dynamic Web application technology. With its easy, cross-platform, in many dynamic Web application programming languages, in a short span of a few years, has formed a complete set of standards, and widely used in electronic commerce, etc. In China, the JSP now also got more extensive attention, get a good development, more and more dynamic website to JSP technology. The related technologies of JSP are briefly introduced.

The JSP a simple technology can quickly and with the method of generating Web pages. Use the JSP technology Web page can be easily display dynamic content. The JSP technology are designed to make the construction based on Web applications easier and efficient, and these applications and various Web server, application server, the browser and development tools work together.

The JSP technology isn't the only dynamic web technology, also not the first one, in the JSP technology existed before the emergence of several excellent dynamic web technology, such as CGI, ASP, etc. With the introduction of these technologies under dynamic web technology, the development and the JSP. Technical

JSP the development background and development history

In web brief history, from a world wide web that most of the network information static on stock transactions evolution to acquisition of an operation and infrastructure. In a variety of applications, may be used for based on Web client, look no restrictions.

Based on the browser client applications than traditional based on client/server applications has several advantages. These benefits include almost no limit client access and extremely simplified application deployment and management (to update an application, management personnel only need to change the program on a server, not thousands of installation in client applications). So, the software industry is rapidly to build on the client browser multi-layer application.

The rapid growth of exquisite based Web application requirements development of technical improvements. Static HTML to show relatively static content is right choice, The new challenge is to create the interaction based on Web applications, in these procedures, the content of a Web page is based on the user's request or the state of the system, and are not predefined characters.

55

56 陶志方-《数据库原理》课程在线考试系统的设计与实现 For the problem of an early solution is to use a CGI - BIN interface. Developers write to interface with the relevant procedures and separate based on Web applications, the latter through the Web server to invoke the former. This plan has serious problem -- each new extensible CGI requirements in a new process on the server. If multiple concurrent users access to this procedure, these processes will use the Web server of all available resources, and the performance of the system will be reduced to extremely low.

Some Web server providers have to provide for their server by plugins \"and\" the API to simplify the Web application development. These solutions are associated with certain Web server, cannot solve the span multiple suppliers solutions. For example, Microsoft's Active Server mix (ASP) technology in the Web page to create dynamic content more easily, but also can work in Microsoft on Personal Web Server and IIS.

There are other solutions, but cannot make an ordinary page designers can easily master. For example, such as the Servlet Java technologies can use Java language interaction application server code easier. Developers to write such Servlet to receive signals from the Web browser to generate an HTTP request, a dynamic response (may be inquires the database to finish the request), then send contain HTML or XML documents to the response of the browser. different, the latter operating in the Applet browser end). In this book the Servlet chapter 4.

Using this method, the entire page must have made in Java Servlet. If developers or Web managers want to adjust page, you'll have to edit and recompile the Servlet Java, even in logic has been able to run. Using this method, the dynamic content with the application of the page still need to develop skills.

Obviously, what is needed is a industry to create dynamic content within the scope of the pages of the solution. This program will solve the current scheme are limited. As follows:

The JSP technology is designed to meet such requirements. The JSP specification is a Web server, application server, trading system and develop extensive cooperation between the tool suppliers. From this standard to develop the existing integration and balance of Java programming environment (for example, Java Servlet and JavaBeans) support techniques and tools. The result is a kind of new and developing method based on Web applications, using component-based application logic page designers with powerful functions.

56

57 辽宁工程技术大学毕业设计(论文)

Overall Semantics of a JSP Page

A JSP page implementation class defines a _jspService() method mapping from the request to the response object. Some details of this transformation are specific to the scripting language used (see Chapter JSP.9, “Scripting”). Most details are not language specific and are described in this chapter.

The content of a JSP page is devoted largely to describing the data that is written into the output stream of the response. (The JSP container usually sends this data back to the client.) The description is based on a JspWriter object that is exposed through the implicit object out (see Section JSP.1.8.3, “Implicit Objects”). Its value varies:

Initially, out is a new JspWriter object. This object may be different from the stream object returned from response.getWriter(), and may be considered to be interposed on the latter in order to implement buffering (see Section JSP.1.10.1, “The page Directive”). This is the initial out object. JSP page authors are prohibited from writing directly to either the PrintWriter or OutputStream associated with the ServletResponse.

The JSP container should not invoke response.getWriter() until the time when the first portion of the content is to be sent to the client. This enables a number of uses of JSP, including using JSP as a language to “glue” actions that deliver binary content, or reliably forwarding to a servlet, or change dynamically the content type of the response before generating content. See Chapter JSP.4, “Internationalization Issues”.

Within the body of some actions, out may be temporarily re-assigned to a different (nested) instance of a JspWriter object. Whether this is the case depends on the details of the action’s semantics. Typically the content of these temporary streams is appended to the stream previously referred to by out, and out is subsequently re-assigned to refer to the previous (nesting) stream. Such nested streams are always buffered, and require explicit flushing to a nesting stream or their contents will be discarded.

If the initial out JspWriter object is buffered, then depending upon the value of the autoFlush attribute of the page directive, the content of that buffer will either be automatically flushed out to the ServletResponse output stream to obviate overflow, or an exception shall be thrown to signal buffer overflow. If the initial out JspWriter is unbuffered, then content written to it will be passed directly through to the ServletResponse output stream.

A JSP page can also describe what should happen when some specific events occur. In JSP 2.1, the only events that can be described are the initialization and the destruction of the page. These events are described using “well-known method names” in declaration elements..

JavaScript is used for the first kind is browser, the dynamic general purpose of client

57

58 陶志方-《数据库原理》课程在线考试系统的设计与实现 scripting language. Netscape first proposed in 1995, but its JavaScript LiveScript called. Then quickly Netscape LiveScript renamed JavaScript, Java developers with them from the same issued a statement. A statement Java and JavaScript will complement each other, but they are different, so the technology of the many dismissed the misunderstanding of the two technologies.

JavaScript to create user interface control provides a scripting language. In fact, in the browser into the JavaScript code logic. It can support such effect: when the cursor on the Web page of a mobile user input validation or transform image.

Microsoft also write out their JavaScript version and the JScript called. Microsoft and Netscape support JavaScript and JScript around a core characteristics and European Manufacturers is.md by (ECMA) standards organization, the control standard of scripting language. ECMA its scripting language ECMAScript named.

Servlets and JSPs often include fragments of information that are common to an organization, such as logos, copyrights, trademarks, or navigation bars. The web application uses the include mechanisms to import the information wherever it is needed, since it is easier to change content in one place then to maintain it in every piece of code where it is used. Some of this information is static and either never or rarely changes, such as an organization's logo. In other cases, the information is more dynamic and changes often and unpredictably, such as a textual greeting that must be localized for each user. In both cases, you want to ensure that the servlet or JSP can evolve independently of its included content, and that the implementation of the servlet or JSP properly updates its included content as necessary.

You want to include a resource that does not change very much (such as a page fragment that represents a header or footer) in a JSP. Use the include directive in the including JSP page, and give the included JSP segment a .jspf extension.

You want to include content in a JSP each time it receives a request, rather than when the JSP is converted to a servlet. Use the jsp:include standard action.

You want to include a file dynamically in a JSP, based on a value derived from a configuration file. Use the jsp:include standard action. Provide the value in an external properties file or as a configuration parameter in the deployment descriptor.

You want to include a fragment of an XML file inside of a JSP document, or include a JSP page in XML syntax. Use the jsp:include standard action for the includes that you want to occur with each request of the JSP. Use the jsp:directive.include element if the include action should occur during the translation phase.

You want to include a JSP segment from outside the including file's context. Use the

58

59 辽宁工程技术大学毕业设计(论文)

c:import

The operation principle and the advantages of JSP tags

In this section of the operating principle of simple introduction JSP and strengths.

For the first time in a JSP documents requested by the engine, JSP Servlet is transformed into a document JSP. This engine is itself a Servlet. The operating process of the JSP shown below:

(1) the JSP engine put the JSP files converting a Java source files (Servlet), if you find the files have any grammar mistake JSP, conversion process will interrupt, and to the server and client output error messages.

(2) if converted, with the engine JSP javac Java source file compiler into a corresponding scale-up files.

(3) to create a the Servlet (JSP page), the transformation of the Servlet jspInit () method was executed, jspInit () method in the life cycle of Servlet executed only once.

(4) jspService () method invocation to the client requests. For each request, JSP engine to create a new thread for processing the request. If you have multiple clients and request the JSP files, JSP engine will create multiple threads. Each client requests a thread. To execute multi-thread can greatly reduce the requirement of system resources, improving the concurrency value and response time. But also should notice the multi-thread programming, due to the limited Servlet always in response to memory, so is very fast.

(5) if the file has been modified. The JSP, server will be set according to the document to decide whether to recompile, if need to recompile, will replace the Servlet compile the memory and continue the process.

(6) although the JSP efficiency is high, but at first when the need to convert and compile and some slight delay. In addition, if at any time due to reasons of system resources, JSP engine will in some way of uncertain Servlet will remove from memory. When this happens jspDestroy () method was first call.

(7) and then Servlet examples were marked with \"add\" garbage collection. But in jspInit () some initialization work, if establish connection with database, or to establish a network connection, from a configuration file take some parameters, such as, in jspDestory () release of the corresponding resources.

59

60 陶志方-《数据库原理》课程在线考试系统的设计与实现 Based on a Java language has many other techniques JSP page dynamic characteristics, technical have embodied in the following aspects:

One simplicity and effectiveness

The JSP dynamic web pages with the compilation of the static HTML pages of writing is very similar. Just in the original HTML page add JSP tags, or some of the proprietary scripting (this is not necessary). So, a familiar with HTML page write design personnel may be easily performed JSP page development. And the developers can not only, and write script by JSP tags used exclusively others have written parts to realize dynamic pages. So, an unfamiliar with the web developers scripting language, can use the JSP make beautiful dynamic pages. And this in other dynamic web development is impossible.

Tow the independence of the program

The JSP are part of the family of the API Java, it has the general characteristics of the cross-platform Java program. In other words, is to have the procedure, namely the independence of the platform, 6 Write bided anywhere! .

Three procedures compatibility

The dynamic content can various JSP form, so it can show for all kinds of customers, namely from using HTML/DHTML browser to use various handheld wireless equipment WML (for example, mobile phones and pdas), personal digital equipment to use XML applications, all can use B2B JSP dynamic pages.

Four program reusability

In the JSP page can not directly, but embedded scripting dynamic interaction will be cited as a component part. So, once such a component to write, it can be repeated several procedures, the program of the reusability. Now, a lot of standard JavaBeans library is a good example.

60

61 辽宁工程技术大学毕业设计(论文)

附录C程序清单

1.日期格式的编写:

该类的主要功能是实现对日期的转换操作和对数据库中时间日期数据的一些简单处理。在类中的每个方法都有详细的注释。全部代码如下: package com.gxa.util;

import java.text.ParseException; import java.text.SimpleDateFormat;

import java.util.Calendar; import java.util.Date;

import java.util.GregorianCalendar;

public class DateTools {

/**

* 日期格式化为yyyy-MM-dd 也可设置为 yyyy-MM-dd HH:mm:ss * @return */ public String getCurrentDate() {

Date da = new Date(System.currentTimeMillis());

SimpleDateFormat sf = new SimpleDateFormat(\"yyyy-MM-dd\");

return sf.format(da);

61

陶志方-《数据库原理》课程在线考试系统的设计与实现62 }

public String getCurretYearMonth(){ Date date = new Date(System.currentTimeMillis()); SimpleDateFormat sf = new SimpleDateFormat(\"yyyyMM\"); return sf.format(date);

}

public String getCurrentTime() {

Date da = new Date(System.currentTimeMillis()); SimpleDateFormat sf = new SimpleDateFormat(\"yyyy-MM-dd HH:mm\"); return sf.format(da); } /**

* 格式化的日期格式为yyyy-MM-dd HH:mm * @param date * @return */

public String formatDatetostring(Date date){ SimpleDateFormat sf = new SimpleDateFormat(\"yyyy-MM-dd HH:mm\"); return sf.format(date);

} /**

* 格式化的日期格式为yyyy-MM-dd HH:mm * @param date * @return */

public String formatDatetostringDay(Date date){ SimpleDateFormat sf = new SimpleDateFormat(\"yyyy-MM-dd\");

return sf.format(date);

62

63 辽宁工程技术大学毕业设计(论文)

} /**

* 字符串类型的日期转化为util包的Date类型的日期 * @param date * @return */

public Date formatStringtoDate(String date){ SimpleDateFormat sdf = new SimpleDateFormat(\"yyyy-MM-dd HH:mm\"); Date datetime=new Date(); try {

datetime=sdf.parse(date); } catch (ParseException e) { // TODO Auto-generated catch block e.printStackTrace();

}

return datetime; }

public Date formatStringtoDate2(String date){ SimpleDateFormat sdf = new SimpleDateFormat(\"yyyy-MM-dd\"); Date datetime=new Date(); try {

datetime=sdf.parse(date); } catch (ParseException e) { // TODO Auto-generated catch block e.printStackTrace();

}

return datetime; }

63

陶志方-《数据库原理》课程在线考试系统的设计与实现 /**

* 将字串转化为日期格式 */

public static Date convertStringtoDate(String date){ SimpleDateFormat sdfDate = new SimpleDateFormat(\"yyyy-MM-dd HH:mm:ss\"); SimpleDateFormat sdfCalendar = new SimpleDateFormat(\"yyyy-MM-dd\"); Date datetime=new Date(); try { if(date.length()>10){ datetime = sdfDate.parse(date);

}else{ datetime = sdfCalendar.parse(date);

}

} catch (ParseException e) { // TODO Auto-generated catch block e.printStackTrace();

}

return datetime; } /**

* 将字串转化为日期格式 */

public static Date convertStringtoDate(String date,String mask){ SimpleDateFormat sdf = new SimpleDateFormat(mask);

Date datetime=new Date();

65 辽宁工程技术大学毕业设计(论文)

try {

datetime=sdf.parse(date); } catch (ParseException e) { // TODO Auto-generated catch block e.printStackTrace();

}

return datetime; } /**

* 将日期转化为字串格式 */

public static String convertDateToString(Date date,String mask){

SimpleDateFormat sdf = new SimpleDateFormat(mask);

return sdf.format(date);

} /**

* @param days 获得指定天数后的日期,负数表示多少天前的日期

* @param isStart true表示是起始日期,需要将时分秒置为0,false不改变时分秒 * @return 当前毫秒数 */

public Date getDateAfter(int days,boolean isStart){ Calendar calendar = new GregorianCalendar(); calendar.add(Calendar.DAY_OF_YEAR, days); if (isStart){

int year = calendar.get(Calendar.YEAR);

65

陶志方-《数据库原理》课程在线考试系统的设计与实现66 int month = calendar.get(Calendar.MONTH); int day = calendar.get(Calendar.DAY_OF_MONTH); calendar.set(year, month, day, 0, 0, 0); }

return calendar.getTime();

}

}

2.用户所有页面的的编写

该模块主要验证是否合法登陆,以及登陆是否超时 package com.gxa.web.filter;

import java.io.IOException; import java.io.PrintWriter;

import javax.servlet.Filter; import javax.servlet.FilterChain; import javax.servlet.FilterConfig; import javax.servlet.ServletException; import javax.servlet.ServletRequest; import javax.servlet.ServletResponse; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import javax.servlet.http.HttpSession; /**

* Servlet Filter implementation class UserFilter */

66

67 辽宁工程技术大学毕业设计(论文)

public class UserFilter implements Filter { /**

* Default constructor. */

public UserFilter() {

// TODO Auto-generated constructor stub }

/**

* @see Filter#doFilter(ServletRequest, ServletResponse, FilterChain) */

public void doFilter(ServletRequest servletRequest, ServletResponse servletResponse, /**

* @see Filter#destroy() */

public void destroy() { }

// TODO Auto-generated method stub

FilterChain chain) throws IOException, ServletException {

HttpServletRequest request = (HttpServletRequest) servletRequest; HttpServletResponse response = (HttpServletResponse) servletResponse; response.setContentType(\"text/html; charset=UTF-8\"); HttpSession session = request.getSession(); String host = request.getContextPath(); if (session.getAttribute(\"user\") == null) {

PrintWriter writer = response.getWriter();

writer.println(\"你无权访问,或你的登陆已过期,

请先登陆\");

writer.close();

}

chain.doFilter(request, response);

}

/**

* @see Filter#init(FilterConfig) */

public void init(FilterConfig fConfig) throws ServletException { // TODO Auto-generated method stub

}

}

68

因篇幅问题不能全部显示,请点此查看更多更全内容

Copyright © 2019- xiaozhentang.com 版权所有 湘ICP备2023022495号-4

违法及侵权请联系:TEL:199 1889 7713 E-MAIL:2724546146@qq.com

本站由北京市万商天勤律师事务所王兴未律师提供法律服务