1、Smart 系统公共资源模块的设计与开发摘 要随着教育改革的不断深化,中小学的建设与发展对国民整体素质的提高起着越来越重要的作用,拥有一套适合校情的在线考试评估系统、将信息技术用于校务管理评估中便是迫切的要求。SMART 系统是一个在线考试信息管理系统,该系统主要实现了学生在线考试与评估以及教师对学生在线考试信息的管理和维护。本文涉及到的公共资源模块,它作为 SMART 项目的一个组成部分,占有十分重要的作用,它是后面所有模块的基础,这个模块的设计质量关系到整个系统的开发质量。为保持系统的先进性、灵活性、安全性和扩展性,模块采用MVC 架构以及 Struts、Spring、Jsp、Hibern
2、ate 等等一些目前流行的技术和组件。整个模块包括地区资源、教务资源、试题资源、试卷资源等功能模块。通过这些模块的应用,可以满足 SMART 系统的公共需求,对 SMART 系统的应用和发展起到一定的促进作用。关键词:统计评估;Struts;Jsp ;Hibernate ;SpringThe Smart systemThe Design and Implementation of the Public Resources ModuleAbstractWith the continuous deepening of educational reform, the construction and
3、 development of elementary and middle schools play an increasingly important role to raise the overall quality. Having one automatic Online test system which is used in the school Appraisal management is an urgent requirement. SMART system is an information management system about Online examination
4、, the system is mainly about the examination and evaluation of students and the teachers management and maintenance of students examination information on network.The public resource module which is a part of the SMART system has the extremely vital role in the wholes system. It is foundation module
5、s of system framework, so this modules designing quality relates the overall systems quality. In order to keep the advanced, agility, security and expansibility, the MVC framework, the Struts, the Spring, the Jsp and the Hibernate and so on the prevailing technologies and components are used in the
6、system. The whole module includes the academic resources module, the questions resources module, the papers resources module and so on. Through the research results of this subject, the system combines the present education; promote the development prospect of the educational trade.Key words: statis
7、tics and appraisal; Struts; Jsp; Hibernate; Spring目 录论文总页数:29 页1 引言 .11.1 课题起源 .11.2 课题目的 .11.3 课题意义 .12 系统实现架构环境与技术说明 .12.1 系统架构 .12.2 系统实现环境和技术 .22.2.1 开发环境 .22.2.2 运行环境 .22.3 系统框架说明 .22.3.1 struts 介绍 .22.3.2 理解 MVC 设计模式 .52.3.3 spring 介绍 .52.3.4 hibernate 组件介绍 .62.3.5 jsp 组件介绍 .62.3.6 SQL Server
8、2000 介绍 .72.3.7 Tomcat 介绍 .83 功能需求分析 .93.1 功能需求 .93.1.1 公共资源管理 .93.1.2 教务资源管理 .93.1.3 试题资源管理 .93.1.4 试卷资源管理 .93.2 非功能需求 .94 数据库设计 .105 系统模块的设计与实现 .135.1 系统模块的设计 .135.1.1 公共资源管理模块设计 .135.1.2 教务资源管理模块设计 .145.1.3 试题资源管理模块设计 .155.1.4 试卷资源管理模块设计 .155.2 系统模块的实现 .155.2.1 公共资源管理模块实现 .165.2.2 教务资源管理模块实现 .205
9、.2.3 试题资源管理模块实现 .215.2.4 试卷资源管理模块实现 .246 测试 .25结 论 .26参考文献 .27致 谢 .28声 明 .29第 1 页 共 29 页1 引言1.1 课题起源随着社会的发展,计算机的普及,将教育产业信息化成为可能而且这种呼声也越来越高,传统的考试、统计、评估、管理工作也越来越显的繁重和笨拙,传统的这些操作,即费时又费力,而且容易出错,工作效率较低,并且不管统计、评估还是管理工作合理性都不好。因此,拥有一套实用、高效、完善的评估管理软件就显得尤为重要了,它可以提升学校的教育质量和教学管理质量,提高工作效率,降低行政成本。SMART 在线考试系统目的是为中
10、小学生提供在线考试、在线评估的智能化平台,并为学校、主管部门教学评估、教学质量控制提供决策依据。该软件系统内含在线考试评估子系统。本软件产品是一项独立的软件,而且全部内容自含。1.2 课题目的设计一套符合中小学生实际情况、完整统一、技术先进、高效稳定、安全可靠的基于 C/S 架构的智能化的在线考试、在线评估的系统,并为学校、主管部门教学评估、教学质量控制提供决策依据的一个平台。1.3 课题意义作为在中小学生,在线考试系统更趋于公证、客观、针对性,更能激发学生的学习兴趣和热情;作为老师,大大减轻了出卷,阅卷,评卷,以及统计,评估、管理等等工作负担,从而大大提高了工作效率。2 系统实现架构环境与技
11、术说明2.1 系统架构系统在选用结构的时候,有 B/S、C/S、Smart Client(智能客户端)三种可能的方案。它们各有各的优缺点。 B/S 架构B/S 架构的优点在于客户端和服务器通过 Intranet 进行数据交换,客户端基于统一的 WEB 浏览器,减少了投资,解决了系统维护升级的问题,另外只有极少部分事务逻辑在前端(Browser)实现,但是主要事务逻辑在服务器端(Server)实现,这也就充分保护了数据的安全。虽然如此,B/S 结构还是有很多的不足,其中最大的缺点是在界面操作上具有很大局限性,用起来很难,开发起来也很费钱。 C/S 架构采用 C/S 结构可以减轻服务器运行数据负荷
12、,数据的储存管理也较为透明,最重要的是开发较为迅速。而它的缺点也是不少,它会造成高昂的维护成本,第 2 页 共 29 页且投资大,维护不方便。在实际开发中,部署不如 B/S 方便。但由于它能快速开发出较为使用的用户界面,而且可以将部分运算转移到客户端来,所以是一个值得考虑的方案。 Smart ClientSmart Client 是下一代客户端软件的代表,它可以充分利用终端设备的优势(Full PC、PDA、Phone) 、能够调用 Web Service、支持在线和离线两种状态、能够如同 Web 应用程序一般简单方便的部署。由于这套系统的目标客户是教务处负责排课的老师,因此它不会涉及到对终端
13、设备的支持,但是方便部署这一点确实需要的,因为这正是 C/S 的缺点。2.2 系统实现环境和技术2.2.1 开发环境 集成开发环境: JDK5.0+Eclipse3.1+MyEclipse4.0+Tomcat5.5.15 + SQLServer2000 开发语言: Java、SQL2.2.2 运行环境 服务器操作系统:Windows2000 server 应用服务器系统:tomcat5.0+jre5.0 数据库管理系统:SQL Server 2000 客户端操作系统:Windows 任意版本 客户端浏览器:Microsoft IE5.0 以上2.3 系统框架说明Smart 在线考试项目(以下简
14、称“Smart” ),将在 struts+sprintg 管理的hibernate 作为平台框架搭建具体的 Smart 在线考试业务系统。采用 struts MVC 框架主要用于将 Smart 的数据流和业务流分开,采用hibernate,主要用于更高效率对数据库存取效率及提高项目开发效率。采用spring 管理的 hibernate 主要主要是获得 Spring 对 Hibernate 的支持,获得更高的开发效率和更高的 Hibernate 操作性能。并能获得 Spring 相关的事务支持。之所以不完全用 Spring 框架是考虑项目组的技术水平可能不足以完全驾驭这样的框架规范。所以本系统不
15、属于标准的 Struts + Spring + Hibernate 的标准 J2EE 应用。具体框架版本:Struts 1.2 + hibernate 2.1。对于 Hibernate 的数据库 IO 操作,将采用 DAO 模式将操作封装至 DAO 对象中。而将建立专门的业务层,对 WEB 层及其他子模块或类进行接口。第 3 页 共 29 页2.3.1 struts 介绍The Jakarta Struts 项目是由 Apache Software Foundation 发起的开源项目,它在 java 服务器端实现了 MVC(Model-View-Controller)设计模式。The Jak
16、arta Struts 项目最初是由 Craig McClanahan 在 2000 年五月创建的,但后来被开源组织所接收。The Jakarta Struts 作为一个开源框架的主要意图是为了在创建 WEB 应用时能比较容易的分离表示层和业务数据层。自从它诞生以来收到大量开发人员的支持,并很快的成为开源社区中一个重要的成员。图 2-1 Web 层及其他子模块层Struts 最早作为 Apache Jakarta 项目的组成部分问世。这个名字来源于在建筑和旧式飞机中使用的支持金属架。它产生的目的是为了帮助开发者减少运用 MVC 设计模式来开发 Web 应用的时间。Struts 框架是基于 JA
17、VA 技术的,开发人员通过 Struts 框架可以充分利用代码重用和“一次编写、到处运行”的优点。它提供了一种创建 Web 应用程序的框架,其中对应用程序的显示、表示和数据的后台代码进行了抽象。Struts 是一个比较好的 MVC 框架,继承了 MVC 的各项特性,并根据 J2EE的特点,做了相应的变化和扩展。它采用的主要技术是 Servlet,JSP 和 tag library。Struts 架构是围绕一个 Action Mapping 把 HTTP 消息形式的用户请求转换成应用程序的动作。Action Mapping 创建了一个 Action 对象来处理请求。一旦 Action 对象完成了
18、一个任务,它就通过在一个 JSP 页面上写结果来直接回应一个用户请求,或者它可以让一个引用程序流动到其他地方做回应。数据库Hibernate 平台DAO 类(被 Spring 管理) Spring 平台业务层(Service 类)WEB(Action、page)第 4 页 共 29 页Struts 作为一个 MVC 的框架,对 Model、View 和 Controller 都提供了响应的实现组件,对此分别做介绍,并且看看他们是如何结合在一起的。Controller:控制器的作用是从客户端接受请求,并且选择执行相应的业务逻辑,然后把响应结果送回到客户端,在 Struts 中由 ActionSe
19、rvlet 和ActionMapping 对象组成。Model:struts 为 Model 部分提供了 Action 和 ActionForm 对象。Struts建议在实现是把“做什么”(Action)和“如何做”(业务逻辑)分离。View:Struts 应用中的 View 部分是通过 JSP 技术实现的。Struts 提供了自定义的标记库可以使用,通过这些自定义标记可以非常好地和系统的 Model 部分交互,通过使用这些自定义表创建的 JSP 表单,可以实现和 Model 部分中的ActionForm 的映射,完成对用户数据的封装,同时这些自定义标记还提供了像模板定制等多种显示功能。在这章
20、节,我们简要的画出一幅和 MVC 模式对应的 STRUTS 框架图 2-2:视图 view1模型 moduleView2Action ServletAction1Action4Action3Action2图 2-2 struts 框架图图 2-2 是 Struts 框架下应用程序请求流通过的路径。这个处理过程由 5 个基本的步骤组成。下面是处理步骤的描述。1由显示视图产生一个请求。2请求被 ActionServlet(控制器)接收,它在 struts-config.xml文件中寻找请求的 URI,找到对应的 Action 类后,Action 类执行相应的业务逻辑。3Action 类执行建立在模
21、型组件基础上的业务逻辑,模型组件是和应用程序关联的。第 5 页 共 29 页4 一旦 Action 类处理完业务逻辑,它把控制权返回给ActionServlet。,Action 类提供一个键值作为返回的一部分,它指明了处理的结果。ActionServlet 使用这个键值来决定在什么视图中显示 Action的类处理结果。5 当 ActionServlet 把 Action 类的处理结果传送到指定的视图中,请求的过程也就完成了。2.3.2 理解 MVC 设计模式为了更深刻的理解 Struts 框架,你必须先理解 MVC 设计模式,Struts 技术就是基于 MVC 设计模式的。MVC 设计模式起源
22、于 Smalltalk 语言,它由以下三个部分组成:模型(model),视图(view),控制器(Controller)。表2.1 定义了这些组件。表 2-1 Mvc 组件表组件 描述模型(model) 封装数据对象。模型用来封装和显示数据对象。视图(view) 作为模型的显示,它表示数据对象的当前状态控制器(Controller)定义对用户的输入执行相应操作的接口,它用来操作模型(model)和数据对象使用 MVC 的好处包括如下:可靠性:表示层和业务层别分离,这样就允许你更改你的表示层代码而不用重新编译你的模型(model)和控制器(Controller)代码。高重用和可适应性: MVC
23、模式允许你使用各种不同样式的视图来访问同一个服务器端的代码。它包括任何 WEB(HTTP)浏览器或则无线浏览器(WAP)。较低的生命周期成本:MVC 使降低开发和维护用户接口的技术含量成为可能。快速的部署:开发时间会得到相当大的缩减,它使程序员(java 开发人员)集中精力于业务逻辑,界面程序员(HTML 和 JSP 开发人员)集中精力于表现形式上。 可维护性: 分离表示层和业务逻辑层也使得基于 Struts 的 Web 应用更易于维护和修改。第 6 页 共 29 页2.3.3 spring 介绍根据 Spring 的官方网站描述, “Spring 是一种多层的 J2EE 应用程序框架,它是以
24、 Rod Johnson 编著的 Expert One-on-One J2EE Design and Development书的代码为基础发展而来的。 ”Spring 的核心,提供一种新的机制来管理业务对象及其依赖关系。例如,利用 loC(反转控制),你可以指定一个 DAO(Data Access Object,数据访问对象)类依赖一个 DataSource 类。它也允许开发人员通过接口编程,使用 xml 文件来简单的定义其实现。Spring 有很多类用来支持其它的框架(如 Hibernate 和 Struts),这使得集成变得易如反掌。Spring 既是全面的又是模块化的。Spring 有分
25、层的体系结构,这意味着你能选择仅仅使用它任何一个独立的部分,而它的架构又是内部一致。因此你能从你的学习中,得到最大的价值。例如,你可能选择仅仅使用 Spring 来简单化JDBC 的使用,或用来管理所有的业务对象。它的设计从一开始就是要帮助你编写易于测试的代码。Spring 是使用测试驱动开发的工程的理想框架。 2.3.4 hibernate 组件介绍Hibernate 是一个免费的开源 Java 包,它使得与关系数据库打交道变得十分轻松,就像您的数据库中包含每天使用的普通 Java 对象一样,同时不必考虑如何把它们从神秘的数据库表中取出(或放回到数据库表中) 。它解放了您,使您可以专注于应用
26、程序的对象和功能,而不必担心如何保存它们或稍后如何找到它们。大多数应用程序都需要处理数据。Java 应用程序运行时,往往把数据封装为相互连接的对象网络,但是当程序结束时,这些对象就会消失在一团逻辑中,所以需要有一些保存它们的方法。有时候,甚至在编写应用程序之前,数据就已经存在了,所以需要有读入它们和将其表示为对象的方法。手动编写代码来执行这些任务不仅单调乏味、易于出错,而且会占用整个应用程序的很大一部分开发工作量。这类工具有很多,从昂贵的商业产品到内置于 J2EE 中的 EJB 标准。然而,在很多情况下,这些工具具有自身的复杂性,使得开发人员必须学习使用它们的详细规则,并修改组成应用程序的类以满足映射系统的需要。由于这些工具为应付更加严格和复杂的企业需求而不断发展,于是在比较简单和常见的场景中,使用它们所面临的复杂性反而盖过了所能获得的好处。这引起了一场革命,促进了轻量级解决方案的出现,而 Hibernate 就是这样的一个例子。