资源描述
摘 要随着计算机技术和网络技术的飞速发展,网络在教育领域发挥越来越大的作用,产生了网络教学这一新的教学模式。本文在分析了国内外网络教学管理平台的开发现状的基础上,设计与实现了一个基于JSP技术的通用网络教学平台。该网络教学平台试图打破教师之间、课程之间的围墙,探索实现课程体系重构和知识管理的途径和方法;重新定义了课堂教学、网络教学平台、教师、学生等角色在教学活动中作用,突破了传统教育理念和教学管理模式的限制。该网络教学平台采用MySQL数据库,以Myeclipse 6.5为开发平台,以JSP为主要开发语言。关键词:网络教学平台,JSP,MySQLAbstractWith the development of computer and network technology,the network plays more and more important role in the educational fields. This is the reason why this new educational modelnetworking education model occurredThe network teaching has broken the limits of the traditional teaching space and time and had the huge impact on the tradition teaching of taking the classroom instruction as the core educational modelThe network teaching is regarded as an important development direction in the modem educationThe network teaching is developing thoroughly in university,but the teaching effect is not entirely satisfactoryOne of the most important reasons is lacking of the high quality universal network teaching platformBased on the analysis of present situation of network teaching management platform development in the domestic and foreign,this article has designed and realized universal network teaching platform using the JSP technologyThis platform attempts to break the barriers between teachers and courses,explore the reconstruction of curriculum system and knowledge management and break the limits of traditional education notions and administrationIt employs MySQL, Myeclipse 6.5 and JSP Keywords:network teaching platform,JSP,MySQL目录1 绪论.11.1 研究背景.11.2 研究现状.31.3 本文工作.42 相关工具介绍.52.1 MyEclipse.52.2 Tomcat.52.3 MySQL.62.4 JSP72.5 JavaBean72.6 JDBC.83 系统设计.103.1 需求分析.103.2 系统总体结构.103.3 各功能模块设计.113.4 用户界面设计.153.5 数据库设计.224 系统实现.254.1 数据库连接.254.2 用户登陆模块.264.3 管理员模块.284.4 题库管理模块.344.5 在线自测模块.364.6 文件上传模块.384.7 查看文件模块.384.8 BBS模块.405 系统调试.425.1 用户模块.425.2专业管理模块.425.3 课程管理模块.435.4 题库管理模块.435.5 在线自测模块.445.6 文件管理模块.445.7 BBS模块.446 全文总结.467 参考文献.478 致谢.48IV7基于JSP技术的网络教学系统的设计与实现 1 绪 论网络教学以网络教学平台为载体,通过局域网、互联网等技术来实现教育信息传输和交流手段,再加上教育技术、多媒体技术的综合应用,便可实现整个教学平台所需的大多数教学功能,能够覆盖网络教、学、管理和公共服务的各个方面,相当于在网络上再建一个学校。通常,让学习者可以尽快的融入到平台中来,尽早的成为平台的受益者,网络教学就会充分发挥其价值。1.1 研究背景随着校园网与多媒体教室的建设,多媒体教学逐步普及,教师授课内容日趋电子化、多媒体化和网络化。1.2 研究现状国外的网络课程平台的理论研究与技术实践非常丰富,相当一部分平台秉承了开源软件的理念,免费向用户开放源代码并吸收用户参加最终产品的开发。经过研究和测试,其中比较好的有:美国的Sakai和Blackboard、澳大利亚的Moodle、英国的Bodinton、加拿大的Atutor等,还有称为网络教学平台的WEB CT、VirtualU、Learning Space等。这些平台已经属于网络课程设计的第三代产品,除了可通过网页给学习者提供教学材料、有关教育网连接以及提供学习者通过电子邮件、电子公告栏、网上练习和测量进行异步双向交流外;还实现了通过网上交谈室、电话会议、视频会议或MUDs(MOOs)系统进行同步双向交流的功能。以澳大利亚的Moodle为例,在Moodleorg官方网站注册的使用该平台的国家(地区)达171个,站点21830个,其中美国3130个,澳大利亚建477个,中国大陆128个,台湾305个,香港46个,新加坡47个,日本240个。从这一数据中,我们面对世界各地教育信息化应用的发展状况可见一斑,同时也足以让我们倍觉任重道远。1.3本文的工作本文将结合目前的网络现状,针对以往网络教学所存在的一些的问题,总结出一套构建容易,通用性强,易于推广网络教学平台开发方案。按照Browser/Server模式的网络教学系统的设计思路,采用JSP和MySQL数据库相结合,利用MySQL 作为数据仓库,用Servlet等高性能服务器端程式作为后台总控程式,JSP程式在前台运行,Servelet接受用户的输入,分别调用不同的JSP程式向客户端反馈信息,JSP/Servlet通过HTTP连接在服务器端和客户端传递数据。通过基于JSP技术的网络教学论坛,学生可以不受时间、空间、地域的限制,实现网上浏览教学内容、完成作业,在线测试、交流学习心得等功能,教师也可借助此平台,发布公告信息,实现课件上传下载,组织讨论答疑等功能。在下文中,第二章主要对本次研究的一些相关工具的介绍,包括MyEclipse、Tomcat、MySQL、JSP等。第三章主要介绍了网络教学平台的系统总体结构。第四章主要论述了对各个模块的设计实现。第五章是对本系统进行系统调试的过程。第六章是对全文的总结。2 相关工具介绍在本章节中,主要介绍了本次研究的一些相关工具,包括编程调试平台MyEclipse、Tomcat、数据库MySQL、编程语言JSP、JavaBeans体系结构和JDBC。2.1 MyEclipseMyEclipse企业级工作平台(MyEclipse Enterprise Workbench ,简称MyEclipse)是对Eclipse IDE的扩展,利用它我们可以在数据库和JavaEE的开发、发布,以及应用程序服务器的整合方面极大的提高工作效率。它是功能丰富的JavaEE集成开发环境,包括了完备的编码、调试、测试和发布功能,完整支持HTML,Struts、 JSF、CSS、Javascript、SQL和Hibernate。简单而言,MyEclipse是一款功能强大的J2EE集成开发环境,支持代码编写、配置、测试以及除错,大大简化了复杂Java/JSP应用的开发。2.2 TomcatTomcat是一个开放源代码、运行servlet和JSP Web应用软件的基于Java的Web应用软件容器。它是Apache软件基金会(Apache Software Foundation)的一个顶级项目,由Apache、Sun和其他一些公司及个人共同开发而成。由于有了Sun的参与和支持,最新的Servlet和JSP规范总是能在Tomcat中得到体现,Tomcat是Java Servlet 2.2和JavaServer Pages 1.1技术的标准实现,是基于Apache许可证下开发的自由软件。Tomcat是完全重写的Servlet API 2.2和JSP 1.1兼容的Servlet/JSP容器。Tomcat使用了JServ的一些代码,特别是Apache服务适配器。随着Catalina Servlet引擎的出现,Tomcat第四版号的性能得到提升,使得它成为一个值得考虑的Servlet/JSP容器,因此目前许多WEB服务器都是采用Tomcat。Tomcat 6支持最新的Servlet 2.5和JSP 2.1规范。因为Tomcat技术先进、性能稳定,而且免费,因而深受Java爱好者的喜爱,并得到了部分软件开发商的认可,成为目前比较流行的Web服务器。2.3 MySQLMySQL是最受欢迎的开源SQL数据库管理系统,它由MySQLAB开发、发布和支持。MySQL是MySQLAB的注册商标。 MySQL是一个快速的、多线程、多用户和健壮的SQL数据库服务器。MySQL服务器支持关键任务、重负载生产系统的使用,也可以将它嵌入到一个大配置(mass-deployed)的软件中去。MySQL是开源的,开源意味着任何人都可以使用和修改该软件,任何人都可以从Internet上下载和使用MySQL而不需要支付任何费用。如果你愿意,你可以研究其源代码,并根据你的需要修改它。MySQL服务器是一个快的、可靠的和易于使用的数据库服务器。MySQL服务器还包含了一个由用户紧密合作开发的实用特性集。MySQL服务器原本就是开发比已存在的数据库更快的用于处理大的数据库的解决方案,并且已经成功用于高苛刻生产环境多年。尽管MySQL仍在开发中,但它已经提供一个丰富和极其有用的功能集。它的连接性、速度和安全性使MySQL非常适合访问在Internet上的数据库。 MySQL服务器工作在客户/服务器或嵌入系统中 MySQL数据库服务器是一个客户/服务器系统,它由多线程SQL服务器组成,支持不同的后端、多个不同的客户程序和库、管理工具和广泛的应用程序接口(APIs)。MySQL也可以是一个嵌入的多线程库,你可以把它连接到你的应用中而得到一个小、快且易于管理的产品。2.4 JSPJSP(Java Server Pages)是由Sun Microsystems公司倡导、许多公司参与一起建立的一种动态网页技术标准。JSP技术有点类似ASP技术,它是在传统的网页HTML文件(*.htm,*.html)中插入Java程序段(Scriptlet)和JSP标记(tag),从而形成JSP文件(*.jsp)。 用JSP开发的Web应用是跨平台的,既能在Linux下运行,也能在其他操作系统上运行。JSP技术使用Java编程语言编写类XML的tags和scriptlets,来封装产生动态网页的处理逻辑。网页还能通过tags和scriptlets访问存在于服务端的资源的应用逻辑。JSP将网页逻辑与网页设计和显示分离,支持可重用的基于组件的设计,使基于Web的应用程序的开发变得迅速和容易。JSP与Java Servlet一样,是在服务器端执行的,通常返回该客户端的就是一个HTML文本,因此客户端只要有浏览器就能浏览。JSP页面由HTML代码和嵌入其中的Java代码所组成。服务器在页面被客户端请求以后对这些Java代码进行处理,然后将生成的HTML页面返回给客户端的浏览器。Java Servlet 是JSP的技术基础,而且大型的Web应用程序的开发需要Java Servlet和JSP配合才能完成。JSP具备了Java技术的简单易用,完全的面向对象,具有平台无关性且安全可靠,主要面向因特网的所有特点。 自JSP推出后,众多大公司都支持JSP技术的服务器,如IBM、Oracle、Bea公司等,所以JSP迅速成为商业应用的服务器端语言。2.5 JavaBeanJavaBeans是SUN公司为进入因特网、企业网以及万维网上进行分布式计算的组件结构入口。JavaBeans体系结构是全面基于组件的标准模型,它是描述Java的软件组件模型,有点类似于Microsoft的COM组件概念。在Java模型中,通过JavaBeans可以无限扩充Java程序的功能,通过JavaBeans的组合可以快速生成新的应用程序。JavaBeans具有以下特性:(1)可以实现代码的重复利用;(2)易维护性、易使用性、易编写性;(3)可以在支持Java的任何平台上工作,而不需要重新编译;(4)可以在内部、网内或者是网络之间进行传输;(5)可以以其它部件的模式进行工作。JavaBeans在JSP程序中常用来封装事务逻辑、数掘库操作等,可以很好的实现业务逻辑和前台程序的分离,使得系统具有更好的健壮性和灵活性。EJB也定义了一个Java组件模型,但是EJB组件模型和JavaBeans组件模型是不同的。2.6 JDBCJDBC是Java提供的一种解决方案,它使Java应用程序可以从关系数据库中获取数掘,向关系数掘库中存放数据提供了方法。利用JDBC API,就可以使用同一语法访问不同的关系数掘库,这使得可以方便地使用基于不同关系数掘库的不同应用程序组件。JDBC包括四个组件:(1)应用程序:负责调用JDBC函数束提交SQL语句,提取结果;(2)驱动程序管理器:为应用程序加载驱动程序;(3)驱动程序:处理JDBC函数调用,向数据源提交SQL请求,向应用程序返回结果,必要时驱动程序将SQL语法翻译成符合DBMS语法规定的格式;(4)数据源:由用户想存取的数据,OS,DBMS,网络平台等组成。JDBC的体系结构如图2-1所示:图2-1 JDBC的体系结构通过JDBC访问数据库,需完成如下步骤:(1)加载JDBC驱动程序:通过驱动程序管理器加载并注册对应数掘源的驱动程序;(2)建立连接:明确地建立一条与数据库的连接,以便访问所需要的数据;(3)建立用于查询或更新的语句:通过连接来得到语句对象,该语句对象提供一个工作空间供用户创建SQL查询,执行该查询以及检索返回的任何结果;(4)处理结果:访问结果集中的数掘;(5)关闭连接:释放连接所占资源。47基于JSP技术的网络教学系统的设计与实现 3 系统设计3.1需求分析网络教学管理平台主要的任务是:由教务管理员通过管理后台来管理各种资源,而教师和学生分别通过各自的空间来达到教与学的目的,整个平台的教学和管理工作可以分为三条主线:管理员、学生和教师。(1)管理员主线只有具有管理员身份的用户可以登陆管理员主页。管理员在管理员主页可以添加、修改、删除教师、学生账号、专业、课程等基本信息,负责设定各门课程信息,教师授课信息。管理员可以发布、修改、删除系统公告;也可浏览论坛中的内容,并进行管理。(2)教师主线教师信息由管理员设定。只有具有教师身份的用户才可登陆教师空间,在教师空间中,教师可以添加删除课程信息,添加、删除、修改题库内容,供学生在线自测,上传课件和作业内容; 另外,在BBS中,教师可以进行公告信息发布,在答疑版块中回复学生的疑难问题,还可以在技术版块中发布一些相关的知识和技巧等在当前新教育理念指导下,教师的角色已经发生了改变,教师已经不是单纯的课程实施者,按照教学大纲和教学参考书按部就班地进行教学,成为教学与课程的奴隶。教师应该是引导者、设计者,能根据学生特征、课程内容特征等进行教学设计并实施教学。因此,在网络课程平台的开发上,不能停留在为教师开发现成的平台,应予以一定的空间供教师对网络课程平台进行拓展。开源设计理念是应运而生,以此吸纳更多教师参加研发工作,避免了长期以来自上而下硬性推行使用网络课程平台产生的不良效果,缩短了教师、技术人员与教育专家的沟通的距离。(3)学生主线学生账号可密码等信息由管理员设定,只有具有学员身份的用户可以登陆学员空间。在学员空间中,学员可以可选择学习的课程,进入课程专区后可查看老师发布的信息情况、老师布置作业的内容,进行在线自测等。自主学习是网络教育的一大特色,目前网络课程在自主性学习方面只是体现学习者自己学习这一点,并没有为他们提供种种有利于进行自主学习的资源。在网络教学中,教师与学习者、学习者与学习者面对面交流的机会减少,教师不能通过观察来了解学习者的学习情况,而只能依赖于网络教学平台来实现交互。3.2系统总体结构图3-1 系统功能框图本网络教学平台既可以作为学生自学自检平台,也可以作为远程教育平台。管理员注册所有的用户并进行管理。管理员还可以对专业和课程进行管理。只需专业教师将相应课程内容、试题等录入相应数据库,学生就可以通过网络进行学习和测试。试卷批改系统支持机器自动阅卷。机器自动阅卷对客观题进行评定,并在阅卷之后给出本次测试结果。教师可以将课件上传,供学生课后下载自学;学生可以在平台上下载老师的课件,可以将自己的作业上传,提交给老师查看。系统设置了BBS功能模块,学生之间可以互相讨论,也支持教师对学生疑问的解答。 在BBS中,教师和管理员还可以发布公告,将一些公共消息提示给学生。在提交作业时,学生都可以随时增删、修改作业。网络教学平台由教师模块、学生模块和管理员模块三大模块组成,这些模块之间相互联系,相互配合,构成一个完整的网络教学系统。系统功能框图如图3-1所示。 3.3各功能模块设计3.3.1管理员模块设计系统的管理员分配其他用户及密码,所有的用户只能由管理员统一管理,进入系统时要进行身份验证。管理员相当于教务处的角色,可以添加、修改、删除教师、学生账号、专业、课程等基本信息,负责设定各门课程信息,教师授课信息,还可以在论坛中担当管理员的职责,负责发布公布以及删除一些恶意帖子。因此管理员模块的流程如图3-2所示。图3-2 管理员模块流程图管理员角色功能主要有:(1)由系统的管理员分配其他用户及密码,所有用户只能由管理员统一管理;(2)操作者的权限层次有明确的分类,进入系统时要进行身份验证;(3)可以设定各门课程的学习与管理,其中管理员相当于教务处的角色;(4)管理员可以添加、修改、删除教师、学生账号;(5)添加和删除课程信息,各门课程设定均在此处完成;(6)添加和删除专业信息,使学生注册时确定其具体位置;(7)管理教师授课情况,教师任课均由管理员来设定,因此管理员部分功能相当于学校的教务处,在添加课程的同时可以设定该门课的任课教师;(8)系统的管理员可以以管理员的权限在论坛的公告版块中发布公告,也可以在任何其他版块中发布帖子和回复帖子。对一些恶意的帖子或回复,管理员可以将其删除。3.3.2教师模块设计教师信息由管理员设定,可添加删除课程信息,添加、删除、修改题库内容,供学生在线自测,上传课件和作业内容; 另外,在BBS中,教师可以进行公告信息发布,在答疑版块中回复学生的疑难问题,还可以在技术版块中发布一些相关的知识和技巧等,因此教师管理模块的流程如图3-3所示。图3-3 教师模块流程图只有具有教师身份的用户才能登陆教师页面,在教师页面中,教师可以将上课所用的课件和一些辅助学习资料上传至系统,供学生下载学习。教师可以组织答疑讨论,布置作业等教学活动,也可以发布消息等。教师角色功能主要有:(1)教师信息及教授的课程由管理员设定;(2)教师上传课件和学习资料,供学生下载学习,可定时地更新,删除旧的课件;(3)添加、删除,更改题库内容,题库根据课程设定几套试卷,主要为单项选择题,可以为学生提供在线自测;(4)教师发布作业内容,学生根据教师作业内容进行作业提交,教师可以及时下载查看,进行批改;(5)教师在公告版块中进行信息发布,比如对于什么时候放假、考试日期、调课通知等,方便学生及时查看;(6)教师在答疑版块中进行答疑管理,学生在答疑位置发布其问题,教师查看后给出其正确的回答,同时方便其他学生讨论与掌握该问题;(7)教师在技术交流版块中发布一些与课程相关的学习资料,帮助学生提高学习能力和增广知识面。3.3.3学生模块设计学生账号可密码等信息由管理员设定,通过身份验证后直接登陆。可选择学习的课程,进入课程专区后可查看老师发布的信息情况、老师布置作业的内容,进行在线自测等,因此学生学习模块的流程如图3-4所示图3-4 学生模块流程图学生角色功能主要有:(1) 学生账号可密码等信息由管理员设定,通过身份验证后直接登陆;(2)在本专业中可选择学习的课程,学生可以选择多门课程进行学习,如果超过一门的时候,登陆时需要选择本次学习的课程,选择成功后进入课程专区;(3)查看老师发布的信息情况,如上课内容、上课地点的变更,教学内容的大纲安排、作业完成期限、考试范围、注意事项等一系列公告信息。实时得到老师的教学安排,不再需要像传统模式那样以班为单位让班长通知到位;(4)关于老师布置作业的内容,学生可以在课后查看并下载作业,完成后可以将作业上传,还可以通过此环节查看自己完成作业的情况;(5)学生答疑信息,将自己不会的内容在答疑版块进行发布,其他学生包括老师均可以查看,老师和同学均可以进行问题回答,解决了传统模式中老师答疑少的问题。学生还可以在网上进行学习上的研究和讨论,互相交流学习经验,共同进步; (6) 学生可以在若干试卷中选择某一套试卷,查看试题并参加网上测试,结束后还可查询测试结果,还可以查看试题答3.4用户界面设计3.4.1用户登陆界面设计因为用户登录所属角色比较多,如考生、教师和管理员,所以在设计登录界面时,需要提供一个角色选择的单选按钮,让用户选择自己所属的角色。用户登录界面使用两个文本框,分别输入用户名和用户密码。另外,增加一个是否保存在cookie一分钟的选项。如图3-5所示。图3-5 用户登陆界面设计3.4.2用户管理界面设计 在用户管理功能里设置两个链接方式:注册用户和查看用户。考虑系统的安全性,添加新用户只能从后台的用户管理中添加用户。管理员权限的用户可以通过登陆成功,直接进入到系统的后台管理界面,用户注册方式能添加的权限为考生和教师。在设计新用户注册界面时,需要提供一个角色选择的单选按钮,让管理员选择所要添加用户的权限。增加一个下拉框,里面显示所有的专业,供管理员选择所要添加用户所属的专业。在注册界面中使用三个文本框,分别输入真实名字、用户名和用户密码。如图3-6所示。图3-6 用户注册界面设计在查看用户页面中,需要提供一个表格,表格中包含权限、真实名字、用户名、密码等字段,列出所有用户的详细信息。在每个用户的最后一列,增加一个删除用户的功能,点击此处,管理员就能删除该用户。在表格下方增加一个返回主页的链接。如图3-7所示。权限真实名字用户名密码删除用户XXXXXXXX删除用户XXXXXXXX删除用户XXXXXXXX删除用户返回主页图3-7 查看用户界面设计3.4.3课程管理界面设计在课程管理功能里设置两个链接方式:专业管理和专业课程管理。进入专业管理后,需要显示一个表格,表格中包括专业号,专业名称等字段,列出所有专业的详细信息,在每个专业的最后一列,增加一个删除专业的功能,点击此处,管理员就能删除该专业。如果开设了新的专业,在表格下方有一个添加专业的链接,通过这个链接,可以跳转到添加专业的页面中去。如图3-8所示。在添加专业的界面中使用两个文本框,分别用来输入专业号和专业名称。输入完毕后点击提交按钮就完成添加。另外增加一个重置按钮,可以将文本框中的所有内容重置,重新输入。如图3-9所示。专业号专业名称删除专业XXXX删除专业XXXX删除专业XXXX删除专业添加专业图3-8 专业管理界面设计图3-9 添加专业界面设计在专业课程管理界面中,需要显示一个表格,表格中包括专业号,专业名称、课程信息等字段,在课程信息中,包含课程号、课程名称、任课教师等字段。表格中列出所有专业课程的详细信息。在每个课程的最后一列,增加一个删除课程的功能,点击此处,管理员就能删除该课程。在每个专业的最后一列,增加一个添加课程的功能,点击此处,管理员就能为该专业添加一门课程。如图3-10所示。在添加课程的界面中,使用两个文本框,分别用来输入课程号和课程名称。界面中还需要一个下拉框,显示这个专业的所有教师,添加课程时可以选择设定该门课程的任课教师。输入完毕后点击提交按钮就完成添加。另外增加一个重置按钮,可以将文本框中的所有内容重置,重新输入。如图3-11所示。专业号专业名称课程信息添加课程课程号课程名称任课老师删除课程XXXXXXXXXX删除课程添加课程XXXXXX删除课程XXXXXXXXXX删除课程添加课程XXXXXX删除课程图3-10 专业课程管理界面设计图3-11 添加专业课程界面设计3.4.4题库管理界面设计在题库管理界面中,需要显示一个表格,表格中包括试卷号,课程、编辑试题、删除试卷等字段,表格中列出所有试卷的详细信息。添加试卷中需要提供一个下拉列表,用来显示登陆教师所属专业中的所有课程名称,选择一门课程,并点击添加按钮后,会添加一套试卷到这门课程中,并提示添加试卷成功。教师需要对新添加的试卷进行编辑。如图3-12所示。点击编辑试题所进入的界面中会列出该套试卷中的所有试题,在每个试题的编号前都有一个更改按钮,点击这个按钮,会进入到试题编辑界面中。在此界面中显示六个文本框,分别用来输入题目、答案A、答案B、答案B、答案D和参考答案。输入完成后,点击提交按钮,则编辑完毕。点击重置按钮,可以将文本框中的所有内容重置,重新输入。如图3-13所示。点击删除试卷,则会将该套试题删除,并提示该套试卷删除成功。试卷号课程编辑试题删除试题XXXX编辑试题删除试题XXXX编辑试题删除试题XXXX编辑试题删除试题图3-12 题库管理界面设计图3-13 编辑试题界面设计3.4.5在线自测界面设计学生在主页的下拉列表中选择一门课程进入课程专区,下面的自测题都是针对所选的那门课程。在自测界面中,需要提供一个下拉列表,用来显示这门课程所有的试卷。学生选择其中一套试卷后,点击自测按钮,跳转到下一页面,显示出全部的试题。在这个界面中,试题编号从1到20,全部为单项选择题,学生做完试题后点击提交按钮,系统会自动批改,并显示本次自测所得的分数。学生点击答案的链接,则可显示出当前试卷中所有试题的答案。如图3-14所示。图3-14 在线自测界面设计3.4.6文件上传界面设计文件上传包括教师上传课件和学生上传作业。点击上传链接后,跳出的界面中需要显示一个浏览框,用来选择所要上传的文件的路径。选择好上传的文件并在下拉列表框中选择该文件所属的课程后,点击上传按钮。如图3-15所示。系统对文件的类型有一定限制,如果选择的文件不符合系统所要求的类型,系统会跳出一个提示框,提示上传者该文件的类型不正确,并提示系统所支持的文件类型。如果文件类型符合系统的要求,则显示上传成功。图3-15 文件上传界面设计3.4.7文件下载界面设计文件下载包括教师下载学生作业和学生下载课件。点击下载链接后,界面中需要显示一个下拉列表,显示教师(学生)所属专业中所有的课程,选择所要下载的目标文件所属的课程后,点击查询按钮,此时,界面显示出两张表格,包含课程名、文件名、上传者ID、真实姓名、上传时间等字段,列出文件的所有详细信息。在每一行记录的最后还增加下载文件的功能。点击下载,就能下载该文件。如果登录者是教师,这两张表一张显示这门课程中教师上传的所有课件,一张显示这门课程中所有学生上传的作业。如果登陆者是学生,这两张表中,一张显示这门课程中教师上传的所有课件,一张显示自己所上传的所有作业。如图3-16所示。课名文件名老师ID老师姓名上传时间下载XXXXXXXXXX下载XXXXXXXXXX下载XXXXXXXXXX下载课名文件名学生ID学生姓名上传时间下载XXXXXXXXXX下载XXXXXXXXXX下载XXXXXXXXXX下载图3-16 文件下载界面设计3.4.8 BBS界面设计BBS中分为三个版块:公告版块、技术交流版块和答疑版块。在每一个版块后增加进入按钮,点击后进入该版块。如图3-17所示。在某一版块界面中,在最上方显示该版块的标题,下方显示一个表格,包括主题、作者、回复数和最后更新时间等字段。每一个帖子作为一个字段显示在表格中。在此界面中需要提供一个发新帖的按钮。如图3-18所示。点击发布新帖按钮进入发布新帖的界面中。在此界面中,会出现两个文本框,用来输入标题和内容。在文本框在输入完毕后点击提交,则发布帖子成功,点击清空可以将文本框中的所有内容重置,重新输入。如图3-19所示。点击主题名字即可进入该主题的界面。在该界面中,抬头显示主题名字,下面显示帖子的具体内容、作者、等级权限(学生/教师/管理员)和发布时间。点击回复帖子按钮,在界面中会出现两个文本框:标题和内容。标题中的默认内容为“re:主帖标题”。在文本框在输入完毕后点击提交,则回复帖子成功,点击清空可以将文本框中的所有内容重置,重新输入。如图3-20所示。图3-17 版块界面设计图3-18 帖子显示界面设计图3-19 发布新帖界面设计图3-20 回复帖子界面设计3.5数据库设计数据库是整个系统的核心部分。数据库包括了特征数据库和实时历史数据库两大部分。特征数据库用来保存系统变量名、I/O变量名、系统的各项设置及其用户定义的特征信息。实时数据库用来保存从底层I/O设备读出的I/O变量的实时值。考虑到由底层得到I/O数据以后,一方面需要将这些数据存储到历史数据库中,一方面要将这些数据发送到需要实时得到I/O设备。数据库设计分为以下几个阶段:(1)需求分析阶段准确了解与分析用户需求(包括数据与处理),是整个设计过程的基础,是最困难、最耗费时间的一步。(2)概念结构设计阶段这个阶段是整个数据库设计的关键,通过对用户需求进行综合、归纳与抽象,形成一个独立于具体DBMS的概念模型。(3)逻辑结构设计阶段这个阶段将概念结构转换为某个DBMS所支持的数据模型,对其进行优化。(4)数据库物理设计阶段这个阶段为逻辑数据模型选取一个最适合应用环境的物理结构(包括存储结构和存取方法)。(5)数据库实施阶段这个阶段运用DBMS提供的数据语言、工具及宿主语言,根据逻辑设计和物理设计的结果,建立数据库,编制与调试应用程序,基于J2EE架构的通用网络教学管理平台的设计与实现组织数据入库,并进行试运行。(6)数据库运行和维护阶段数据库应用系统经过试运行后即可投入正式运行。在数据库系统运行过程中必须不断地对其进行评价、调整与修改。3.5.1 系统E-R图图3-21 系统E-R图3.5.2数据字典数据字典是数据库的重要部分。它存放有数据库所用的有关信息,对用户来说是一组只读的表。数据字典内容包括:数据库中所有模式对象的信息,如表、视图、簇、及索引等;用户的名字;用户及角色被授予的权限。数据库数据字典是一组表和视图结构。本系统使用MySQL作为数据库。在myweb数据库中包含用户信息表(member)、题库表(question)、学生表(stuclass)、老师表(matech)、专业表(majorinfor)、课程信息表(courseinfor)、文件信息表(fileinfor)、帖子信息表(article)。表3.1为数据库表名称及描述。表3.1 数据库表名称及描述表名说明描述member用户信息表存储系统管理员注册的所有用户的信息question题库表存储学生在线自测的所有试题stuclass学生表存储所有学生的信息matech老师表存储所有老师的信息majorinfor专业表存储系统管理员所添加的专业信息courseinfor课程信息表存储系统管理员所添加的专业课程信息fileinfor文件信息表存储教师上传的课件和学生上传的作业的一些相关信息article帖子信息表存储在BBS中发布帖子和回复帖子的信息用户信息表(member):用来存储系统管理员注册的所有用户的信息,包括权限、真实名字等。表3.2为用户信息表数据字典的详细结构。表3.2 用户信息表(member)的详细结构字段名数据类型数据长度属性字段说明useridINT11primary key,not null,auto increment用户号usernameINT10primary key,not null用户名passwordVARCHAR6not null密码roleVARCHAR6not null权限nameVARCHAR45not null真实名字题库表(question):题库表中存储学生在线自测的所有试题,包括试题内容、答案、试卷号和所属课程名等。表3.3为题库表数据字典的详细结构。表3.3 题库表(question)的详细结构字段名数据类型数据长度属性字段说明IDINT11primary key,not null,auto increment试题号QuestTextTEXTnot null试题内容AnswerTEXTnot null答案GroupSMALLINT4not null试卷号coursenameVARCHAR45not null课程名学生表(stuclass):学生表中存储学生与专业的关联关系,包括登陆所用的用户名、真实名字和所属的专业。表3.4为学生表数据字典的详细结构。表3.4 学生表(stuclass)的详细结构字段名数据类型数据长度属性字段说明usernameINT10primary key,not null用户名nameVARCHAR45not null真实名字majornumINT10not null专业老师表(matech):老师表中存储老师与专业的关联关系,包括登陆所用的用户名、真实名字和所属的专业。表3.5为老师表数据字典的详细结构。表3.5 老师表(matech)的详细结构字段名数据类型数据长度属性字段说明majormumINT10primary key,not null,auto increment专业号technumVARCHAR45primary key,not null老师号technameVARCHAR45not null老师名专业表(majorinfor):专业表中存储系统管理员所添加的专业信息,包括专业号和专业名称。表3.6为专业表数据字典的详细结构。表3.6 专业表(majorinfor)的详细结构字段名数据类型数据长度属性字段说明majornumINT10primary key,not null,auto increment专业号majornameVARCHAR45primary key,not null专业名称课程信息表(courseinfor):专业表中存储系统管理员所添加的专业课程信息,包括课程号、课程名称、任课教师和所属的专业。表3.7为课程信息表数据字典的详细结构。表3.7 课程信息表(courseinfor)的详细结构字段名数据类型数据长度属性字段说明coursenumINT10primary key,not null,auto increment课程号majornumVARCHAR45not null专业号coursenameVARCHAR45not null课程名称techVARCHAR45任课老师文件信息表(fileinfor):文件信息表中存储教师上传的课件和学生上传的作业的一些相关信息,包括文件名、上传者、保存地址、上传时间和文件所属课程名。表3.8为文件信息表数据字典的详细结构。表3.8 文件信息表(fileinfor)的详细结构字段名数据类型数据长度属性字段说明filenameVARCHAR45primary key,not null文件名authorVARCHAR45primary key,not null上传者addrVARCHAR200not null保存地址timeVARCHAR45not null上传时间coursenameVARCHAR45not null课程名帖子信息表(article):帖子信息表存储在BBS中发布帖子和回复帖子的信息,包括发帖者、主题、帖子内容、所属版块、回复者和发布时间等。表3.9为帖子信息表数据字典的详细结构。表3.9 帖子信息表(article)的详细结构字段名数据类型数据长度属性字段说明idINT11primary key,not null,auto increment帖子IDauthorIDINT11not null楼主IDtitleTEXTnot null主题contentTEXTnot null内容boardIDINT11not null版块IDreIDINT11not null回复者IDreNumINT11not null回复数pubtimeVARCHAR128not null发布时间4 系统实现该网络教学平台按照Browser/Server模式,将传统的浏览器/WEB服务器的两层体系结构扩展成浏览器/WEB服务器+应用服务器/数据库服务器三层体系结构,这种模式采用多种标准的协议和技术,适合于所有硬件平台和软件环境。系统采用JSP和MySQL数据库相结合,其实现的基本原理是利用MySQL 作为数据仓库,用Servlet等高性能服务器端程式作为后台总控程式,JSP程式在前台运行,Servelet接受用户的输入,分别调用不同的JSP程式向客户端反馈信息,JSP/Servlet通过HTTP连接在服务器端和客户端传递数据,其体系结构如图4-1所示。图4-1 系统体系结构 4.1数据库连接本系统使用TOMCAT作为JSP容器,mysql作为数据库,因此需要把mysql驱动配置到tomcat。将mysql-connector-java-3.1.14-bin.jar文件放置到Tomcat文件下的webappsmywebWEB-INFlib。基于上述配置,数据库连接类DBBean类的实现如下:package dbBean;import java.sql.Connection;import java.sql.Date;import java.sql.DriverManager;import java.sql.PreparedStatement;import java.sql.ResultSet;public class DBBean /调用JDBC驱动private String driverStr = com.mysql.jdbc.Driver; /数据库地址、用户名、密码以及编码方式 private String connStr = jdbc:mysql:/localhost/myweb?user=root&password=1&useUnicode=true&characterEncoding=gb2312; private Connection conn = null;private PreparedStatement pstmt = null;public DBBean() /启动连接public void init() throws Exception Class.forName(driverStr);conn = DriverManager.getConnection(connStr);/执行SQL语句public void prepareStatement(String sql) throws Exception this.clearParameters();this.pstmt = this.conn.prepareStatement(sql);/关闭与数据库的连接public void close() if (null != pstmt) try pstmt.close();pstmt = null; catch (Exception ex) if (null != conn) try conn.close(); catch (Exception ex) 4.2用户登陆模块图4-2 用户登录流程用户登录网络教学平台的主入口,用户只有通过该入口才能进入系统。用户登录流程如图4-2所示。用户登录由login.jsp页面实现,如图4-3所示。用户单击“登陆”按钮后进入do_login.jsp页面进行用户登录的验证过程,判断与member表中的role、username和password是否符合。如果用户输入是正确的,
展开阅读全文