摘要:该文通过市场调研和需求分析,采用Struts 和Hibernate架构设计,设计并实现了一个基于J2EE技术的教学资源库系统,主要包括资源上传、Ajax异步检测、图片预览、文本预览、音视频在线播放等功能。实现教学资源的充分共享,促进资源的交流与更新,提高教学资源的利用率。
关键词:J2EE;教学资源库;Ajax
中图分类号:TP311 文献标识码:A 文章编号:1009-3044(2013)01-0059-04
1 绪论
近几年,随着我国的教育信息化的开展,远程教育和网络教育也迅速发展起来。目前开展网络教育的机构和参加远程教育的人数呈现逐年上升的趋势,网络教育正成为全球性教育培训的潮流[1-2]。高效、优质的网络教学资源是开展网络教育的基础,因此,设计与开发现代化的教育资源库是现代化教育发展的需要。而且在信息化时代,知识更新的速度加快,作为教育者,有责任和义务向学生提供反应时代发展的最新知识,而传统教材体系与结构的相对稳定性,限制了这一愿望的实现。因此,人们日益重视进行网络教学资源的开发,来弥补传统教材存在的种种缺陷和不足。
2 关键技术介绍
2.1 MVC模式
为了达到软件设计的“高内聚,低耦合”的目标,Web开发应用都采用易扩展、易资源分配的模式,应用最广泛的就是MVC分层架构设计模式,其中Model层用以实现系统中的业务逻辑,通常用JavaBean或EJB来实现;View层用以与用户的交互,通常用JSP来实现;Controller层是Model与View之间沟通的桥梁,它可以分派用户的请求并选择恰当的视图以用于显示,同时它也可以解释用户的输入并将它们映射为模型层可执行的操作[3-4]。MVC模式原理如图1所示。
2.2 AJAX技术
Ajax是Asynchronous JavaScript and XML(以及 DHTML 等)的缩写。Ajax 由HTML、JavaScript 技术、DHTML 和DOM组成,可以将笨拙的Web 界面转化成交互性的 Ajax 应用程序。
Ajax是用来描述一组技术的,它使浏览器可以为用户提供更为自然地浏览体验。在Ajax之前,Web站点强制用户进入提交—等待—重新显示的范例,用户的动作总是与服务器的“思考时间”同步。Ajax提供与服务器异步通信的能力,从而使用户从请求响应的循环中解脱出来[5]。借助于Ajax,可以在用户单击按钮时,使用JavaScript和CSS来相应地更新UI,而不是刷新整个页面。更重要的是,用户甚至不知道浏览器正在与服务器通信,Web站点看起来是即时响应。
3 需求分析
需求分析工作是软件生存期中重要的一步,也是决定性的一步。这一步是否成功,直接关系到开发出来的软件产品能否得到用户认可以及用户能否真正运用产品解决业务或管理问题。在这个阶段中应当充分了解用户的各种情况,包括用户的工作流程。
本系统主要用于实现资源的共享。前台页面给普通用户(例如教师)提供信息,可以对资源进行搜索、查看和下载,而后台则需要系统管理员进行具体操作,普通管理员和超级管理员分别有自己的管理权限。
具体功能说明如下:
1)用户管理模块:主要包括普通用户管理、普通管理员管理、超级管理员管理。通过对本系统的三类用户进行权限的设定与管理,可以使不同类型的分组具有不同的模块管理权限。超级系统管理员负责系统的日常维护工作,可以查看、添加、删除、修改其他任意用户;上传、下载、修改、删除资源;添加、删除、修改和查看学科;可以对公告进行添加、查看、和删除操;备份和恢复数据库;可以对普通用户留言进行查看和删除操作。而一般管理员只能管理普通用户,不能对学科和数据库进行任何操作,另外增加了个人信息管理。普通用户可以在前台资源分类和学科分类中浏览和下载各种资源;可以查看公告;可以查看和修改个人信息,如个人密码等;可以给系统留言。
2)资源管理模块:主要分为文本资源、图形资源、音频资源、视频资源、动画资源、课件资源六个部分。超级管理员和普通管理员都可以针对不同的资源进行上传、下载、修改、删除和查看等操作。各种资源上传的时候都必须按照要求的格式和大小进行操作。
3)学科管理模块:由超级管理员负责对学科进行添加,修改和删除操作。普通管理员和普通用户则没有学科管理权限。
4)公告管理模块:管理员和超级管理员都可以发布公告。具体可以针对公告进行添加、删除、修改和浏览等操作。
5)留言管理模块:主要针对前台用户留言的管理模块。针对用户留言,普通管理员和超级管理员都可以进行查看和删除操作。
6)数据库管理模块:为了防止意外灾难如断电等对系统造成严重危害的事件的发生,超级管理员可以事先对数据库进行备份操作,之后可以进行还原操作。普通管理员则没有管理权限。
7)系统说明模块:管理员可以查看系统的功能说明和使用说明。
4 系统设计
4.1 系统设计目标
本文旨在利用当前社会上开源的Struts框架和Hibernate数据持久化技术相整合的框架实现应用系统的设计与开发。为了实现系统结构的清晰明了,并且完成快速开发,本系统的设计采用目前流行的MVC三层架构模式,在开发过程中使用Struts和Hibernate来处理页面逻辑和对象的持久化工作。本系统是基于B/S体系结构的,用户能够简单地通过浏览器对信息进行编辑、更新并查询,使信息管理更为便捷和实时。
本系统以Windows XP为Web平台,JSP+Struts+Hibernate为实现技术,建立基于MySQL数据库系统的核心动态页面,实现教学资源库系统的各项功能。
4.2 系统架构设计
本系统的架构划分为四个层次:表示层、业务逻辑层、持久层和数据库层。基于这种体系结构的设计采用Struts作为系统的开发框架,然后将Hibernate数据持久技术集成到Struts框架中作为了数据持久层。
1)表示层
表示层是四层设计结构中的第一层,主要提供用户的操作界面。采用Struts框架技术实现,通过调用action与业务逻辑层交互。表示层主要完成两个功能:接受用户的输入和呈现用户信息。
2)业务逻辑层
业务逻辑层是应用的核心所在,它的主要功能是实现用户交互和数据显示。采用Java Bean向Hibernate的持久层请求处理核心服务,并显示处理结果。
3)持久层
持久层是在业务逻辑层与数据层之间增加的一层,实现对象与关系数据库之间的映射。数据库持久层提供数据的保存、更新、删除和查询等操作。利用这个映射机制,对象与关系数据库之间的转换就可以透明地进行,而不用去关心数据库连接、并发性、事务等问题。业务逻辑层直接获取或存储的是清晰的对象,中间的转换过程交给映射框架来处理。
4)数据库层
数据库层主要完成业务数据的存储和管理功能。为了更好地管理这些数据,需要将数据实体转换为对象进行封装。Hibernate负责持久层与数据库的通信,利用实体到数据库的映射,对持久对象进行操作,并将缓存中的结果同步到数据库。
系统开发架构图如图2所示。
5 系统实现
5.1 用户管理模块
用户管理主要包括超级管理员管理,普通管理员管理和普通用户管理。通过对本系统的三类用户进行权限的设定与管理,可以使不同类型的分组具有不同的操作权限。登录管理模块是系统的非常重要的一部分,不同角色的用户登录到不同的功能页面才能保证权限的分工。下面以权限分配为例,介绍具体实现过程。
系统的管理有超级管理员和普通管理员两种角色,在管理员登录系统的时候选择各自的角色进入系统,进行不同的权限操作。权限分配过程中管理员进入后台登录界面,输入用户名和密码,在下拉列表里选择角色,点击登录按钮进入系统。此时adminlogin.do动作提交给ActionServlet,根据struts-config.xml中的相应配置找到Action处理类AdminAction接收表单数据,调用ManagerDAO类进行用户名和密码验证,验证通过则继续判断角色,验证成功进入主页面,验证失败提示错误信息,重新登录。
5.2 资源管理模块
资源管理包括文本资源管理、图形资源管理、音频资源管理、视频资源管理、动画资源管理、课件资源管理六个部分。管理员和超级管理员都可以对各种资源进行上传、下载、删除和搜索等操作,涉及的功能主要有资源名称异步检测,上传功能,文本预览功能,图片预览功能,音视频在线播放等。
1)资源名称异步检测
由于上传的文件很多,为避免文件名重复引起的严重后果,需要对资源名称进行检测。为了不刷新整个页面而达到目的,需要使用异步验证技术,目前异步检测机制主要有DWR、Jquery和Ajax三种[6],本系统采用Ajax异步检测机制来实现对上传资源文件名称的异步校验。以文本资源名称检测为例,首先管理员输入资源名称,当鼠标失去焦点时就可以自动调用CheckText()方法触发Ajax异步检测机制。CheckText()方法调用TextDAO类对数据表Tbtext中的文本资源名称进行遍历,检测数据库中是否含有与当前输入的名称重复的,如果有返回False,没有则返回True。之后JavaScript中xmlHttp.responseText方法检索到返回值,根据结果给出名称可用或者重名错误的信息提示。从而达到无需提交表单即可实现与服务器异步交互的效果。资源名称异步检测效果图如图3所示。
2)上传功能
本系统资源都需要管理员上传到服务器,达到资源共享的目的。上传时候要有类型和大小等方面的限制,不同类型的资源要放到的服务器不同的位置,以便达到合理分类,查找方便的目的[7-8]。本系统采用Struts集成的upload类实现上传机制。管理员进入文本资源列表页面,点击上传文本按钮进行上传操作,这时struts-config配置文件根据提交的Admin/textDisAction.do动作转到textUpLoad.jsp文本上传页面。管理员输入资源名称,当鼠标失去焦点时候,系统调用Ajax异步验证机制进行检测,如果名称可用给出成功提示,继续操作;如果失败提示重名错误,重新输入;如果没有输入,则提示名称不能为空。然后管理员选择文件路径,如果不输提示选择路径,之后填写内容简介和所属学科,最后点击上传按钮提交表单,进行上传。
提交表单后ActionServlet根据path路径到struts- config.xml中寻找相匹配的路径。接着,执行Action中的execute()方法,获取传递的表单信息。然后调用DAO中的upLoadTextFile方法验证文件的格式、大小等信息,验证通过则根据ActionForward的返回路径转到成功页面,失败则跳转到失败页面。
5.3 学科管理模块
学科管理包括浏览学,添加学科,修改学科和删除学科。由超级管理来统一管理和进行相关操作,普通管理员则没有操作权限。添加新的学科后系统前台菜单会自动更新,新上传的属于该学科的资源也会及时更新,便于用户及时地下载学习。下面以浏览学科信息为例说明其实现过程。
管理员在学科管理菜单中点击学科管理,则跳转到学科信息列表页面。点击浏览学科菜单,Struts的核心ActionServlet根据path路径到struts-config.xml中寻找相匹配的路径。接着,执行Action中的execute()方法,获取所传递的一组数据值,将其保存在数组中。最后,调用Dao中的subjectBrowse()方法查找数据库中subject表中的学科信息。execute()方法会返回一个ActionForward对象,ActionServlet按照ActionForward对象指定的页面来进行页面跳转。实现界面如图4所示。
6 结束语
基于J2EE的教学资源库系统可以实现更大范围的信息和教育资源的共享,老师可以运用多种形式的教学方式,提供图形或者音视频等多媒体教学资源来提高教学效果,而学生可以利用网络这个平台通过相互之间协作交流实现自主学习。
参考文献:
[1] 田颖.王余勤.向磊.教学资源库的设计与实现[J].中国校外教育理论,2008(19):23-31.
[2] 吕少华.浅谈高校网络教学资源库建设内容及规范[J].中国教育信息化,2009(12):12-15.
[3] 刘斌.精通Java Web整合开发[M].北京:电子工业出版社,2008:73-97.
[4] 陈松.J2EE电子商务系统开发从入门到精通[M]. 北京:清华大学出版社,2007:1-3.
[5] Thomas A.Powell.Ajax完全手册[M]. 北京:电子工业出版社,2009.313-318.
[6] 楚钊.基于Web2.0的学校资源库设计与应用[D].金华:浙江师范大学,2008.
[7] 林志庆.在线文档库的分析与实现[D].福建:福州大学,2010.
[8] 陈玉芸.高校教学资源库建设的探府[J].大众科技,2008(7):183-184.