系统主要由服务器端和浏览器端程序2部分组成,使用Java作为开发语言,MySQL作为后台数据库。采用的关键技术有:
(1)应用JSP(Java Server Page)技术实现普通静态HTML和动态页面输出混合编码。在运行时态,JSP将会被首先转换成Servlet,并以Servlet的形态编译运行,因此它的效率和功能与Servlet相比没有差别,一样具有很高的效率。
(2)应用JDBC进行数据库连接。JDBC API主要用来连接数据库和直接调用SQL命令执行各种SQL语句。利用JDBC API可以执行一般的SQL语句、动态SQL语句及带IN和OUT参数的存储过程。
(3)采用B/S模式。在这种结构下,用户工作界面是通过IE浏览器来实现。B/S模式最大的好处是运行维护比较简便,能实现不同的人员,从不同的地点,以不同的接入方式(比如LAN,WAN,Internet/Intranet等)访问和操作共同的数据。
(4)选用MySQL对用户数据进行统一管理。MySQL数据库管理系统将数据保存在不同的表中,这样就增加了速度并提高了灵活性。MySQL的SQL语言是用于访问数据库的最常用标准化语言。MySQL软件由于其体积小、速度快、总体拥有成本低,尤其是开放源码这一特点,一般中小型网站的开发都选择MySQL作为网站数据库。
(1)系统介绍
系统是一款为学生设计的在线学习软件,突破了时间和地理位置的限制,师生间互动交流更加方便。老师可以发布教案、布置、批改作业、发布公告和答疑解惑,学生可以进行学习,测试、反馈问题,上交作业等。系统采用B/S模式,应用Java平台开发实现,配以MySQL数据库进行统一管理用户数据。
(2)用户需求的功能:系统由服务器端和浏览器端程序2部分组成。
2.2.1 系统的功能性需求
服务端程序:启动服务;停止服务;查看服务器配置信息;维护各类资源。
浏览器端程序:只须使用浏览器向Web服务器提出请求,服务器即可通过中间组件与数据库链接,把请求服务的内容以Web页面形式通过浏览器反馈给用户。
2.2.2 系统数据流图
顶层数据流:包含两个实体即用户(学生)、管理员(教师),四个数据处理即学生登陆、学生学习、教师登陆、教师管理。该图反应出了在线学习系统总的情况,学生输入口令,验证通过后进入网上学习区,教师输入口令,验证通过后可以进入教师管理区。其数据流如图1所示。
学生用户数据流:包括一个实体(学生)和课堂学习、答疑等多个数据处理,反应出了学生学习情况及五个数据存储。学生通过课堂学习、答疑教师、在线答疑、作业上传、练习测试等功能,来巩固所学的知识。其中,学生所提出的问题放入问题数据库中,从考试成绩记录中可以查询作业分数,从试题信息记录中得到试题进行练习,从公告记录中浏览公告的内容。如图2所示。
(3)教师管理数据流:包括一个实体(教师)和发布教程等多个数据处理及五个数据存储。体现了教师对系统的管理情况,教师通过答疑、作业评分、考试管理、公告发布,来完成对学生学习的加强并进行学习情况、学生信息的管理。教师从问题记录中了解到学生的问题,回答以后再存入记录中;教师评好作业,分数存进作业考试记录中供学生查询;编辑好的试题存入试题记录中;学生信息、公告分别存入学生信息记录和公告记录。如图3所示。
系统的数据库需要7个表。分别是student/teacher表、news表、homework表、chapter表、content表、judgement表、student表。其E-R图如图4-图8所示。
(1)登录模块关键代码
为了能够让系统更加安全,采用了MD5算法对密码进行加密。MD5算法是一个不可逆的加密算法,通常用于重要信息的加密,如登录密码。然而,不同的用户具有不同的权限,所以不同的用户进入系统后显示的页面是有差别的。为了解决这个问题,采用了JSP的内置对象Session记录用户登录信息,同样也可以在系统里随时判断用户是否已经登录。这样就将不同的用户类型进行了区分,同时使用Session对象还解决了用户不登陆是无法访问除登陆页以外的系统的其他页面,这就保障了系统的安全。同时,为了能够更好的减小服务器的压力,前台部分使用了JavaScript对用户名和密码进行验证,只有用户名和密码符合设定的规则时才向后台服务器进行提交登陆验证。
表1 在线学习测试表
表2 文件上传和下载测试表
图1 顶层数据流
图2 学生用户数据流图
图3 教师用户数据流图
图4 student/teacher E-R图
图5 news E-R图
图6 homework E-R图
图7 Chapter E-R图
图8 content E-R图
图9 课程学习页面
图10 在线做题页面
图11 课件下载页面
(2)在线学习模块
此模块为系统的核心模块,学生用户在登录后可直接选择进入本模块,学生可以在此模块中进行在线学习、在线做题、课件下载和提问问题。
当教师用户身份登录时,可以在此模块中对章节内容进行添加修改,还可以上载课件,解答问题,同时也拥有学生用户在此模块的全部权限。
在线学习模块页面如图9-图11所示。
测试的重点是对各项功能的正常运转进行全面测试。
在线学习模块部分测试用例(如表1表2所示)。
通过对该系统各功能模块的测试,得出以下结论:此系统的功能基本满足用户需求,性能基本达到需求,具有可用性和友好性。
[1]张孝祥.JSP基础与案例开发详解[M].清华大学出版社,2009.
[2]徐国平.JSP网络开发实务[M].电子机械工业出版社,2007,5:33-80.
[3]敬铮.Java数据库开发与专业应用[M].国防工业出版社,2007:21-76.
[4]韩柯译.Java面向对象编程指南[M].北京:电子工业出版社,2008:5-67.
[5]吴飞.基于B/S可变条件数据库统计查询设计与实现[J].铁路计算机应用,2007(6):22-90.
[6]叶清.基于JSP和Java组件的动态Web网页的设计与实现[J].现代机械,2007,34-87.