毕业设计(论文)-基于JSP的虚拟课堂设计.doc_第1页
毕业设计(论文)-基于JSP的虚拟课堂设计.doc_第2页
毕业设计(论文)-基于JSP的虚拟课堂设计.doc_第3页
毕业设计(论文)-基于JSP的虚拟课堂设计.doc_第4页
毕业设计(论文)-基于JSP的虚拟课堂设计.doc_第5页
已阅读5页,还剩33页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

第 38 页 共 38 页 1 绪论1.1 背景综述在我国,提高教育现代化、信息化水平,大力发展现代远程教育不但是面向21世纪教育振兴计划的重要内容,也是2003-2007年教育振兴行动计划的主要内容。利用国家数字网、语言网以及视频网进行远程教育,又是穷国办大教育的战略性措施。从中央到地方政府,都非常重视远程教育。 远程教育(Distance Education)是指作为与传统面授教育相对的教、学双方在时空、地域上分离,通过技术媒体来实现教学的一种新的教育形式的总称。远程教育的发展可以追溯到19世纪50年代,先后经历了函授教育,广播电视教育,录像带以及有线电视授课等形式,发展到20世纪随着信息科学技术发展而出现的新的远程教育形式,它将面授、广播、电视教育各自的优势集于一身,融文本、音频、视频信息传播媒介为一体。计算机辅助教学、计算机模拟以及其他通过计算机磁盘、光盘和互连网等途径的电子资源进一步表现出这一代远程教育的特征。这一代远程教育技术同以前相比,进行交换的信息数量和种类显著增加,需要的时间变得更短,它减少了远程教育对时间和空间的依赖性,可在不同的时间和空间下,创造一个虚拟课堂环境,从而实现传播科学信息、推行教学计划、实施教学环节,达到培养造就科学人才的目的。1.2 系统开发的意义一所学校最富有价值的资源就是优秀的教师队伍,而教师最富有魅力的工作是通过音形并茂的讲课来实现知识的转移与学生的培养。因此,如何在多媒体网络教学时代以最低的成本赋予每一位教师以传统的讲课能力则成为了一个教育界所关注的焦点与难点。虚拟课堂就可以实现这个功能。另外,成人学生因为种种原因不能走进真正的课堂,而有些学生在真实课堂中不能满足或是感到吃力,虚拟课堂正可以提供给他们学习的空间。相比传统课堂,虚拟课堂具有明显的优势。优势之一是课堂中的互动:传统课堂中多数互动活动是通过教师讲、学生听、说、读、写进行的,而在虚拟课堂中,有关课程的讨论与交流,成了一项持续不断的活动,因为在以计算机为中介的合作化的学习环境中教师的讲授、师生的交流、学生的讨论等活动随时可进行,而这一点在面对面环境里是很难做到的。优势之二,虚拟课堂的无处不在性所具有的优势:这一优势对于成人学生来说尤其重要,因为成人学生挑着工作与家庭的担子,在市场经济情况下的工学矛盾又是那样的尖锐,因此,能不能根据自己的时间来修读课程,将会决定他是学业有成还是半途而废。现代远程教育可以使学生在任何时候、任何地方学习他所需要学习的任何东西,使传统教育尤其是成人教育所难以解决的各种矛盾都可迎刃而解了。2 开发工具的选择 该虚拟课堂是基于Internet的课堂,主要实现媒体文件的播放以及留言与公告的处理,它的多数功能都是与数据库相关的。为了实现这些,可以选择的开发工具有ASP、PHP和JSP,然而在这三者当中JSP的执行效率是最高的,除此之外,它还有很多其他两者不能相比的优点。2.1 JSP介绍2.1.1什么是JSP2Java Server Pages(以下简称JSP)是由Sun公司倡导,许多公司参与一起建立的一种动态网页标准。在Sun正式发布JSP之后,这种新的Web应用开发技术很快引起了人们的关注。与目前流行的服务端动态网页开发技术ASP、PHP一样,JSP在动态网页的建设中有强大而特别的功能。Sun公司在Java基础上开发出的JSP具有程序代码和HTML代码相分离,能够脱离硬件平台的束缚,以及执行效率高等特点。因而,在短时间内,它已经在国际上得到了迅速的推广和应用。JSP规范是Web服务器、Web应用服务器、交易系统、以及开发工具供应商之间广泛合作的结果。此结果产生了一种新的、开发基于Web应用程序的方法,它给动态网页设计者提供了强大的工具。2.1.2JSP产生的背景(1) HTML语言的局限性传统的HTML语言(Hypertext Makeup Language,超文本标记语言)采用标记方式来说明文件的标题、层次结构、超文本链接等。在浏览器上阅读HTML文件时,通过浏览器的解释,就会看到层次结构清晰、图文并茂、色彩亮丽的网页。在HTML文件中,所使用的标记都是ASCII字符,因此,HTML文件就是一个普通的文本文件,可以采用普通的文本文件编辑工具来建立和编辑。HTML语言具有很多强有力的功能,例如:l 可以使用各种基础元素(标题、文字、表格、列表、照片、插图等)来发布在线的文档;l 通过超文本链接可以使用户方便地在各个网页之间转换,就像单击一个按钮一样简单;l 可以设计一种表单控件控制网上的各种传输,例如查询信息等;l 在文档中可以直接包含视频剪辑、声音片断和其他应用程序。虽然用HTML语言在网络上显示多媒体文件已比以往单纯地显示文字的信息系统进步了许多,但是还无法满足人们的要求。最美中不足的是应用HTML语言所建立的网页,仅能单纯地显示网页内容,而无法针对网页的浏览状况做出实时响应。因此,这类单纯由HTML语言所建立,无法与使用者产生互动的静态网页终将向能实时响应用户的动态网页方向发展。(2)交互的Web应用程序为了使网页能够按照不同的情况做出动态响应,在网页中加入程序以建立动态响应的机制,已成为网页制作技术的主要发展方向。而浏览器与Web服务器厂商为了巩固各自的市场占有率,也都努力发展这方面的技术。这些动态网页开发技术,按照网页程序执行位置的不同,可以分成客户端和服务端。执行于客户端的网页程序语言,其执行过程是:将网页从服务端下载下来,由浏览器负责解释并执行,最后将执行后的网页显示在浏览器窗口中。目前常用的客户端网页执行语言有Java、JavaScript、Jscript与VBScript。当浏览器读取网页时,若发现这些语言,将会直接翻译出来并执行,参见图2-1。服务端客户端显示在客户端浏览器窗口中1下载网页至客户端2经浏览器执行程序图2-1客户端的网页程序语言的执行过程客户端服务端2服务端通过CGI接口将数据传给CGI程序3CGI程序将执行结果传回给服务端 服务端中的执行结果1将数据传给服务端4将CGI执行结果传回给客户端在服务端执行的网页程序,最主要的用途是处理从客户端送到服务端的数据,客户端网页通常通过表单(form)将数据送至服务端。最早的方案是,服务端通过CGI接口(Common Gateway Interface)将客户端网页的数据转传给负责此信息的程序。当完成执行后,该程序便会将执行结果所产生的网页输出给服务端,由服务端负责返回给客户端。由于程序处理数据的方式是通过CGI接口,因此,这类程序又被称为CGI程序。整个过程如图2-2所示。CGI程序CGI接口图2-2服务器端的网页程序语言的执行过程这个方案有着严重的扩展性问题当网页浏览者通过浏览器,执行了服务端的某个CGI程序时,服务端便产生一个进程,且不同的使用者,即便执行的是同一个CGI程序,也都会有一个对应的进程。如果多个浏览器,同时执行多个CGI程序时,在服务端就有多个进程产生,这些进程将消耗该Web服务器所有的可用资源,并使系统性能降到极其低下的地步。很显然,CGI程序并不是开发动态网页的良好方案。因此,某些Web服务器供应商已经尝试着为他们的服务端提供“插件”和“API”来简化Web应用程序的开发难度。这些解决方案是与特定的Web服务器相关的,无法跨平台。例如,微软的Active Server Pages(ASP)技术,可以方便地在Web页面上创建动态内容,但是它只能工作在某些服务器上,如微软的IIS、PWS等。还存在其它的解决方案,但是都不能使一个普通的网页设计者轻而易举地掌握。例如使用像Java Servlet这样的技术,就可以用Java语言编写交互应用程序服务端的代码。一个Java Servlet就是一个Java程序,只不过它是用Java Servlet API开发的。开发人员能够编写出这样的Servlet,以接受来自Web浏览器的HTTP请求,动态地生成响应,然后发送包含HTML文档的响应到浏览器。由于Servlet执行在Java虚拟机上,所以具有良好的可移植性,可以达到跨平台效果。采用这种方法,整个网页必须都在Java Servlet中制作。如果开发人员或者Web管理人员想要调整页面显示,就不得不编辑并重新编译该Java Servlet。采用这种方法,生成带有动态内容的网页仍然需要应用程序的开发技巧,而且HTML网页复杂时,在Servlet中控制HTML的输出难度较大。综上所述,目前所需要的就是一种创建动态内容网页的简单、有效的解决方案。这个方案将解决目前已有方案中所受到的种种限制,即:l 能够在任何Web或应用程序服务器上运行。l 将应用程序逻辑和页面显示分离。l 能够快速地开发和测试。l 建立开发基于Web的交互式应用程序的过程。由Sun Microsystems Inc.公司倡导,由多家公司参与的一种动态网页技术JavaServerPages就是被用来满足上述这些要求的。2.1.3JSP的运行方式3步骤一,服务端在接收到客户端传过来的一个网页请求时,先判断是否是JSP网页的请求(主要从扩展名来判断)。步骤二,如果不是,只是一般的HTML网页请求,则直接把HTML代码传给客户端,完成客户端与服务端的一次连接;如果是JSP网页的请求,JSP引擎解析页面且生成一个Java源文件*.java。步骤三,然后由JSP引擎将JSP代码转换成Servlet,再通知服务端上的Java编码器对转换过的Servlet代码执行编译,编译成Java class文件,生成字节码文件*.class,保存在服务端的相应文件夹中。这个class文件就是Servlet,Servlet引擎象处理其他所有的Servlet一样处理该class文件。步骤四,由JVM(Java虚拟机)执行编译得到的字节码文件,并把结果以HTML代码形式传回客户端,这样就完成一次连接。以后如果有相同JSP网页的请求,则直接由JSP引擎通知JVM执行已有的字节码,并把结果传回客户端。尽管此过程看起来要付出耗费很多时间的代价,但是其文件执行的效率确实比想象的要高。第1步和第2步仅发生一次,只是当你首次配置或升级JSP时才发生。Servlet引擎只是在服务器重新启动后产生第1个请求时才执行第3步;之后class载入器仅载入class文件1次,并且在JVM(Java虚拟机)的运行期内均有效可行。最后,由一些应用服务器提供页面缓存来进一步地提高执行效率和减少请求的时间。这样第4步的执行效率也就只是看动态页面的数据量了。请求 Web服务器 响应 服务器扩展 JSP引擎Servlet引擎 Jsp语法分析器 类载入器 Java编译器 Request ResponseWebServerServerextensionClass locaderJava compilerServlet engineJSP engineJSP parserJSP程序(*.jsp)Servlet源代码(*.java)Java字节码(*.class)以Java字节码形式存在客户端图2-3 JSP工作原理以HTML代码形式图2-4 JSP网页的运行过程2.1.4 JSP与ASP、PHP的比较4JSP与ASP、PHP技术非常相似。ASP全名Active Server Pages,是一个Web服务器端的开发环境。利用它就可以产生和运行动态的、交互的、高性能的Web服务应用程序。PHP是一种跨平台的服务器端的嵌入式脚本语言,它大量借用Cave和Perl语言的语法,并耦合PHP自己的特性,使Web开发者能够快速地写出动态生成页面。三者都提供在HTML代码中混合某种程序代码、由语言引擎解释程序代码的能力。在ASP、PHP或JSP环境下,HTML代码主要负责描述信息的显示样式,而程序代码则用来描述处理逻辑。普通的HTML页面只依赖于Web服务器,而ASP、PHP和JSP页面需要附加的语言引擎分析和执行程序代码。程序代码的执行结果被重新嵌入到HTML代码中,然后一起发送给浏览器。ASP、PHP和JSP都是面向Web服务器的技术,客户端浏览器不需要任何附加的软件支持。ASP的编程语言是VBScript之类的脚本语言,PHP使用的是类似Perl、C+、Java的脚本语言,而JSP使用的是Java语言,这是三者最明显的区别。此外,ASP、PHP与JSP还有更为本质的区别:三种语言引擎用完全不同的方式处理页面中嵌入的程序代码,ASP和PHP的运行速度和功能都比不上JSP。在JSP下,VBScript代码被ASP引擎解释执行;在PHP下,代码被Zend引擎解释执行;在JSP下,代码被编译成Servlet并由Java虚拟机执行,这种编译操作仅在对JSP页面的第一次请求时发生。ASP是Microsoft开发的动态网页语言,继承了微软产品的一贯传统智能运行与微软的服务器产品,IIS和PWS上。Unix下也有ChiliSoft的插件来支持ASP,但是ASP本身的功能有限,必须通过ASP+COM的组合来扩充,Unix下的COM实现起来非常困难。PHP可在Windows,Unix,Linux的Web服务器上正常运行,还支持IIS,Apache等通用Web服务器,用户更换平台时,无需变换PHP代码,可即拿即用。JSP同PHP类似,几乎可以运行于所有平台。Sun公司曾经说过,JSP是Write Once,Run Anywhere。如Windows NT,Linux,Unix。NT下IIS通过一个插件,例如JRUN或者Servlet Exec就能支持JSP。著名的Web服务器Apache已经能够支持JSP。由于Apache广泛应用于NT,Linux和Unix上,因此JSP有更广泛的运行平台。虽然现在NT操作系统占了很大的市场份额,但是在服务器方面Unix的优势仍然很明显,而新崛起的Linux更是来势不小。从一个平台移植到另外一个平台,JSP和JavaBeans甚至不用重新编译,因为Java字节码都是标准的于平台无关。有人做过试验,对这三种语言分别作循环性能测试及存取Oracle数据库测试。在循环性能测试中,JSP只用了令人吃惊的四秒钟就结束了2000020000的循环。而ASP,PHP测试的是20002000循环,却分别用了63秒和84秒。数据库测试中,三者分别对Oracle 8进行1000次插入、修改、查询和删除:JSP需要13秒,PHP需要69秒,ASP则需要73秒。从枯燥的数据中可以看出,在数据库操作中,JSP比ASP和PHP的执行效率都要高得多得多,况且在Web编程中很大一部分是对数据库的操作,因此选择JSP是非常不错的。目前在国内PHP与ASP应用最为广泛。而JSP由于是一种较新的技术,国内采用的较少。但在国外,JSP已经是比较流行的一种技术,尤其是电子商务类的网站,多采用JSP。PHP缺乏规模支持和多层结构支持。对于缺乏多层结构支持的大负荷站点,解决方法只有一个:分布计算。这样数据库、应用逻辑层、标识逻辑层彼此分开,而且同层也可以根据流量分开,组成二维阵列。还有上面提到过的一点,PHP提供的数据库接口支持不统一,这就使得它不适合运用在电子商务中。ASP和JSP则没有以上缺陷,ASP可以通过Microsoft Windows的COM/DCOM获得ActiveX规模支持,通过DCOM和Transaction Server获得结构支持;JSP可以通过Sun Java的Java Class和EJB获得规模支持,通过EJB/CORBA以及众多厂商的Application Server获得结构支持。但是ASP的安全问题是众所周知的,微软的产品一向以BUG多而著称。在电子商务中,安全问题是最为重要的,没有安全就不可能有电子商务的发展,因此选择一个安全的Web程序作为电子商务的后台程序是非常重要的。ASP,PHP和JSP三者中,JSP的未来发展趋势是世界上一些大的电子商务方案提供商都采用JSP/Servlet。比较出名的如IBM的E-business,它的核心是采用JSP/Servlet的Web Sphere。2.1.5JSP的优点(1) 程序执行的效率高一般来讲,当JSP网页第一次被调用时,JSP引擎首先把源代码编译为一个Java Servlet类,然后用Java编译器将转换过的Servlet代码编译后存储在服务器的相关位置。这使得在接下来的对网页的调用有非常快的响应,同时还避免了CGI程序为每一个HTTP请求生成一个新进程的问题。所以说,第一次执行JSP网页比较费时。除了第一次执行JSP网页比较慢之外,以后执行JSP的速度与执行Servlet的速度相同,代码的执行效率很高。(2) 一次编写,到处运行由于JSP网页的内置脚本语言是基于Java语言的,而且所有的JSP网页都要被编译成为Servlet,JSP网页就具有Java技术的所有优点,包括健壮的存储管理和安全性等。当然其中最重要的一点就是“一次编写,到处运行”。JSP技术是与设计平台完全无关的,包括它的动态Web页面,它的Web服务器和底层的服务器组件,你可以在任何平台上编写JSP网页,在任何Web服务器或者Web应用服务器上运行,或者通过任何Web浏览器访问。你还可以在任何平台上建立服务器组件并且在任何服务器上运行它们,目前主要是JavaBeans和Servlet。有了这个优点,随着越来越多的供应商对JSP的支持添加到他们的产品中,选择服务器和工具的范围也越来越大。(3) 强大的服务器组件绝大多数JSP网页依赖于可重用的、跨平台的组件(JavaBeans或者Enterprise JavaBeans)来执行应用程序所要求的更为复杂的处理。JavaBeans已经是很成熟的技术,基于组件的方法可供开发人员共享,大大加速了总体开发过程。(4) 强大的数据库支持JSP可以和任何与JDBC兼容的数据库建立连接,操纵数据库中的数据。Sun公司还开发了JDBC-ODBC桥,用此技术,Java程序既可以访问带有ODBC驱动程序的数据库。目前,大多数数据库都带有ODBC驱动程序,所以Java程序能够访问诸如Oracle、Sybase、SQL Server和Access等主流数据库。2.2 JDBC和JavaBeans简介JDBC使得在Java程序中可以用一种统一的方式轻松地操纵数据库,可以把与数据库的交互功能封装在JavaBeans里供JSP文件调用。2.2.1 JDBC 5(1) 特点及功能JDBC是一种用于执行SQL语句的Java API,它是由一组用Java编程语言编写的类和接口组成。JDBC为数据库应用、数据库前他工具提供了一种标准的应用程序设计接口,可以用纯Java语言编写完整的数据库应用程序。通过使用JDBC,可以把SQL语句发送给数据库进行处理并接收处理结果。也就是说,有了JDBC ,就不必为访问不同的数据库而专门写不同的程序。只需用JDBC写一个程序就够了,它能够自动地将SQL语句传送给相应的数据库管理系统。不但如此,使用Java编写的应用程序可以在任何支持Java的平台上运行,不必在不同的平台上编写不同的应用程序。Java和JDBC的结合可以在开发数据库应用时真正实现“一次开发,可随处运行!”。Java具有健壮、安全、易用等特性,而且支持自动网上下载,是一种很好的数据库应用的编程语言。它所需要的是Java应用如何同各种各样的数据库连接,JDBC正是实现这种连接的关键。简单地说,JDBC能完成下列三个功能;同一个数据库建立连接。 像数据库发送SQL语句。处理数据库返回的结果。(2) JDBC的架构JDBC API通过一个数据库管理器和为各种数据库定制的驱动程序,提供一个到不同数据库的透明连接。JDBC数据库管理器将确保正确的驱动程序被用于连接数据源。它可以同时支持与不同的数据库的连接。JDBC数据库管理器将标准的JDBC指令转换成适用于不同数据库通信的网络协议指令或其他API指令。这种指令的转换机制,使基于JDBC接口开发的程序可以独立与数据库的种类。如果底层的数据库被更换了,用户只需相应地替换程序中所引用的JDBC驱动程序就可以了。(3) JDBC驱动程序的类型目前所知的JDBC驱动程序可分为以下四个种类:JDBC-ODBC桥这一类驱动程序用于连接JDBC和另一种数据库连接机制ODBC,JDBC-ODBC桥使基于JDBC的程序能通过传统的ODBC驱动程序访问数据库。这一类驱动程序已被包括在Java2SDK的“sun.jdbc.odbc”包中。基于本地API,部分用Java来编写的驱动程序这种驱动程序把客户机API上的JDBC调用转换为Oracle、Sybase、Informix、DB2或其他DBMS的调用。像桥驱动程序一样,这种类型的驱动程序要求将某些二进制代码加载到每台客户机上。JDBC网络纯Java驱动程序 这种驱动程序将JDBC转换成与DBMS无关的网络协议,之后这种协议又被服务器转换为一种DBMS协议。这种网络服务器中间件能够将它的纯Java客户机连接到多种不同的数据库上,所用的具体协议取决于提供者。通常,这是最为灵活的JDBC驱动程序。本地协议纯Java驱动程序这种类型的驱动程序将JDBC调用直接转换为DBMS所使用的网络协议。这将允许从客户机机器上直接调用DBMS服务器,是Internet访问的一个很实用的解决方法。由于许多这样的协议都是专用的,因此数据库提供者自己将是主要来源,有几家提供者已经开发出了这样的驱动程序。其缺点是,当目标数据库的类型更换时,必须重新购买JDBC驱动程序。(4) 具体使用创建ODBC数据源在此关系到数据库是通过JDBC-ODBC桥的方式与数据库相连的,使用这种方法前,一定要先定义ODBC数据源。步骤一:单击Windows任务条的开始,选择设置,再选择控制面板;步骤二:在控制面板窗口中双击ODBC数据源图标;步骤三:在弹出的窗口中选中“系统DSN”,单击“添加”按钮;步骤四:在新弹出的窗口中选择新建数据源的驱动程序的类型(Microsoft Access Driver),单击“完成”按钮;步骤五:在弹出的对话框中输入新建数据源的名称(GUET),然后单击“选取”,在弹出的文件选择对话框中选择数据库文件,最后单击“确定”就建立了一个新的ODBC数据源GUET。创建一个JDBC驱动程序实例Class.forName (“sun.jdbc.odbc.JdbcOdbcDriver”);通过JDBC驱动程序实例创建一个RDBMS连接Connection con=DriverManager.getConnection (jdbc:odbc:GUET);使用JDBC连接创建StatementStatement stmt=con.createStatement ();2.2.2JavaBeans(1) 概述JavaBeans API是一套由Sun公司制定的,描述开发独立可重用Java软件组件(Java Software Component)的标准。一个Bean实际上是根据JavaBeans技术标准所指定的Bean的命名和设计规范而编写的Java类。Bean并不需要继承特别的基类(Base Class)或实现特定的接口(Interface)。如果一个Java类是按照JavaBeans的规范来编写的,它就可被看作一个Bean。遵循JavaBeans的规范,JSP引擎不光知道Bean的内容是先就可以向Bean组件(component)存取信息。JavaBeans API规定的Bean编程规范有很多,但对Bean对应于JSP的使用者来说,应当主要关心Bean的构造函数和属性访问方法的编写规则。由于Bean的编写遵循了JavaBeans的规范,所以可通过JSP特有的Bean指令来访问Bean的属性而不用编写任何代码。当然,和其他Java类一样,一个Bean的实体就是Java对象。因此,也可以通过嵌在JSP页面内的Java代码访问Bean和其方法。(2) 在JSP中使用JavaBeans1在使用JSP编程的过程中,很多时候都要对数据库进行操作,因此在JSP文件中要写大量的数据库操作语句。如果每次都将数据库的操作语句重复写一次,将会造成很多不必要的重复劳动,而且降低了开发效率。将数据库连接封装到JavaBeans中,可以将大部分的数据库连接、操作语句写入到JavaBeans中。在JSP文件中仅仅是调用JavaBeans中的方法,这样简化了JSP文件,提高了开发效率,而且将数据库连接封装到Java Beans中,可以提高数据库的安全性,因为连接数据库的账号、密码在JSP文件中是明码保存的,而写到JavaBeans中结果便以之后将是不可见的。下面以“GUET.java”为Java Beans的封装数据库例子具体说明。建立“GUET.java”,它主要实现导入JDBC标准类库、注册数据库驱动程序、建立数据库连接、查询数据、数据操作及关闭等操作。导入JDBC标准类库为了将服务器接受的信息存入数据库,需为Bean组件添加方法,由于需要使用JDBC标准类库,所以需在此程序的开始加入以下“import”语句:import java.sql.*;注册数据库驱动程序 在一个JDBC的驱动程序可以被用以建立数据的连接之前,必须向数据库驱动程序管理注册该驱动程序。管理其的主要职责是保证所有的驱动程序对象JDBC的用户程序访问。当一个JDBC驱动程序被载入时,它将自动地与驱动程序管理器注册。 可以通过调用“Class.forName()”方法来载入一个JDBC驱动程序; String sDBDriver = sun.jdbc.odbc.JdbcOdbcDriver; Class.forName(sDBDriver); “Class.forName()”是Java的Class类的静态方法,它将告诉Java虚拟机动态地寻找、载入并连接指定的类。如果该类无法被找到,则该方法将抛出“ClassNotFoundException”类的异常。建立数据库连接当一个正确的驱动程序被载入后,就可以用它来建立与数据库的连接了。一个JDBC的数据库连接是用“数据库URL”来标识的。连接标识将告诉驱动程序管理器使用哪个驱动程序和连接哪个数据源。“数据库URL”的基本形式是:“jdbc:”。“数据库URL”首先表示使用JDBC建立数据库连接;然后表示所使用的JDBC驱动程序名和网络协议名;最后是数据源标识,它映射所需连接的数据库。可以通过“DriverManager”类的静态方法“getConnection()”来建立数据库连接:String sConnStr = jdbc:odbc: GUET;conn = DriverManager.getConnection (sConnStr);一旦数据库连接被建立,就可以打开该目标数据库,并通过该连接向目标数据库发送SQL指令。一个SQL指令通常会执行诸如查询、插入、更新和删除等数据库操作。要执行一个SQL指令,必须通过“Connection”对象的“createStatement()”方法来创建一个“stmt”对象。“stmt”对象提供了许多方法来执行不同的数据库操作。可以通过以下方式创建“stmt”对象:stmt=conn. createStatement ();查询数据 进行查询类操作,使用“stmt”对象的“executeQuery()”方法。“executeQuery()”接受一个SQL指令字符串作为参数,返回含查询结果信息的“ResultSet”对象。具体如下:public ResultSet executeQuery (String sql) rs = null; try conn = DriverManager.getConnection (sConnStr); stmt = conn. createStatement(); rs = stmt.executeQuery(sql); catch (SQLException ex) System.err.println (aq.executeQuery:+ ex.getMessage (); return rs;数据操作进行插入、更新和删除类操作,使用“executeUpdate()”方法。“executeUpdate()”同样接收一个SQL指令字符串作为参数,并执行对数据库数据的更动。该方法没有返回值。具体如下:public void executeUpdate (String sql) stmt = null; rs = null; try conn = DriverManager.getConnection (sConnStr); stmt = conn. createStatement(); stmt.executeQuery(sql); stmt.close (); conn.close (); catch (SQLException ex) System.err.println (aq.executeQuery: +ex.getMessage ();关闭数据库连接是宝贵和有限的资源,必须在数据库操作完毕后及时释放数据库连接。“Connection”对象提供了一个简单的关闭数据库连接的方法“close()”。具体如下:public void closeStmt () try stmt.close (); catch (SQLException e) e.printStackTrace ();public void closeConn () try conn.close (); catch(SQLException e) e.printStackTrace ();除此之外,还要关闭“ResultSet”对象(在JSP页面中完成)。3 虚拟课堂的分析与设计3.1 虚拟课堂的需求分析3.1.1问题分析在传统的课堂上,因为时间或其它的关系,老师可能只是讲授一些最基本的东西,而没有把所有的东西讲出来;但是在学生中,有些人感觉刚刚好,却有些人感觉东西太少、很无味或是太多、无法接受。我们的每一门课程都有固定答疑的时间,一般情况下一周只有一次,也就是说学生要把一周内所有的问题集中到这一段时间来提问,而老师就要在这一段时间内回答多个同学的多个问题,有时同学多了,问题多了就会出现无法解决所有同学的所有问题的情况,这样对学生不但不方便,对老师也不方便。虚拟课堂正可以解决这些问题。3.1.2 问题评估与方案综合虚拟课堂是在传统课堂之外教师与学生交流的又一个新的空间。因此它不但要可以让老师与学生更好的交流,还要能够满足各阶层学生的不同要求。在这里学生要可以观看老师播放的课程录像,或是自己点播感兴趣的课程录像或是其他学习资料,还要可以留言给管理员发表自己对这里的感想、意见及建议,另外,还要能够与其他同学、老师在聊天室中讨论各种问题,做到有问就问,而老师在看到问题的同时就可以及时回答。因此虚拟课堂就要有学生、教师和管理员三个不同的主界面,供不同身份的用户通过不同的界面访问该系统。3.1.3 分析建模1 实体关系图表3-1 对象-属性 对象属性学生学号密码学生姓名年级专业教师教师编号密码教师姓名部门ID(区分普通教师与管理员)课程课程代号课程名称面向对象课时开课时间视音频文件文件代号文件名称所对应课程代号主讲人学生教师课程视音频文件选择讲授点播提供对应 图3-1实体-关系图 2 数据流模型 虚拟课堂用户数据库用户数据库媒体库公告与留言库 用户信息 用户命令与数据 公告、留言 媒体文件信息 图3-2 数据流图3.2 虚拟课堂的设计3.2.1功能的设计“桂电教育在线”由4个部分组成,分别为“教师空间”、“学员空间”、“教学资源库”以及“管理员空间”。各部分之间的关系如图3-3所示。管理员空间教师空间学员空间教学资源库 图3-3 各部分的关系图在该网站中设计三个身份,分别为学生、教师和管理员,不同身份可完成不同的功能,当然这在虚拟课堂中也是相同的。在虚拟课堂中主要实现直播和点播的功能。所谓直播就是学生观看老师播放的影片;而点播即学生选择自己感兴趣的影片来观看,可以控制播放速度,但是有些影片有权限限制,只有选了这门课的同学才可以观看。除此之外,还有留言、以及公告,留言是用户即学生留言给管理员的,学生在虚拟课堂里留言,管理员在其空间主页中查看;而公告是管理员、教师发给学生看的通知,显示在学生空间的主页中。在虚拟课堂中他们可以完成的功能具体如下:学员:留言,点播视频与音频,观看实况直播。教师:查看学生的留言,选择要播放的文件、停止播放文件,上传视、音频文件,发表公告。管理员:查看学生的留言并删除留言,发表公告并管理公告包括对公告的修改与删除,对视频与音频的管理。这三者的功能如图3-4所示。学生教师管理员 虚拟课堂发表留言,点播视频、音频文件,观看实况直播,进入聊天室聊天查看留言,选择直播文件并控制其结束,上传文件,发表公告查看留言,管理留言,发表公告,管理公告,管理视音频文件图3-4 各身份能实现的功能虚拟课堂只在“教师空间”与“学员空间”中出现,这两处虽然看起来相同,但是实质上却并不相同。教师的“实况直播”是选择一个文件来播放以及停止播放,而学生的“实况直播”只是观看教师所选择的文件;教师的“视频点播”是包括添加视频与视频播放,而学生的“视频点播”只是观看视频;“音频点播”与“视频点播”相似。在此将两者的“虚拟课堂”设计成不同的页面。3.2.2数据库的设计在该网站的设计中用到了数据库GUET其中的几个表,分别设计如下:表3-2 学生表Slogin字段名称字段类型字段大小是否主键说明student_no文本10是学生学号password文本20否密码student_name文本10否学生姓名grade文本10否年级speciality文本100否专业homepage文本50否主页表3-3 教师表 Tlogin字段名称字段类型字段大小是否主键说明teacher_no文本10是教师编号password文本20否密码teacher_name文本10否教师姓名department文本50否所在单位homepage文本50否主页id数字字节否用以区分教师与管理员表3-4 选课表 Cschedule字段名称字段类型字段大小说明student_no文本10学生学号teacher_no文本10教师编号course_no文本10课程编号begin_week文本10开始周次end_week文本10结束周次表3-5 课程表 Course字段名称字段类型字段大小是否主键说明course_no文本10是课程代号course_name文本20否课程名称character文本50否object文本50否credit_hour文本10否课时teach_period文本10否教学学时lab_period文本10否实验学时term文本10否学期表3-6 公告表 gg字段名称字段类型字段大小是否主键说明serial_no自动编号长整形是公告ID标识speaker文本50否公告人dae文本50否公告时间title文本50否公告标题content文本250否公告内容表3-7 留言表 ly字段名称字段类型字段大小是否主键说明serial_no自动编号长整形是留言ID标识name文本50否留言人dae文本50否流言时间content文本250否流言内容表3-8 视频表 vod字段名称字段类型字段大小是否主键说明serial_no自动编号长整形是视频文件ID标识video_name文本50否视频名称course_no文本50否所对应课程代号video_right文本50否权限video_intro备注250否视频详细信息file_name文本50否视频的相对路径表3-9 视频表 aod字段名称字段类型字段大小是否主键说明serial_no自动编号长整形是音频文件ID标识aideo_name文本50否音频名称course_no文本50否所对应课程代号aideo_right文本50否权限aideo_intro备注250否音频详细信息file_name文本50否音频的相对路径表3-10 直播表 live字段名称字段类型字段大小是否主键说明serial_no自动编号长整形是直播文件ID标识file_name文本50否直播文件的相对路径4 虚拟课堂的实现4.1 实现工具(1) 开发平台:WINDOWS 2000 SERVER(2) 界面设计工具:Macromedia Dreamweaver MX 10(3) 数据库管理系统:Microsoft Access 200011(4) 媒体播放工具:Windows Media Player 8(5) 运行环境(JSP引擎):J2sdk1.4.1_01J2SDK提供了一个完整

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论