网络课件的开发.docx
《网络课件的开发.docx》由会员分享,可在线阅读,更多相关《网络课件的开发.docx(11页珍藏版)》请在冰豆网上搜索。
网络课件的开发
计算机应用专业专科毕业设计
网络课件的制作
(2004年×月)
摘要:
本论文以“网络课件”的制作为背景,论述了网络课件制作的意义、概念、结构及系统开发的基本原理和方法。
全文共分为引言、JSP技术简介,JDBC技术简介,对如何使用JSP开发本系统作了较为详细的介绍。
关键词:
“网络课件”,“JSP”,“JDBC开发”.
目录
摘要
关键字
第一章引言………………………………………………………………2
1.系统概述……………………………………………………………3
2.JSP技术………………………………………………………………4
2.1Javascript技术………………………………………………4
2.2JDBC简介……………………………………………………5
第二章设计思想与过程……………………………………………………6
1.整体部局……………………………………………………………6
2.系统实现………………………………………………………………7
第三章开发总结与心得体会……………………………………………10
参考文献
浅谈网络课件的制作
第一章引言
由于INTERNET网的迅猛发展和校园网的普及,课堂教学课件必将用于网络平台,过去人们一直以3DMAX三维动画软件制作课件,但其大容量文件难以实现网上浏览,取而带之的是HTML格式的FLASH网页动画软件制作课件,前端称单机版课件,后者称网络课件,只要有一台PC机、一部“猫”、一根电话线,可以在世界中的每个角落去观看网络课件了。
所以趁此毕业设计之际,我选择了写《面向对象的软件工程》网络课件。
一、系统概述
传统的课件多为单机课件,供老师在课堂上使用,应用率较低,随着INTERNET网和校园网的发展,网络课件需求越来越大。
它的优势也表现的越来越明显,比如,可以在世界上任何的地方去访问;它可以用Javascript脚本语言去实现动态画面,使读课件的人更有兴趣去学习,效果并不低于3DMAX。
但是由于网络课件由于是新兴名词,所以还有很多人对它产生怀疑,不相信在网络上也可以去实现课件,害怕的不止是知识产权不能受到保护,更害怕受到别人的攻击等等,在这里我想简单的讨论一下用JSP去实现网络课件和保护知识产权,不被陌生人去访问和破坏。
我的《面向对象的软件工程》网络课件系统主要以JSP去编写,其中又穿插了数据库,运用数据库来存储注册用户的资料,由于数据库自身的安全性,可以有效的阻止陌生人的访问和破坏。
图一是本课件系统的系统结构图。
图一、系统结构图
二、JSP技术
在本次的网络课件开发中,我选择了JSP语言。
JSP是SUNMicrosystems公司于1999年6月开发出来的一种全新的动态页面技术,它是在传统的HTML代码中,利用HTML标签扩展插入JSP脚本代码,构成JSP页面,由JSP引擎预先处理并转换成JAVAservlet,此后如果出现了对JSP页面的请求,WEB服务器将用相应的servlet输出结果作为应答,虽然JSP和servlet在功能上是等同的,但是和servlet相比,JSP中的动态内容生成方法恰恰相反,JSP是把Java代码嵌入到文档中,而不是把文档嵌入到Java应用之中。
为访问外部和可重用的对象,JSP提供了一些用来和JAVABEAN组件交互的额外标记,这些标记的语法和HTML标记相似,值得注意的是:
HTML语法属于JSP语法的一个字集(一个纯HTML文档是一个合法的JSP页面),但反过来不一定,特别地,为了便于动态的生成内容和格式,JSP允许在标记之内嵌入其他标记,例如,下面是一段合法的JSP代码:
”>
从后面的内容可知,这种结构是合法的,与CGI相比,JSP具有更好的性能和会话管理机制,这主要是通过在同一个进程之内运用JAVA线程处理多个servlet实现,而CGI一般要求为每一个请求分别创建和撤除一个进程。
2.1JAVASCRIPT
JAVASCRIPT是由NETSCAPE公司开发的一套与超文本标志语言,为网页制作者提供了非常灵活的应用和发挥空间,在页面设计中JAVASCRIPT和HTML存在着一种相互依存的关系,JAVASCRIPT语言并不是一种真正的计算机程序语言,只能算作一种脚本语言,JAVASCRIPT只能在客户端对指定页面的元素进行操作,所以离开了HTML,JAVASCRIPT将完全丧失了生命力,同时JAVASCRIPT语言又是顺应网页高级效果设计需求而产生的产物,HTML页无法在离开JAVASCRIPT的情况下,方便的进行特效处理,请注意,这里的“方便”,因为JAVA语言页可以对网页进行增强,唯一不足的是相对复杂,其生成的class文件较庞大。
在JAVASCRIPT中使用函数可以封装在程序中,多次使用的代码段,这样可以减少程序设计工作量,页可以减少代码的长度,同时,使用函数对于程序设计的分工合作页很有好处,对于一个对象来说,函数更是其赖以存在的基础,页是提供了事件驱动的基础,在这次课件系统中,我多次用到了函数。
例如在处理head.html的文字由小变大,由大变无时,我就用到了functioninitArray函数。
函数源代码如下:
this.length=initArray.arguments.length;
for(vari=0;ithis[i]=initArray.arguments[i];
}
}
在以后的程序中,只需要调用函数就可以了,但必须遵循以下规则:
函数名(参数)。
比如调用上例中写的函数:
varthemessage2=newinitArray(
"欢迎光临......",
"《面向对象的软件工程》课件系统",
);
而且,JAVASCRIPT语言对大小写铭感,所以调用时一定要注意大小写。
所调用的函数必须是内制函数,或者在调用处之前就已经声明过,在之前声明函数以确保在被调用前已经被载入内存。
2.2JDBC技术
JSP中与数据库的连接使用了JAVA中与数据库连接使用的JDBC接口技术,JDBC的意思和ODBC差不多,它是JAVA与数据库的连接(javadatabaseconnectivity),那为什么不直接用ODBC与数据库连接呢?
那是因为ODBC是完全用C语言编写的,而JAVA中实现C语言程序的通信是比较困难的,所以就产生了这种完全由JAVA程序与数据库连接的接口技术。
JDBC与具体的某种数据库连接,也要装载与此对应的驱动程序,不过此种驱动程序不需要我们自己去装载,它是直接通过JDBCAPI类库种的类来自动装载驱动程序的,只要载机器上由此API类库就行,此API类库一般都集中载javasql包中,此外,包中嗨包括了用于实现与数据库连接的其他功能的类,包括与书记库建立连接、传送、查询和接受查询结果。
第二章、设计思想与过程
在这次的网络课件系统设计中,由于要时刻注意到系统的安全性,所以用户的权限就在于关键,所以设计的过程中也是紧紧的围绕着用户管理。
图二是我的系统流程图。
合法用户
非法用户
图二、系统流程图
2.1整体布局
一个好的网页首先必须是布局美观,美观的布局是吸引读者的前提,如果连这个前提都不能实现,那么这个网页应该是很失败的。
在本次网络课件的布局中,我采用了HTML语言的frame框架结构,我把整个网页分成了三个部分:
第一部分是头文件,介绍系统名等有关信息;第二部分是菜单选相,把菜单单独分成一个部分,可以使用户更方便的选择菜单,第三部分是主文件,系统的所有操作和查看课件全部在此实现。
这样的布局可以使读者一目了然,自然而清晰。
下面是我的系统布局的有关源程序:
2.2系统实现
网络课件系统最重要的事情就是鉴别用户,防止非法用户的访问和攻击,而如果要是用数据库去管理用户,那么这个网络课件就要变得安全。
所以下面介绍一下我是怎么建立数据库和与数据库进行连接的。
在与数据库建立连接的过程中,我是利用ACCESS实现一个动态FAQ网站,首先建立一个ACCESS数据库db1.mdb,表的结构和字段名如图二所示:
其中字段name表示用户名,字段pwd代表用户登录密码,字段hint代表用户提出的问题,字段answer代表用户,real-name代表用户姓名,card-number代表身份证号码等等。
图三、表user
当JSP与数据库连接的时候,首先要装载一个JDBC-ODBC桥驱动程序,以“sa”身份登录,源代码如下:
<%
StringsDBDriver="sun.jdbc.odbc.JdbcOdbcDriver";
StringsConnStr="jdbc:
odbc:
bbs";
Connectionconn=null;
Statementstmt=null;
try{
Class.forName(sDBDriver);
}
catch(java.lang.ClassNotFoundExceptione){
out.print("()"+e.getMessage());
}
try{
conn=DriverManager.getConnection(sConnStr,"sa","");
stmt=conn.createStatement();
}catch(SQLExceptione){
out.print(e.toString());
}
%>
这样就算连接好了数据库了,下面是对数据库进行操作,还需要与用户进行交互,还需要制作表单,通过表单来了解用户的信息在表单中,我利用
,定义了一个基本表单,表单的处理是当表单被提交时,表单的信息将被提交给JSP文件做处理,表单被提交的方式是指表单中的信息作为一个“HTTPPOST“请求来发送,信息存与请求体中可以通过Request.FORM来读取它,并可以从环境变量中知道它的一些属性,在JSP可以知道使用request对象,不用另行创建,比如:
我在读取注册信息的时候用到的代码:
vname=request.getParameter("name");
//编码
tmpbyte=vname.trim().getBytes("8859_1");
vname=newString(tmpbyte,"gb2312");
当我们读取了用户的信息后,就需要对读取的信息进行检查,从安全的角度来看,输入信息包括对来自外部数据源的数据进行语法检查,有时还要进行语义检查,依赖于应用的关键程序和其他因素,作为输入检验结果,而采取的动作可能是下面的一种或多种:
●忽略语法上的不安全成分
●用安全的代码替换不安全的部分
●终止使用受影响的代码
●报告错误
输入检验可以按照以下两个模式之一进行:
列举不安全的字符并拒绝它们,定义一组安全的字符,然后排除和拒绝不安全的字符,这两种模式分别称为正向和反向输入过滤,一般地,正向输入模式更简单、更安全、因为许多时候,要列举出服务器端应用、客户端浏览器、WEB浏览器和操作系统可能误解的字符并不是一个容易的事情,下面列举我的安全检验源代码:
if(!
(vpwd.equals(vpwdagain))){
returnMsg=returnMsg+"新密码和确认密码必须相同
";
returnMsg=returnMsg+"
history.go(-1)'>返回重新填写";
session.putValue("returnMsg",returnMsg);
response.sendRedirect("return.jsp");
return;
}
当对用户的信息进行检查完毕后,下面就可以对数据库进行操作了,我们可以用PreparedStatement类设置查询参数,因为查询语句中有参数,用statement类处理查询中包含参数的情况很不方便,而且PreparedStatement类却很容易解决这样的问题,只要用“?
”代替,在用Setstring()方法设置参数值,再向数据库插入一条用户注册信息时,要产生一个无返回结果(NOResultset)的例外,要想使它后面的输出能执行,而不是发生例外,就转到最后的catch语句,让这个例外被处理掉,这里所谓的例外处理实际上就是什么都不做,这样此例外处理实际上就是什么都不做,这样此例外被处理了,就会继续执行例外后面的程序了,下面是我的插入数据库源代码:
try{
stmt2=conn.prepareStatement("insertintousers(name,pwd,hint,answer,real_name,email,card_number,address)VALUES(?
?
?
?
?
?
?
?
)");
stmt2.setString(1,vname);
stmt2.setString(2,vpwd);
stmt2.setString(3,vhint);
stmt2.setString(4,vanswer);
stmt2.setString(5,vreal_name);
stmt2.setString(6,vemail);
stmt2.setString(7,vcard_number);
stmt2.setString(8,vaddress);
if(stmt2.executeUpdate()==0)
out.print("Inserterror");
stmt2.close();
}
catch(SQLExceptionex){
out.print("aq.executeQuery:
"+ex.getMessage());
}
对数据库查询结果的处理要很小心,在上面用的getstring()得到的pwd属性值,temp-password是占10位长度,而不管实际数据是多少位,所以如用equals()方法对它与前面用户输入的pwd做比较,将永远也相等不了,除非原本pwd就是10位的,所以需要用regionmatches()方法对它们进行比较,此方法只比较两字符串中的一段,用此方法比较此两字符串前面pwd长度的子串,将能除去temp-password中由于数据库的缘故而增加的空位,这样就可以判断用户输入的密码。
上面所述的是对数据库进行修改和查询,下面简单的说一下我是怎么利用数据库来维护我的课件安全的。
在维护课件安全方面上我运用了JSP的session对象,session对象指的就是客户端与服务器的一次对话,此次对话从客户连接到服务器端一个Webapplication开始,直到客户端与此服务器端开连接为止,在此之间都可以访问到此session的有关属性及方法,在客户端与服务器端开连接时,此session也将消失。
在这次的网络课件系统中,我是利用session对象来保持用户和服务器的通信,我的源代码如下:
if(session.getValue("power")!
=null){
if(!
("2".equals(session.getValue("power").toString().trim()))){
returnMsg="您还没有登陆,请
";
returnMsg=returnMsg+"重新登录";
session.putValue("returnMsg",returnMsg);
response.sendRedirect("return.jsp");
return;
}
第三章开发总结与心得体会
本系统可实现用户注册、登录、查看课件等
(1)本系统利用了JSP技术、数据库等,可以更安全的保护系统和实现动画。
但是无论是那一种JSP实现,在一定的阶段它们的某些版本都会出现给系统带来的安全隐患,即使我们开发遵从了安全编程惯例也无济于事。
(2)由于本人的经验和技术等众多方面的不足,系统还存在很多缺点,希望各位老师指正,我也会努力去改进的。
随着互联网的发展,我相信JSP系统会做的更完善、会实现的功能也将会变的更多。
同时它也会带动其他方面的发展,网络课件也会因为它的发展而更流行,同时我也会把我的网络课件系统做的更完善。
参考文献
[1]JSP应用开发详解(含光盘)电子工业出版社2002.9
[2]JavaScript1.5实例教程高等教育出版社2001.4
[3]《信息系统开发》经济科学出版社1996.9
[4]《管理信息系统》电子工业出版社1999.9
[5]《软件开发工具》经济科学出版社1996.7
[6]XML/JSPProgrammingGuide网页编程教程经济科学出版社1999.4
目录
第一章引言3
一、系统概述3
二、JSP技术4
2.1JAVASCRIPT4
2.2JDBC技术5
第二章、设计思想与过程5
2.1整体布局6
2.2系统实现7
第三章开发总结与心得体会10
参考文献12