通信工程毕业设计(论文)-基于jsp的在线考试系统设计.doc_第1页
通信工程毕业设计(论文)-基于jsp的在线考试系统设计.doc_第2页
通信工程毕业设计(论文)-基于jsp的在线考试系统设计.doc_第3页
通信工程毕业设计(论文)-基于jsp的在线考试系统设计.doc_第4页
通信工程毕业设计(论文)-基于jsp的在线考试系统设计.doc_第5页
已阅读5页,还剩39页未读 继续免费阅读

下载本文档

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

文档简介

编号 2012020326研究类型理论研究 分类号 tp393.1 学士学位学士学位论论文(文(设计设计) ) bachelors thesis 论文题目基于 jsp 的在线考试系统设计 作者姓名 学号 所在院系计算机科学与技术学院 学科专业名称通信工程 导师及职称 论文答辩时间2012 年 5 月 12 日 学士学位论文(设计)诚信承诺书学士学位论文(设计)诚信承诺书 中文题目:基于 jsp 的在线考试系统设计 外文题目:online examination system 学生姓名学生学号 院系专业计算机科学与技术学院通信工程学生班级 学学 生生 承承 诺诺 我承诺在学士学位论文(设计)活动中遵守学校有关规定,恪守学 术规范,本人学士学位论文(设计)内容除特别注明和引用外,均为本 人观点,不存在剽窃、抄袭他人学术成果,伪造、篡改实验数据的情况。 如有违规行为,我愿承担一切责任,接受学校的处理。 学生(签名): 年 月 日 指导教师承诺指导教师承诺 我承诺在指导学生学士学位论文(设计)活动中遵守学校有关规定, 恪守学术道德规范,经过本人核查,该生学士学位论文(设计)内容除 特别注明和引用外,均为该生本人观点,不存在剽窃、抄袭他人学术成 果,伪造、篡改实验数据的现象。 指导教师(签名): 年 月 日 基于 jsp 的在线考试系统设计 张昭(指导教师:王曦) (湖北师范学院 计算机科学与技术学院 0803 班 湖北 黄石 435002) 摘 要:在线考试系统旨在实现考试的无纸化管理,对一些科目的考试可以通过互联 网络或局域网进行,方便校方考务的管理,也方便了考生,尤其适合考生分 布广,不易集中的远程教育。我主要开发系统的后台管理系统java 在线考 试管理子系统,它包括试题管理、考生管理、在线制作试卷、控制学生考试 的设置、试卷审批等功能。本论文主要介绍了对 java 在线考试管理子系统的 分析、设计和开发的全部过程。运用 er 图,程序流程图等对在线管理子系统 的设计过程进行详细的说明。全文共分为开发方案、需求分析、系统设计、 关键技术解决,结论五部分。开发方案中主要介绍开发在线考试系统得目的、 开发方案的选择及开发框架的技术的确定;需求分析介绍了在线考试系统的 总体需求及系统各模块的功能需求;系统设计介绍了系统设计的指导思想、 数据库的设计、系统模块的设计;关键技术介绍了在具体实现时需解决的一 些技术,如开发框架的整合技术、开发框架与数据库的连接及数据的备份与 还原。本毕业设计的内容是设计并且实现一个基于 web 技术的在线考系统, 故而系统主要以 j2ee 作为开发基础,主要使用了 struts+spring 等多种协议 或技术,用 eclipse 作为开发工具,以 mysql 作为数据库,以 macromedia 公 司的 dreamweaver 作为界面美化工具。基本实现了网上考试系统应有的主要 功能模块,包括:管理员的登录,管理和维护;用户注册、登录、注销,个人 信息的查询、修改;考试管理,套题管理,成绩管理。该系统界面简单、操 作方便,容易维护。 关键词:在线考试 j2ee struts + spring 中图分类号: :tp393.1 online examination system xiao sha (tutor:hu siyou) (college of computer science and technology, hubei normal university,huangshi 435002 , china) abstract:online examination system to achieve paperless management of examinations, the examination of some subjects through the internet or lan, to facilitate the management of the school examination, candidates are also convenient, especially for candidates widely distributed, easy to focus on distance education . the background of my main development system management system-java-line examination management subsystem, which includes questions management, candidate management, on-line production of papers, control of student test set, paper processing and other functions. this paper introduces online examination management subsystem on the java analysis, design and development of the whole process. using er diagram, process flow charts and other on-line management subsystem design process detail. paper is divided into development programs, requirements analysis, system design, key technical solutions, the conclusion of five parts. development program introduces the development of online examination system was the purpose, development plan and development framework for the choice of identification technology; demand analysis describes the overall demand for online examination system and the system functional requirements of each module; system designed for the guidance system design thinking, database design, system design module; key technology introduced to be addressed in the detailed realization of some technologies, such as the integration of technology development framework, development framework and the database connection and data backup and restore. the contents of this graduation project is to design and implement a web-based technology, online examination system, guer system based mainly j2ee as the development, mainly using struts + spring and other agreements or technology, using eclipse as a development tool to mysql as the database to macromedias dreamweaver as a landscaping tool interface. basically an online examination system should be the main functional modules, including: an administrators login, management and maintenance; user registration, login, logout, personal information, access, correction; test management, problem sets of management, performance management. the system interface is simple to operate, easy to maintain. keywords: online examination;j2ee;struts + spring 目目 录录 1.1课题目的和意义.1 2.1 jsp 技术介绍.1 2.1.1 jsp 的概述.1 2.1.3 jsp 的强势与劣势.3 2.1.4 jsp 与 asp 的比较.3 2.2 java组件 javabeans4 2.2.1 什么是 javabeans.4 2.2.2 jsp 与 javabeans 的关系.4 2.3 j2ee 概述5 2.4 关于 spring.6 2.4.1 spring 简介6 2.4.2 为什么需要 spring7 2.5 关于 b/s 开发模式 9 2.5.1 为什么引入 b/s 开发模式.9 2.6.1 mysql 的特点.9 2.6.2 mysql 的安装和配置(部分截图)10 2.7 tomcat服务器12 2.7.1 tomcat 服务器简介 12 2.7.2 tomcat 的特点.12 2.7.3 tomcat 的优势.12 2.7.4 tomcat 服务器的安装和配置.12 3.1 系统功能需求 .13 3.2 系统角色及其功能分析 .14 3.2.1 系统的 2 个角色: .14 3.2.2 系统角色的功能 .14 3.3 总体设计思想概述 .15 3.4 数据库设计 .16 3.4.1 e-r 图16 3.4.2 数据表的设计16 3.5 系统的类设计 .18 3.5.1 dao 类设计18 3.5.2 conndb 类设计(部分).18 3.5.3 过滤器类设计 .18 3.5.4 监听器类设计 .19 3.6 系统的用例图 .20 3.6.1 总体用例分析 .20 3.6.2 用户管理用例分析 .21 3.6.3 考试管理用例分析 .21 3.6.4 考试题目管理用例分析 .22 3.6.5 成绩管理用例分析 .22 4.1 数据库与conndb 类映射的实现 .23 4.2 主要模块的设计说明与界面 .23 4.2.1 用户管理模块23 4.2.2 考试管理模块31 4.3 系统的测试 .32 5.1 工作总结 .33 5.2 后续工作展望 .34 参考文献.35 湖北师范学院计算机科学与技术学院 2012 届学士学位论文(设计) 1 1.1 课题目的和意义 现阶段,学校与社会上的各种考试大都采用传统的考试方式,在此方式下,组织一次考试 至少要经过五个步骤,即人工出卷,考生考试,人工阅卷,成绩评估和试卷分析。显然,随着考 试类型的不断增加及考试要求的不断提高,教师的工作量将会越来越大,并且其工作将是一 件十分烦琐和非常容易出错的事情,可以说传统的考试方式已经不能适应现代考试的需要。 随着计算机应用的迅猛发展,网络应用不断扩大,如远程教育和虚拟大学的出现等等,且这些 应用正逐步深入到千家万户。人们迫切要求利用这些技术来进行在线考试,以减轻教师的 工作负担及提高工作效率,与此同时也提高了考试的质量,从而使考试更趋于公证、客观、 更加激发学生的学习兴趣。例如目前许多国际著名的计算机公司所举办的各种认证考试 绝大部分采用这种方式。为了适应新形势的发展,我们推出了这一系统,使其尽快在各类考 试中发挥高效,便捷的作用,把老师从繁重的工作中解脱出来。 2.1 jsp 技术介绍 2.1.1 jsp 的概述 jsp(java server pages)是由 sun microsystems 公司倡导、许多公司参与一起建立 的一种动态网页技术标准,类似于其他技术标准,如 asp,php 等,主要用于开发动态网 页内容。 jsp 是新一代的动态内容编程技术,它继承了 java 技术的“一次编写,随处运行” 的特性,允许 web 开发人员开发和维护与平台无关,信息丰富动态的 web 页面,包括 html,dhtml,xhtml 和 xml,它能使 web 开发人员轻易搭建网络平台,建立起功能强大 的 web 网站。jsp 可以把用户界面从内容层次中分离出来,使得 web 开发人员不必修改在 底层的动态内容,就可以修改整体的页面布局。 2.1.2 jsp 的运行机制 jsp 文档被复制到 web 服务器的文档目录中。当有人请求这个文档时,服务器识别 出这个带有.jsp 扩展名的文档,并意识到需要做特殊处理。第一次请求这个文档时,它被 编译成一个 servlet 对象,并存储在内存中,然后输出内容回送给发出请求的用户机。第 湖北师范学院计算机科学与技术学院 2012 届学士学位论文(设计) 2 一请求之后,只要有请求到来,服务器将进行检查,看看这个文件是否做过改动,如果 没有变化,服务器调用先前编译过的 servlet 对象。 jsp 请求的步骤如图 2-1 所示。 (1)用户机请求一个 jsp 页面。 (2)jsp 引擎编译该 jsp 成一个 servlet。 图 2.1 一个 jsp 的请求步骤 (3)生成的 servlet 被编译并装载。 (4)编译的 servlet 服务请求并把一响应发送回用户机。 jsp 主要是针对 java 程序处理不熟悉的人设计的。与 servlet 相比,jsp 有如下两 个优势:方便与 html 混合;在开发、测试方面比 servlet 方便。 2.1.3 jsp 的强势与劣势 jsp 的强势: (1)可移植性。jsp 是用 java 开发的,因此它是可移植的,可以一处编写,随 处运行,支持多平台。 (2)有效性。jsp 的初始化代码仅在 web 服务器第一次加载时执行一次。一旦 加载,在处理一个新的请求时,只须调用一个新的服务方法。与处理每个请求都要 全部加载一个完整的可执行程序相比,这是一个相当有效的技术。 (3)强大的可伸缩性和可扩充性。它能够在面向对象的语言(java)中进行开发, 并可以在现有对象基础上进行扩展,形成新的对象,从而更好地满足用户的需求。 (4)多样化和功能强大的开发工具支持。java 已经有了许多非常优秀的开发工 具,而且许多可以免费得到,并且其中许多已经可以顺利的运行于多种平台之下。 web 浏览器 jsp 页面 生成的 servlet 编译的 servlet web 服务器 2第一次编 译 3第二次编 译 1请求 4响应 湖北师范学院计算机科学与技术学院 2012 届学士学位论文(设计) 3 (5)java servlet 是一种开发 web 应用的理想框架。jsp 以 servlet 技术为基础, 又在许多方面作了改进。利用跨平台的 javabeans 组件,jsp 为分离处理逻辑与显示 样式提供了卓越的解决方案。 jsp 的劣势: (1)为了跨平台的功能,为了极度的伸缩能力,极大的增加了产品的复杂性, java 系统中包括 jre,jdk,j2ee,ejb 等多种产品,这就需要大量的学习和培训才 能掌握它们,将它们有效地搭配在一起,灵活地加以运用。 (2)java 的运行速度快是由于用户将 class 常驻内存,这样使用的内存空间就比 较大。另一方面,它还需要硬盘空间来存储一系列.java 文件和.class 文件以及对应的 版本文件。 (3)jsp 只有对 java 相当熟悉的人才能用得很好。 (4)jsp 程序调试困难。 2.1.4 jsp 与 asp 的比较 jsp 与 asp(active server page)两者都是常用的动态网页技术,也都是可以嵌入 html 中的程序,但两者是有着本质的不同,主要从以下几个方面对其进行比较: (1)web 服务器的支持:大多数通用的 web 服务器如:apache、netscape 和 microsoft iis 都支持 jsp 页面,只有微软本身的 microsoft iis 和 personal web server 可以支持 asp。 (2)平台的支持:jsp 具有平台独立性,只要是一般的 java 程序可以运行的平台, 都支持 jsp 程序。windows 平台可以很好的支持 asp,但 asp 对于基于 win32 逐渐模型的 依赖,使得它难于一直到其它平台上。 (3)组件模型:jsp 是建立在可重用的、跨平台的组件(如: javabeans、enterprises javabeans 和用户定制的标签库等组件)之上的,而 asp 使用 的是基于 win32 的 com 组件模型。 (4)脚本语言:jsp 可以使用 java 编程语言或 javascript 作为脚本语言,而 asp 使用 vbscript 或 jscript 作为脚本语言。 (5)安全性:jsp 使用 java 安全模型,而 asp 使用 windows nt 的安全结构。 (6)与 access 数据库的连接:jsp 使用 jdbc 建立与 access 数据库的连接,而 asp 对 access 数据库使用 data active objects。 (7)用户定制的标签:jsp 可以使用 湖北师范学院计算机科学与技术学院 2012 届学士学位论文(设计) 4 用户定制标签库进行扩充,而 asp 中没有用户定制标签库,asp 是不能扩充的。 2.2 java 组件 javabeans 2.2.1 什么是 javabeans javabeans 事实上有三层含义。首先,javabeans 是一种规范,一种在 java(包括 jsp)中使用可重复使用的 java 组件的技术规范。其次,javabeans 是一个 java 的类,一 般来说,这样的 java 类将对应于一个独立的.java 文件,在绝大多数情况下,这应该是一 个 public 类型的类。最后,当 javabeans 这样的一个 java 类在我们的具体的 java 程序中 被示例之后,我们有时也会将这样的一个 javabeans 的实例称之为 javabeans。 2.2.2 jsp 与 javabeans 的关系 使用 jsp 技术,web 页面开发人员可以使用 html 和 xml 标识来设计和格式化最终页 面。使用 jsp 标识或者小脚本生成页面上的动态内容。生成内容的逻辑被封装在 jsp 标 识和 javabeans 组件中,并且捆绑在小脚本中,所有的脚本在服务器端运行。核心逻辑 封装在标识和 beans 中,可以方便页面设计者编辑和使用 jsp 页面。 在服务器端,jsp 引擎解释 jsp 标识和小脚本生成所请求的内容(例如,通过访问 javabeans 组件,使用 jdbc 技术访问数据库),并且将结果以 html(或 xml)页面的形式发 送回浏览器。 绝大多数 jsp 页面依赖于可重用的跨平台的足见(javabeans 或者 enterprise javabeans 组件)来执行应用程序所要求的复杂的处理。这样的好处是开发人员能够共享 和交换执行普通操作的组件,加速了总体开发过程。因此,基于 web 的较为复杂的应用 程序(如 jsp 开发网站或网上 mis),jsp 的复杂架构必须由 javabeans 达成。 2.3 j2ee 概述 j2ee(java 2 platform enterprise edition)是使用 java 技术开发企业级应用的一 种事实上的工业标准(sun 公司出于其自身利益的考虑,至今没有将 java 及其相关技术纳 入标准化组织的体系),它是 java 技术不断适应和促进企业级应用过程中的产物。目前, java 平台有三个版本:适用于小型设备和智能卡的 j2me(java 2 platform micro edition)、适用于桌面系统的 j2se(java 2 platform standard edition)和适用于企 业级应用的 j2ee(java 2 platform 湖北师范学院计算机科学与技术学院 2012 届学士学位论文(设计) 5 enterprise edition)。sun 推出 j2ee 的目的是为了克服传统 client/server 模式的弊病, 迎合 browser/server 架构的潮流,为应用 java 技术开发服务器端应用提供一个平台独 立的、可移植的、多用户的、安全的和基于标准的企业级平台,从而简化企业应用的开 发、管理和部署。j2ee 是一个标准,而不是一个现成的产品。各个平台开发商按照 j2ee 规范分别开发了不同的 j2ee 应用服务器,j2ee 应用服务器是 j2ee 企业级应用的部署平 台。由于它们都遵循了 j2ee 规范,因此,使用 j2ee 技术开发的企业级应用可以部署在 各种 j2ee 应用服务器上。为了推广并规范化使用 j2ee 架构企业级应用的体系架构,sun 同时给出了一个建议性的 j2ee 应用设计模型:j2ee blueprints。j2ee blueprints 提供 了实施 j2ee 企业级应用的体系架构、设计模式和相关的代码,通过应用 j2ee blueprints 所描述的体系模型,能够部分简化架构企业级应用这项复杂的工作。j2ee blueprints 是开发人员设计和优化 j2ee 组件的基本原则,同时为围绕开发工作进行职能 分工给出了指导性策略,以帮助应用开发设计人员合理地分配技术资源。 j2ee 的优势主要有以下几点: (1)高效的开发: j2ee 允许公司把一些通用的、很繁琐的服务端任务交给中间件 供应商去完成这样开发人员可以集中精力在如何创建商业逻辑上,相应地缩短了开发时 间。高级中间件供应商提供以下这些复杂的中间件服务:状态管理服务 - 让开发人员写 更少的代码,不用关心如何管理状态,这样能够更快地完成程序开发。 (2)持续性服务 : 让开发人员不用对数据访问逻辑进行编码就能编写应用程序, 能生成更轻巧,与数据库无关的应用程序,这种应用程序更易于开发与维护。分布式共 享数据对象 cache 服务,让开发人员编制高性能的系统,极大提高整体部署的伸缩性。 (3)支持异构环境: j2ee 能够开发部署在异构环境中的可移植程序。基于 j2ee 的 应用程序不依赖任何特定操作系统、中间件、硬件。因此设计合理的基于 j2ee 的程序只 需开发一次就可部署到各种平台。这在典型的异构企业计算环境中是十分关键的。j2ee 标准也允许用户订购与 j2ee 兼容的第三方的现成的组件,把他们部署到异构环境中,节 省了由自己制订整个方案所需的费用。 (4)可伸缩性:企业必须要选择一种服务器端平台,这种平台应能提供极佳的可伸 缩性去满足那些在他们系统上进行商业运作的大批新用户。基于 j2ee 平台的应用程序可 被部署到各种操作系统上。例如可被部署到高端 unix 与大型机系统,这种系统单机可支 持 64 至 256 个处理器。 (这是 nt 服务器所望尘莫及的)j2ee 领域的供应商提供了更为广 湖北师范学院计算机科学与技术学院 2012 届学士学位论文(设计) 6 泛的负载平衡策略。能消除系统中的瓶颈,允许多台服务器集成部署。这种部署可达数 千个处理器,实现可高度伸缩的系统,满足未来商业应用的需要。 (5)稳定的可用性: 一个服务器端平台必须能全天候运转以满足公司用户、合作 伙伴的需要。这是实时性很强商业系统理想的选择。 2.4 关于 spring 2.4.1 spring 简介 spring 是一个开源框架,它由 rod johnson 创建。它是为了解决企业应用开发的复 杂性而创建的。spring 使用基本的 javabean 来完成以前只可能由 ejb 完成的事情。然而, spring 的用途不仅限于服务器端的开发。从简单性、可测试性和松耦合的角度而言,任 何 java 应用都可以从 spring 中受益。 目的:解决企业应用开发的复杂性 功能:使用基本的 javabean 代替 ejb,并提供了更多的企业应用功能 范围:任何 java 应用 简单来说,spring 是一个轻量级的控制反转(ioc)和面向切面(aop)的容器框架。 轻量从大小与开销两方面而言 spring 都是轻量的。完整的 spring 框架可以 在一个大小只有 1mb 多的 jar 文件里发布。并且 spring 所需的处理开销也是微不足道的。 此外,spring 是非侵入式的:典型地,spring 应用中的对象不依赖于 spring 的特定类。 控制反转spring 通过一种称作控制反转(ioc)的技术促进了松耦合。当应用 了 ioc,一个对象依赖的其它对象会通过被动的方式传递进来,而不是这个对象自己创建 或者查找依赖对象。你可以认为 ioc 与 jndi 相反不是对象从容器中查找依赖,而是 容器在对象初始化时不等对象请求就主动将依赖传递给它。 面向切面spring 提供了面向切面编程的丰富支持,允许通过分离应用的业务 逻辑与系统级服务(例如审计(auditing)和事务(transaction)管理)进行内聚性的 开发。应用对象只实现它们应该做的完成业务逻辑仅此而已。它们并不负责 (甚至是意识)其它的系统级关注点,例如日志或事务支持。 容器spring 包含并管理应用对象的配置和生命周期,在这个意义上它是一种 容器,你可以配置你的每个 bean 如何被创建基于一个可配置原型(prototype) ,你 湖北师范学院计算机科学与技术学院 2012 届学士学位论文(设计) 7 的 bean 可以创建一个单独的实例或者每次需要时都生成一个新的实例以及它们是如 何相互关联的。然而,spring 不应该被混同于传统的重量级的 ejb 容器,它们经常是庞 大与笨重的,难以使用。 框架spring 可以将简单的组件配置、组合成为复杂的应用。在 spring 中,应 用对象被声明式地组合,典型地是在一个 xml 文件里。spring 也提供了很多基础功能 (事务管理、持久化框架集成等等) ,将应用逻辑的开发留给了你。 所有 spring 的这些特征使你能够编写更干净、更可管理、并且更易于测试的代码。 它们也为 spring 中的各种模块提供了基础支持。 2.4.2 为什么需要 spring 你可能正在想“spring 不过是另外一个的 framework” 。当已经有许多开放源代码 (和专有) j2ee framework 时,我们为什么还需要 spring framework? spring 是独特的,因为若干个原因: 它定位的领域是许多其他流行的 framework 没有的。spring 关注提供一种方法管 理你的业务对象。 spring 是全面的和模块化的。spring 有分层的体系结构,这意味着你能选择使用 它孤立的任何部分,它的架构仍然是内在稳定的。因此从你的学习中,你可得到最大的价 值。例如,你可能选择仅仅使用 spring 来简单化 jdbc 的使用,或用来管理所有的业务对 象。 它的设计从底部帮助你编写易于测试的代码。spring 是用于测试驱动工程的理想 的 framework。 spring 对你的工程来说,它不需要一个以上的 framework。spring 是潜在地一站式 解决方案,定位于与典型应用相关的大部分基础结构。它也涉及到其他 framework 没有 考虑到的内容。 2.4.3 spring 带给我们什么 方便解耦,简化开发 通过 spring 提供的 ioc 容器,我们可以将对象之间的依赖关系交由 spring 进行控 制,避免硬编码所造成的过度程序耦合。有了 spring,用户不必再为单实例模式类、属 性文件解析等这些很底层的需求编写代码,可以更专注于上层的应用。 aop 编程的支持 湖北师范学院计算机科学与技术学院 2012 届学士学位论文(设计) 8 通过 spring 提供的 aop 功能,方便进行面向切面的编程,许多不容易用传统 oop 实 现的功能可以通过 aop 轻松应付。 声明式事务的支持 在 spring 中,我们可以从单调烦闷的事务管理代码中解脱出来,通过声明式方式灵 活地进行事务的管理,提高开发效率和质量。 方便程序的测试 可以用非容器依赖的编程方式进行几乎所有的测试工作,在 spring 里,测试不再是 昂贵的操作,而是随手可做的事情。 方便集成各种优秀框架 spring 不排斥各种优秀的开源框架,相反,spring 可以降低各种框架的使用难度, spring 提供了对各种优秀框架(如 struts,hibernate、hession、quartz)等的直接支 持。 降低 java ee api 的使用难度 spring 对很多难用的 java ee api(如 jdbc,javamail,远程调用等)提供了一个 薄薄的封装层,通过 spring 的简易封装,这些 java ee api 的使用难度大为降低。 java 源码是经典学习范例 spring 的源码设计精妙、结构清晰、匠心独用,处处体现着大师对 java 设计模式灵 活运用以及对 java 技术的高深造诣。spring 框架源码无疑是 java 技术的最佳实践范例。 如果想在短时间内迅速提高自己的 java 技术水平和应用开发水平,学习和研究 spring 源码将会使你收到意想不到的效果。 2.5 关于 b/s 开发模式 2.5.1 为什么引入 b/s 开发模式 b/s 开发模式 伴随着 internet 的迅速发展,计算机技术正在由基于 c/s(client/ server)模式的应 用系统转变为基于 b/s 模式的应用系统。 过去,网络软件的开发都采用 c/s(client)模式,在这种模式下,主要的业务逻辑都集 中于用户端程序,因此,必然导致以下问题: a) 系统安装、调试、维护和升级困难。由于用户端的硬件配置可能存在差异,软件环能 湖北师范学院计算机科学与技术学院 2012 届学士学位论文(设计) 9 各不相同,因此,在安装时,必须对每一个用户端分别进行配置,同样,在软件升级时 也要对用户端分别处理。 b) 在整个系统中,业务逻辑和用户界面都集中到了用户端,必然会增加安全隐患。 b/s 模式带来了巨大的好处: a) 开发成本及维护成本降低。由于 b/s 架构管理软件只安装在服务器端(server)上, 即应用程序在部署、升级、维护时,只需要在服务器端进行配置就可以了,网络管理人 员只需要管理服务器就行了,用户界面主要事务逻辑在服务器(server)端完全通过 www 浏览器实现,极少部分事务逻辑在前端(browser)实现,所有的用户端只有浏览器,网 络管理人员只需要做硬件维护。 b) 良好的安全性能,防火墙技术可以保证后台数据库的安全性。所有的配置工作都集中 在服务器端且所有用户端请求都是通过 dbms 来访问数据库,从而大大减少了数据直接暴 露的风险。 2.6 mysql 数据库 2.6.1 mysql 的特点 mysql 是一种开放源代码的关系型数据库管理系统(rdbms) ,mysql 数据库系统使用 最常用的数据库管理语言-结构化查询语言(sql)进行数据库管理。 由于 mysql 是开放源代码的,因此任何人都可以在 general public license 的许可 下下载并根据个性化的需要对其进行修改。mysql 因为其速度、可靠性和适应性而备受关 注。大多数人都认为在不需要事务化处理的情况下,mysql 是管理内容最好的选择。它使 用系统核心提供的多线程机制提供完全的多线程运行模式,提供了面向 c、c+、eiffel、java、perl、php、python 以及 tcl 等编程语言的编程接口(apis) , 支持多种字段类型并且提供了完整的操作符支持查询中的 select 和 where 操作。 目前 mysql 被广泛地应用在 internet 上的中小型网站中。由于其体积小、速度快、 总体拥有成本低,尤其是开放源码这一特点,许多中小型网站为了降低网站总体拥有成 本而选择了 mysql 作为网站数据库。 2.6.2 mysql 的安装和配置(部分截图) 湖北师范学院计算机科学与技术学院 2012 届学士学位论文(设计) 10 图 2-4mysql 安装图(开始) 安装时一般采用默认路径: 图 2-5mysql 安装图(路径) 湖北师范学院计算机科学与技术学院 2012 届学士学位论文(设计) 11 图 2-6 sql 安装图(数据库类型) 为了支持中文,在下面的列表框中学者 gb2312(切记) 图 2-7mysql 安装图(语言) 图 2-8mysql 安装图(等待成功) 湖北师范学院计算机科学与技术学院 2012 届学士学位论文(设计) 12 2.7 tomcat 服务器 2.7.1 tomcat 服务器简介 tomcat 是一个免费的开源的 serlvet 容器,它是 apache 基金会的 jakarta 项目中的 一个核心项目,由 apache,sun 和其它一些公司及个人共同开发而成。由于有了 sun 的 参与和支持,最新的 servlet 和 jsp 规范总能在 tomcat 中得到体现。 tomcat 中采用 了 servlet 容器:catalina,完整的实现了 servlet2.3 和 jsp1.2 规范。tomcat 提供了 各种平台的版本供下载,可以从其官方网站上下载其源代码版或者二进制版。由于 java 的跨平台特性,基于 java 的 tomcat 也具有跨平台性。 2.7.2 tomcat 的特点 在 tomcat 中,应用程序的部署很简单,你只需将你的 war 放到 tomcat 的 webapp 目 录下,tomcat 会自动检测到这个文件,并将其解压。你在浏览器中访问这个应用的 jsp 时,通常第一次会很慢,因为 tomcat 要将 jsp 转化为 servlet 文件,然后编译。编译以 后,访问将会很快。另外 tomcat 也提供了一个应用:manager,访问这个应用需要用户 名和密码,用户名和密码存储在一个 xml 文件中。通过这个应用,辅助于 ftp,你可以在 远程通过 web 部署和撤销应用。当然本地也可以。 2.7.3 tomcat 的优势 tomcat 不仅仅是一个 servlet 容器,它也具有传统的 web 服务器的功能:处理 html 页面。但是与 apache 相比,它的处理静态 html 的能力就不如 apache.我们可以将 tomcat 和 apache 集成到一块,让 apache 处理静态 html,而 tomcat 处理 jsp 和 servlet.这 种集成只需要修改一下 apache 和 tomcat 的配置文件即可。 2.7.4 tomcat 服务器的安装和配置 在开始安装之前,先准备 j2sdk 和 tomcat 两个软件,如果已经安装了 j2sdk,就只 需 tomcat 即可。 (1)需设置的环境变量 变量名:catalina_home 变量值:d:program filestomcat6.0 变量名:classpath 湖北师范学院计算机科学与技术学院 2012 届学士学位论文(设计) 13 变量值:.;%java_home%lib;%catalina_home%commonlib (2)安装完成后,打开 tomcat 服务器,启动浏览器,在地址栏上输入: http:/localhost:8080/ 若出现以下界面说明安装成功。 图 2-9 tomcat 启动页面 小结 本章全面介绍本系统所用到的关键技术和工具,其中 jsp 作为 javaweb 开发的基础, 对它的运行机制要理解,同时还要明白它的优劣势;j2ee 作为开发的标准也作了简单介 绍。而 ssh(struts+spring+hibernate)作为本系统的核心与亮点技术,更是作了详细介 绍,要掌握他们的工作原理,主要功能。最后介绍了本系统使用的数据库 mysql 以及 tomcat 服务器的安装与配置。只有掌握了这些技术基础,才能使本系统的开发正常进行。 3.1 系统功能需求 湖北师范学院计算机科学与技术学院 2012 届学士学位论文(设计) 14 图 3-1 系统功能模块 如图 3-1 所示,在本系统中主要阐述用户管理、考试管理、成绩管理、题目管理四个 模块。 (1)考试管理:实现选择课程,准备考试,开始考试,自动阅卷,显示考试成绩等。 (2)题目管理:实现试题库中试题的分类和增加,删除,以及答案的设置等。 (3)成绩管理:实现前台用户的成绩查询,后台管理员对成绩的查询。 (4)用户管理:实现用户注册、用户信息修改、用户查询功能。 3.2 系统角色及其功能分析 3.2.1 系统的 2 个角色: (1)注册用户 (2)管理员 3.2.2 系统角色的功能 (1)注册用户 使用系统的功能,用户必须先注册,只要注册为网站用户后,获得自己的帐号,设 置自己的密码就具有以下功能:登录,登出,参加考试,提交试卷,查询成绩,添加或 修改个人资料。 (2)管理员 湖北师范学院计算机科学与技术学院 2012 届学士学位论文(设计) 15 管理员可以对试题属性进行设置、对用户资料的查看,删除等,以及对成绩的查询 等 3.3 总体设计思想概述 本系统是基于 b/s 架构下的多层结构应用系统。b/s(browser/server)结构即浏览器 和服务器结构。它是随着 internet 技术的兴起,对 c/s 结构的一种变化或者改进的结构。 在这种结构下,用户工作界面是通过 www 浏览器来实现,极少部分事务逻辑在前端 (browser)实现,但是主要事务逻辑在服务器端(server)实现,形成所谓三层 3-tier 结 构。这样就大大简化了用户端电脑载荷,减轻了系统维护与升级的成本和工作量,降低 了用户的总体成本(tco) 。 在软件体系架构设计中,分层式结构是最常见,也是最重要的一种结构。推荐的分 层式结构一般分为三层,从下至上分别为:数据访问(持久)层、业务逻辑层(或称为 领域层) 、表示层,如图 3-2: 图 3-2 系统架构 总的来说,采用分层结构的设计思想,可以让每个层由一组相关的类或组件构成, 共同完成特定的功能。层与层之间存在自上而下的依赖关系,上层组件会依赖下层组件 的 api,而下层组件则不依赖于上层组件。例如:表述层依赖于业务逻辑层,而业务逻辑 层依赖于数据库层。并且每个层对对上层公开 api,但具体的实现细节对外透明。当某一 湖北师范学院计算机科学与技术学院 2012 届学士学位论文(设计) 16 层发生变化,只要 api 不变,不会影响其他层的实现。 在本系统中,使用开源的 mysql 数据库,持久层用到 spring 所集成的 hibernate 技 术,业务逻辑层用普通 javabean 实现,表述层运用基于 struts 的 mvc 设计模式 (struts 用来做 c 层,spring 实现 v 层与 c 层的解耦以及 c 层与 m 层的解耦) 。 3.4 数据库设计 3.4.1 e-r 图 下面是该系统数据库表的 e-r 图,如图 3-4 图 3-4 e-r 图 3.4.2 数据表的设计 下面列出了设计过程中所用到的数据库表及其结构: 1.cou_tb 表用来保存课程的信息,如表 3-1: 1.cou_tb 列名类型长度描述 idbigint8 课程 id namevarchar60 课程名称 jointimedatetime8 加入时间 表 3-1 cou_tb 湖北师范学院计算机科学与技术学院 2012 届学士学位论文(设计) 17 2.man_tb 表用来保存管理员信息,如表 3-2: 2.man_tb 列名类型 长度描述 idbigint8 管理员 id namevarchar30 管理员名字 pwdvarchar30 管理员密码 表 3-2 man_tb 3.title_tb 表用来保存考试题目,如表 3-3: 3.title_tb 列名类型 长度描述 idbigint8 试题 id subjectvarchar50 科目名 typechar8 试题类型 jointimedatetime8 加入时间 lessonidint4 课程 id taotiidbigint8 套题 id optionavarchar50 选项 a optionbvarchar50 选项 b optioncvarchar50 选项 c optiondvarchar50 选项 d answervarchar10 答案 notevarchar50 备注 表 3-3 title_tb 4. stu_tb 表用来保存用户个人资料,如表 3-5: 4.stu_tb 列名类型 长度描述 idvarchar16 学生 id namevarchar20 学生姓名 pwdvarchar20 登陆密码 classvarchar50 班级 表 3-4 stu_tb 5class_tb 表用来保存学生考试成绩,如表 3-5: class_tb 列名类型 长度描述 class_idint4 班级编号 class-namevarchar16 班级名 表 3-5 class_tb 湖北师范学院计算机科学与技术学院 2012 届学士学位论文(设计) 18 3.5 系统的类设计 3.5.1 dao 类设计 图 3-4 dao 类设计 如图 3-4,通过这个工厂获取对应的 dao,然后使用 dao 进行数据库操作。 3.5.2 conndb 类设计(部分) 图 3-5 conndb 类设计 这些实体类将通过 servlet 映射到数据库中 3.5.3 过滤器类设计 湖北师范学院计算机科学与技术学院 2012 届学士学位论文(设计) 19 图 3-6 过滤器类设计 1 如图 3-6,这是编码过滤器类,通过他可保证页面不出现乱码问题。 图 3-7 过滤器类设计 2 如图 3-7,这是登陆安全过滤器类,通过它来达到控制访问权限的功能。 3.5.4 监听器类设计 如图

温馨提示

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

评论

0/150

提交评论