论文 关键词:网上授课平台 数据库 sql server 2000 jsp struts
论文摘要:随着 计算 机 网络 技术在各行各业的广泛应用,传统的面对面的教学方式已经不能满足现在的教学要求。利用网上授课平台,学生可以通过网络下载教师上传的 电子 教案、授课视频等文件来弥补课堂教学的不足。教师也可以通过此授课平台方便的和学生进行交流,及时获得学生学习情况的反馈。
《数据库原理网上授课平台》的开发主要针对《数据库原理》课程的教学活动。本系统主要包括用户登录模块,用户注册模块,留言模块,视频管理模块,电子教案管理模块,在线答疑模块。
本系统采用myeclipse作为开发平台。将以java为核心语言的jsp作为开发工具,基于struts框架,利用sun提供的tomcat建立运行环境,结合sql server 2000进行数据库的开发。
第1章 绪 论
1.1 课题背景
随着计算机及网络技术的飞速 发展 ,internet/intranet应用在全球范围内日益普及,在众多的网络服务中,web给人耳目一新的感觉,各种网站日渐普及,很多人都通过网络来进行各种信息交互活动。《数据库原理网上授课平台》专门针对《数据库原理》课程的教学活动,利用网上授课网站有很多好处,例如可以24小时随时进行服务,可以弥补学生没有听懂的不足,改变了传统作业批改方式,浪费人力物力,教师可以及时了解学生学习情况,以及师生信息的交互等等。WwW.133229.COMjsp技术是当前相当热门的,因为它可以进行复杂的数据库操作、很强的交互性以及方便用户控制管理。本系统正是采用jsp开发。
1.2 课题研究内容及意义
二十一世纪是信息的社会,信息作为社会最主要的资源,将成为战略资源引起人们广泛的关注。在 现代 学习生活中,网上学习是也是提高自己技术的重要途径之一,网上授课平台应运而生。随着生活水平不断提高,几乎家家都有电脑。在新形势下,越来越多的网上授课平台相继被开发出来。网上授课平台,可以使学生在上课时听不懂的课程进行课后复习,让同学更好的把握学习的重点。同时还可以在网上授课平台和老师进行聊天,向老师提问一些自己不明白的问题。让自己充分理解所学的课程。这样有助于提高自己。学习靠自己,但是不明白的地方也要问别人。有了网上授课平台就可以轻松的自学了。在网上授课平台里,每堂课都有几百个帖子,信息量很大,同一分钟可能有许多人同时发言,有附议,有评论,有反驳,非常生动,一些平时比较腼腆的学生也能发表长篇大论。老师事先发布讨论内容,然后师生共同探讨,互动交流,触发灵感。像有些学生离校回家了,但他们在上课时间都来到网上课堂,他们都能和在校学生一起讨论,就是网络的功劳。这样一个授课的记录能够真实、完整的保存下来,为因各种原因没能来上课的同学日后补课提供了方便。容易出成果,同学们也反映,以前口头讨论流于肤浅,现在以文字表述观点,更深入、更有逻辑性,讨论结束后稍加整理便可以形成小论文或者对话录,我们鼓励学生把讨论所得及时整理出来,巩固下来,以加深他们的印象
1.3 本文主要内容
(1)系统开发的目的及意义。
(2)系统概述和应用工具介绍,主要包括对jsp、java bean、sql server 2000和b/s模式的介绍。
(3)对系统进行可行性分析和需求分析以满足客户要求。
(4)对系统的详细设计,系统数据库的设计和流程进行描述。
(5)系统的 总结 以及未来的展望。
第2章 关键技术介绍和开发工具以及硬件环境
2.1 关键技术介绍
2.1.1 jsp语言及其特点
在传统的网页html文件(*.htm,*.html)中加入java程序片段(scriptlet)和jsp标记(tag),就构成了jsp网页(*.jsp)。jsp页面看上去象标准的html和xml页面,并附带有jsp引擎能够处理和抽取的额外元件。
web服务器在遇到访问jsp网页的请求时,首先执行其中的程序片段,然后将执行结果以html格式返回给用户。
程序片段可以操作数据库、重新定向网页以及发送e-mail等,这就是建立动态网站所需要的功能。
所有程序都在服务器端执行,网络上传送给客户端的仅是得到的结果,对客户浏览器的要求最低。它基于强大的java语言,具有良好的伸缩性,在网络数据库应用开发领域具有得天独厚的优势。
jsp技术在多个方面加速了动态web页面的开发:
a.将内容的生成和显示进行分离
使用jsp技术,web页面开发人员可以使用html或者xml标识来设计和格式化最终页面。使用jsp标识或者小脚本来生成页面上的动态内容(内容是根据请求来变化的,例如请求帐户信息或者特定的一瓶酒的价格)。生成内容的逻辑被封装在标识和javabeans组件中,并且捆绑在小脚本中,所有的脚本在服务器端运行。如果核心逻辑被封装在标识和beans中,那么其他人,如web管理人员和页面设计者,能够编辑和使用jsp页面,而不影响内容的生成。
在服务器端,jsp引擎解释jsp标识和小脚本,生成所请求的内容(例如,通过访问javabeans组件,使用jdbctm技术访问数据库,或者包含文件),并且将结果以html(或者xml)页面的形式发送回浏览器。这有助于作者保护自己的代码,而又保证任何基于html的web浏览器的完全可用性。
b.强调可重用的组件
绝大多数jsp页面依赖于可重用的,跨平台的组件(javabeans或者enterprise javabeanstm组件)来执行应用程序所要求的更为复杂的处理。开发人员能够共享和交换执行普通操作的组件,或者使得这些组件为更多的使用者或者客户团体所使用。基于组件的方法加速了总体开发过程,并且使得各种组织在他们现有的技能和优化结果的开发努力中得到平衡。
c.采用标识简化页面开发
web页面开发人员不会都是熟悉脚本语言的编程人员。javaserver page技术封装了许多功能,这些功能是在易用的、与jsp相关的xml标识中进行动态内容生成所需要的。标准的jsp标识能够访问和实例化javabeans组件,设置或者检索组件属性,下载applet,以及执行用其他方法更难于编码和耗时的功能。
通过开发定制化标识库,jsp技术是可以扩展的。今后,第三方开发人员和其他人员可以为常用功能创建自己的标识库。这使得web页面开发人员能够使用熟悉的工具和如同标识一样的执行特定功能的构件来工作。
d.jsp能提供所有servlets功能
与servlets相比,jsp能提供所有servlets功能,它比用println书写和修改html更方便。可以更明确地进行分工,web页面设计人员编写html,只需留出空间让servlets程序员插入动态部分即可。jsp技术能够支持高度复杂的基于web的应用。
e.健壮的存储管理和安全性
由于jsp页面的内置脚本语言是基于java编程语言的,而且所有的jsp页面都被编译成为java servlet,jsp页面就具有java技术的所有好处,包括健壮的存储管理和安全性。
f.一次编写,各处运行
作为java平台的一部分,jsp拥有java编程语言“一次编写,各处运行”的特点。随着越来越多的供应商将jsp支持添加到他们的产品中,您可以使用自己所选择的服务器和工具,更改工具或服务器并不影响当前的应用。
2.1.2 java及java servlets概述
jsp技术是用java语言作为脚本语言的,谈及jsp技术,少不了要对java技术进行一些基本的介绍。
最近一年多来,在internet上出现的特别吸引人的事件就是java语言和用 java编写的浏览器hotjava。
1991年,sun microsystem公司的jame gosling、 bill joe等人,为在电视、 控制烤面包箱等家用消费类电子产品上进行交互式操作而开发了一个名为oak的软件(即一种橡树的名字),但当时并没有引起人们的注意,直到1994年下半 年,internet的迅猛发展,环球信息网www的快速增长,促进了java语言研制的 进展,使得它逐渐成为internet上受欢迎的开发与编程语言,一些著名的计算机 公司纷纷购买了java语言的使用权。
如mi-crosoft、ibm、netscape、novell、apple、dec、sgi等,因此,java语言被美国的著名杂志pc magazine评为1995年十大优秀科技产品,(计算机类 就此一入选),随之大量出现了用java编写的软件产品,受到 工业 界的重视与好 评,认为"java是八十年代以来计算机界的一件大事"。
微软总裁比尔·盖茨在悄悄地观察了一段时间后,不无感慨地说:"java是长 时间以来最卓越的程序设计语言",并确定微软整个软件开发的战略从pc单机时 代向着以网络为中心的计算时代转移,而购买java则是他的重大战略决策的实 施部署。因此,java的诞生必将对整个计算机产业发生深远的影响,对传统的计 算模型提出了新的挑战。
sun microsystem公司的总裁scott mcnealy认为java为internet和www开辟了一个崭新的时代。
环球信息网www的创始人berners-lee说:"计算机事业发展的下一个浪潮 就是java,并且将很快会发生的"。看来,使用java已成大势所趋!
microsoft和ibm两大公司都计划在internet上销售用java编写的软件。apple、hp、ibm、microsoft、novell、sgi、sco、tandem等公司均计划将java并入各自开发的操作系统,而负责开发并推广java技术的sunsoft公司(这是 sun下属的一个子公司),将通过颁发许可证的办法来允许各家公司把java虚拟 机和java的applets类库嵌入他们开发的操作系统,这样各类开发人员就能更 容易地选择多种平台来使用java语言编程,不同的用户也就可以脱离web浏览器来运行java应用程序,这无疑是很受广大用户欢迎的,也为java语言的应用 开拓了极为广阔的前景。(当然,各类javaos之间的兼容性必须得到重视,好在javasoft已保证将监督这种兼容性)。
另外,由javasoft推出的完全用java编写的internet上新型浏览器 hotjava,比去年alpha版更为实用,不仅能编制动态的应用软件,而且能编制完整 的成套桌面应用软件,将来还会提供更多的能帮助编制动态应用软件的模块,显 然,这也是为java的应用提供了有力的例证。
2.1.3 java bean简介
javabean是一种基于java的软件组件,java bean和active控件一样,可以通过封装业务逻辑建立一整套可重复利用的对象库。jsp对于在web应用中集成javabean组件提供了完善的支持,这种支持不仅能缩短开发时间(可以直接利用经过测试和可信任的已有组件),避免重复开发,也为jsp应用带来了更多的可伸缩性。javabean组件可以用来执行复杂的计算任务,或负责与数据库的交互及数据提取等。
由于java语言在这些方面所具有的特点和优势,使得基于它的软件javabean组件技术倍受人们关注。它的任务就是:一次编写,可以在任何地方执行,可以在任何地方重用。javabean组件可以在任何地方重用包括了可以在应用程序、其他组件、文档、web站点和应用程序构造器工具等多种方案中再利用。
为了创建和使用java软件组件,javabean被实现为一种独立于平台和结构的应用程序接口,它的实现可以忽略内部的结构和细节问题,只需定义其外部的特征及对外功能就行。其中,属性、方法和事件三种接口可以独立对外进行开发。
2.1.4 tomcat简介
tomcat 服务器是一个免费的开放源代码的web 应用服务器,目前最新版本是6.0.18(截止到2008-08-27)。
tomcat是apache 软件基金会(apache software foundation)的jakarta 项目中的一个核心项目,由apache、sun和其他一些公司及个人共同开发而成。由于有了sun 的参与和支持,最新的servlet和jsp 规范总是能在tomcat 中得到体现,tomcat 5 支持最新的servlet 2.4 和jsp 2.0 规范。因为tomcat 技术先进、性能稳定,而且免费,因而深受java 爱好者的喜爱并得到了部分软件开发商的认可,成为目前比较流行的web 应用服务器。
tomcat 很受广大程序员的喜欢,因为它运行时占用的系统资源小,扩展性好,支持负载平衡与邮件服务等开发应用系统常用的功能;而且它还在不断的改进和完善中,任何一个感兴趣的程序员都可以更改它或在其中加入新的功能。
tomcat 是一个小型的轻量级应用服务器,在中小型系统和并发访问用户不是很多的场合下被普遍使用,是开发和调试jsp程序的首选。对于一个初学者来说,可以这样认为,当在一台机器上配置好apache服务器,可利用它响应对html页面的访问请求。实际上tomcat 部分是apache 服务器的扩展,但它是独立运行的,所以当你运行tomcat 时,它实际上作为一个与apache 独立的进程单独运行的。
这里的诀窍是,当配置正确时,apache 为html页面服务,而tomcat实际上运行jsp 页面和servlet。另外,tomcat和iis、apache等web服务器一样,具有处理html页面的功能,另外它还是一个servlet和jsp容器,独立的 servlet容器是tomcat的默认模式。不过,tomcat处理静态html的能力不如apache服务器。
2.2 开发工具
数据库原理网上授课平台是在j2ee的基础上,以jdk1.6.0_10和myeclipse 6.5作为开发工具,用macromedia dreamweaver mx 2004和adobe photoshop设计、美化页面,用sql server2000作为后台数据库,tomcat 6.0.16作为web测试服务器进行开发设计的。
2.2.1 myeclipse
myeclipse 企业 级工作平台(myeclipse enterprise workbench ,简称myeclipse)是对eclipse ide的扩展,利用它我们可以在数据库和j2ee的开发、发布,以及应用程序服务器的整合方面极大的提高工作效率。它是功能丰富的j2ee集成开发环境,包括了完备的编码、调试、测试和发布功能,完整支持html, struts, jsf, css, javascript, sql, hibernate。
在myeclipse 6.5这个集成开发环境中,用户可以设计程序代码、运行程序、进行程序错误的调试等,可视化的开发方法降低了应用程序开发的难度。
2.2.2 dreamweaver 和 photoshop
macromedia dreamweaver mx 2004是一个可视化的网页设计和网站管理工具,支持最新的web技术,美观用户界面,多重用户配置,增强的源代码编辑功能,扩展的文档格式支持,加强的服务器模式扩展,改进的数据库链接操作,提升了与外部应用程序的协作。adobe photoshop 7.0.1软件作为专业的图像编辑标准,可帮助制作适用于web的最佳品质图像。
2.2.3 sql server 2000
sql server 2000是基于客户/服务器模式的新一代大型数据库管理系统(dbms)。它在电子商务、数据仓库和数据库解决方案等应用中,起着重要的作用,可为企业的数据库提供有效的管理,并采用有效的措施实施数据完整性和数据的安全性。所以sql server 2000数据库管理系统正被越来越多的用户使用,并逐渐成为企业级数据库管理系统的主流产品。
2.2.4 tomcat服务器
tomcat 6.0.16是sun的jswdk(java server web development kit)中免费的开源的serlvet容器,它是apache基金会的jakarta项目中的一个核心项目,由apache,sun和其它一些公司及个人共同开发而成。由于有了sun的参与和支持,最新的servlet和jsp规范总能在tomcat中得到体现。即当配置正确时,tomcat实际运行*.jsp页面和servlet。
2.2.5 b/s模式
b/s(browser/server,浏览器/服务器)模式又称b/s结构。它是随着internet技术的兴起,对c/s模式应用的扩展。在这种结构下,用户工作界面是通过ie浏览器来实现的。b/s模式最大的好处是运行维护比较简便,能实现不同的人员,从不同的地点,以不同的接入方式(比如lan, wan, internet/intranet等)访问和操作共同的数据;最大的缺点是对企业外网环境依赖性太强,由于各种原因引起企业外网中断都会造成系统瘫痪。
b/s模式是指在tcp/ip的支持下,以http为传输协议,客户端通过browser访问web服务器以及与之相连的后台数据库的技术及体系结构。它由浏览器、web服务器、应用服务器和数据库服务器组成。客户端的浏览器通过url访问web服务器,web服务器请求数据库服务器,并将获得的结果以html形式返回客户端浏览器。
2.3 硬件环境
操作系统:microsoft windows xp或更高版本。
cpu要求:ce1.0g以上。
内存:1g以上。
磁盘可用空间:2g以上。
第3章 系统可行性分析
3.1 技术可行性
《数据库原理网上授课平台》针对《数据库原理》课程的学习来开发。主要包括用户登录模块,用户注册模块,留言模块,视频管理模块,电子教案管理模块,在线答疑模块。
以上分析的功能完全可以通过用html语言设计前台页面,用java编写应用程序,结合相关的jsp+servlet技术进行开发设计来实现;采用struts技术能大大减轻系统前期的开发工作以及后期的维护工作。
html(超文本置标语言,hyper text markup language)是为网页创建和其它可在网页浏览器中看到的信息设计的一种置标语言。
java是可以编写跨平台应用软件的面向对象的程序设计语言,它具有易用和开发高效率的特点,而且提供了可视化的集成开发环境,这一环境为应用程序设计人员提供了一系列灵活而先进的工具,可以广泛地用于多种应用程序设计。
jsp(java server pages)技术是用java语言作为脚本语言的,jsp网页为整个服务器端的java库单元提供了一个接口来服务于http的应用程序。由jsp容器(如tomcat)首先将其转化为servlet,然后再调用javac将servlet编译为class文件,服务器最终解释的是class文件。
servlet是运行在web服务器或应用服务器上的java程序,是一个特殊的java类。servlet类一般从httpservlet类继承而来,在这个类中至少要实现doget或者dopost函数,在这两个函数中处理来自客户的请求,然后将结果返回。servlet和jsp是sun公司j2ee架构中重要的部分,由于基于java语言,因此其可以方便地调用功能强大的java api(如jdbc)。
struts开发技术是用mvc模式处理系统呈现层,使得系统开发的分工更明显,便于系统日后的维护工作。
综上所述,使得开发本系统过程中不存在技术上的障碍,具有技术可行性。
3.2 经济 可行性
由于本系统是个人为了通过实践,使所学的理论知识和实际操作相结合,提高自己的实际开发能力而做的。而且自己拥有一台完全可以用于开发本系统的计算机,所用软件全部都是免费的,加上现在的互联网资源丰富,学校的图书馆藏书有万册,完全可以找到自己所需的资料;学校给我们近半年的时间做毕业设计,所以从资源和时间上也是相对比较充足的。
所以,本系统投资极少,经济上是可行。
3.3 操作可行性
使用本系统的工作人员,只要拥有windows平台的一些基本电脑知识就可以运用,并不需要什么特别的技术能力。而且,考虑到用户的电脑实际操作水平,尽可能地使系统的界面简洁、实用、美观。另外,有关于计算机操作方面的知识,使用本系统相关的操作人员都已经具备了,如果使用过程中有什么困难,只要进行短期的培训后便也可以应用自由。所以,本系统在操作上是可行的。
第4章 系统需求分析
4.1 现行业务
4.1.1 目标
《数据库原理网上授课平台》的目标是实现对学生可以下载电子教案,下载视频,上传作业,在线答疑,留言,注册。教师可以上传电子教案,上传视频,下载作业,返回改后作业,在线答疑,回复留言,发布公告等。
4.2 现行业务
根据以上的分析,再根据用户要求,得到系统的功能如下:
(1) 注册模块,学生需要先注册才能登录,注册免费。
(2) 登录模块,用户选择学生或教师身份后输入相应的用户名和密码。
(3) 电子教案模块,教师将数据库原理的电子教案放在网站里,学生可以在将电子教案下载下来。教师还可以删除电子教案。
(5) 作业模块,学生将数据库原理作业上传到网站里,教师可以把各个学生的作业下载下来。然后再将批改后的作业上传,学生可以再下载改后的作业。
(6) 在线答疑模块,学生可以在线向教师提问问题,与老师在线交互。
(7) 留言模块,学生可以将自己对老师的想法留言告诉老师。老师也可以回复学生的留言。
(8) 公告模块,老师可以通过该模块向学生通知一些事情。
(9) 友情链接模块,教师可以将一些好的学习网站介绍给学生。
4.3 系统流程图
系统流程图是概括地描绘物理系统的传统工具,表达了数据在系统各部件之间流动的情况。系统按照业务活动中信息流动的过程,弄清楚所有环节的处理业务、处理内容、处理顺序和对处理时间的要求,弄清各环节需要的信息内容、信息来源、去向、处理方法和提供信息处理的时间和信息形态等。
a. 教师模块流程图,如图4-1所示:
图4-1教师模块流程图
b. 学生模块流程图,如图4-2所示:
图4-2学生模块流程图
第5章 系统设计
5.1 系统功能模块图
系统的用户分为学生和教师,分别有不同的功能。学生的功能有: 电子 教案管理,视频管理,作业管理,留言管理和在线答疑。教师有电子教案管理,视频管理,作业管理,留言管理,公告管理,友情链接管理,学生管理,在线答疑。对于每个管理模块的功能,学生和教师有不同的操作。学生和教师的功能模块图如下所示:
a.学生功能模块图,如图5-1所示:
shape \* mergeformat
图5-1 学生功能模块图
b. 教师功能模块图,如图5-2所示:
shape \* mergeformat
图5-2 教师功能模块图
5.2 数据库结构设计
数据库是一个网站必不可少的一部分,数据库的完备决定了该网站成功与否,对于动态网站中基本的用户注册信息等各种动态部分的保存与调用是一个授课网站所必不可少的。由于考虑到数据库的熟悉程度以及windows的操作系统,所以我购商城采用了适合中小型 企业 使用的小型数据库sql server2000数据库,数据库名称为mywork。本系统定义的数据库中包含以下8张表:tb_user(用户信息表)、tb_message(留言表)、tb_kejian(电子教案信息表)、tb_note(公告信息表)、tb_video(视频信息表)、tb_test(作业信息表)、tb_link(友情链接表)、tb_chat(聊天信息表). 下面分别介绍这些表的结构:
tb_user(用户信息表)存储了学生的用户名,密码,真实姓名,email,具体属性如表5-1所示:
表5-1 用户信息表
字段名
数据类型
是否为空
是否主键
描述
user_id
int(4)
no
yes
用户id(自动编号)
user_name
varchar(20)
yes
no
user_password
varchar(20)
yes
no
realname
varchar(20)
yes
no
varchar(30)
yes
no
tb_message(留言信息表)存储了留言人的用户名,留言的题目,留言内容,留言的时间,留言的对象,具体的如表5-2所示:
表5-2 留言信息表
字段名
数据类型
是否为空
是否主键
描述
mes_id
int(4)
no
yes
自动编号
sender
varchar(20)
yes
no
留言用户名
mes_title
varchar(70)
yes
no
mes_content
varchar(2000)
yes
no
mes_sendtime
datetime(8)
yes
no
to_whom
varchar(20)
yes
no
tb_kejian(电子教案信息表)存储了电子教案的名称,上传时间。具体的如表5-3所示:
表5-3 电子教案信息表
字段名
数据类型
是否为空
是否主键
描述
ke_id
int(4)
no
yes
自动编号
ke_name
varchar(100)
yes
no
ke_time
varchar(30)
yes
no
tb_note(公告信息表)存储公告的标题,内容,发布时间,具体的如表5-4所示:
表5-4 公告信息表
字段名
数据类型
是否为空
是否主键
描述
note_id
int(4)
no
yes
自动编号
note_title
varchar(20)
yes
no
note_content
varchar(100)
yes
no
note_time
datetime(8)
yes
no
tb_video(视频信息表)存储了视频的名称,上传时间,具体的如表5-5所示:
表5-5 视频信息表
字段名
数据类型
是否为空
是否主键
描述
video_id
int(4)
no
yes
自动编号
video_name
varchar(100)
yes
no
video_time
varchar(30)
yes
no
tb_test(作业信息表)存储了作业名称,上传时间,上传作业学生名字,具体如表5-6所示:
表5-6 作业信息表
字段名
数据类型
是否为空
是否主键
描述
test_id
int(4)
no
yes
自动编号
test_name
varchar(100)
yes
no
test_time
varchar(30)
yes
no
user_name
varchar(20)
yes
no
上传作业用户名
tb_link(友情链接表)存储了链接的网址和网站的名字,具体的如表5-7所示:
表5-7 友情链接表
字段名
数据类型
是否为空
是否主键
描述
link_id
int(4)
no
yes
自动编号
link_name
varchar(20)
yes
no
link_add
varchar(30)
yes
no
tb_chat(聊天信息表)存储了提 问的学生名字,收到问题人的名字,提问的内容,以及提问的时间,具体的如表5-8所示:
表5-8聊天信息表
字段名
数据类型
是否为空
是否主键
描述
chat_id
int(4)
no
yes
自动编号
speaker
varchar(20)
yes
no
listen er
varchar(20)
yes
no
content
varchar(100)
yes
no
talktime
datetime(8)
yes
no