1、前言 信息时代的到来标志着”知识爆炸”时代的诞生,它对于人们的生活所带来的冲击是深刻而悠远的,以计算机技术为核心的信息技术的迅猛发展和广泛应用已经渗透到生活的没一个角落,我们的生活节奏,文化结构,思想理念无不感受到它的强大的震撼力,不仅是我们传统的工农业生产,政治,经济,军事等面临前所未有的挑战,教育作为我们生活的一个重要组成部分所面临的形式业异常严峻。如何有效提高学习效率变得至关重要而迫切,为教育开拓新的教学方法和方式变得十分必要,而以计算机为核心的信息技术业为这种探索提供了可靠的物质基础。其一,计算机的存储容量越来越大,运行速度越来越快,数据处理准确可靠;其二,计算机的普及,现在几乎每个
2、学生人手一部电脑。 因特网和校园网的发展和普及为学生通过网络进行学习创造了良好的条件,这即对学生即使获得知识以及进行交流提供了方便,也对学生熟练掌握计算机操作技术带来了好处。这一趋势的发展势必导致对基于网络的学识或辅助的软件需求的增加。《开放式实验室系统》力求结合教学实际,充分利用网络的优势和特点解决问题:学生实验互动安排包括个人上机预约和集体上机预约,实验答疑,设备管理,教师管理包括教师任课,补贴管理,人员管理。让学生可以通过网络自由的选择需要实验的项目,简化学生上机手续,同时减轻实验室负担。 第一章 实现工具介绍: 1.1 ASP Microsoft Active Se
3、rver Pages 即我们所称的 ASP ,其实是一套微软开发的服务器端脚本环境, ASP 内含于 IIS 3.0 和 4.0 之中 , 通过 ASP 我们可以结合 HTML 网页、 ASP 指令和 ActiveX 元件建立动态、交互且高效的 WEB 服务器应用程序。有了 ASP 你就不必担心客户的浏览器是否能运行你所编写的代码,因为所有的程序都将在服务器端执行,包括所有嵌在普通 HTML 中的脚本程序。当程序执行完毕后,服务器仅将执行的结果返回给客户浏览器,这样也就减轻了客户端浏览器的负担,大大提高了交互的速度。 以下罗列了 Active Server Pages 所独具的一些特点: 1
4、 使用 VBScript 、 Jscript 等简单易懂的脚本语言,结合 HTML 代码,即可快速地完成网站的应用程序。 2. 无须 compile 编译,容易编写,可在服务器端直接执行。 3. 使用普通的文本编辑器,如 Windows 的记事本,即可进行编辑设计。 4. 与浏览器无关 (Browser Independence), 用户端只要使用可执行 HTML 码的浏览器,即可浏览 Active Server Pages 所设计的网页内容。 Active Server Pages 所使用的脚本语言 (VBScript 、 Jscript) 均在 WEB 服务器端执行,用户端的
5、浏览器不需要能够执行这些脚本语言。 5.Active Server Pages 能与任何 ActiveX scripting 语言相容。除了可使用 VBScript 或 Jscript 语言来设计外,还可以使用由第三方所提供的其他脚本语言,譬如 Perl 等。脚本引擎是处理脚本程序的 COM(Component Object Model) 物件。 6.Active Server Pages 的源程序,不会被传到客户浏览器,因而可以避免所写的源程序被他人剽窃,也提高了程序的安全性。 7. 可使用服务器端的脚本来产生客户端的脚本。 8.ActiveX Server Componen
6、ts(ActiveX 服务器元件 ) 具有无限可扩充性。可以使用 Visual Basic 、 Java 、 Visual C++等编程语言来编写你所需要的 ActiveX Server Component 。 ASP 的出现使得广大 WEB 设计者不必在为客户浏览器是否支持而担心,实际上就算你 在同一个 .asp 文件中使用不同的脚本语言,你都无须为此担忧,因为所有的一切都将在服务器端进行,客户浏览器得到的只是一个程序执行的结果,而你也只需在 .asp 中声明使用不同的脚本语言即可。 学习 ASP 最好的方法莫过于亲自动手编写,这样才能在最短的时间内使各位掌握 ASP 的程序设计
7、技巧。 1.2 PHP (1) PHP是公开免费的。PHP是GUN标准的自由软件,可以下载从开发项目内容到软件错误报告等所有的PHP源代码都可以得到。可以说进行PHP程序开发工作几乎没有什么风险,它允许我们免费使用代码进行开发工作,可以节省大量系统软件的费用。 (2) 语法简单,易学易用。PHP是一种服务器端支持的HTML嵌入式脚本语言,大量采用了C、Perl、JavaScript的语法,并加入了自己的特征。只需掌握很少的编程知识就能使用PHP建立一个真正交互的Web站点。如对HTML非常了解,就可使用网页制作工具或手工制作优秀的Web站点。由于PHP代码能很方便的添加进HT
8、ML中,在设计和维护站点的同时,就可以很轻松地加入PHP使得网站更具有动态特性,开发PHP应用程序就容易得多,因为代码本身就封装在Web页面中。 (3) 面向对象的编程能力。PHP语言结构类似与C语言,如变量之间的运算符、控制结构语句、函数定义和调用等。基于Web的编程工作非常需要面向对象的变成能力 ,PHP提供了类和对象,在类方面的功能比较强,使得代码的可重复性应用变得非常简单。PHP支持构造器、提取类等,类中的构造器是建立某种类的新变量时自动被调用的函数,和类名一样的类中函数就是构造器。 (4) 支持众多网络协议。例如文件传输协议HTTP,网关协议SNMP、网络新闻组NNTP、帐号公用
9、NIS、与电子邮件有关的IMAP和POP3、Apache服务器目录协议LDAP以及其他相关协议,可以利用这些协议的服务进行网络编程。 (5) 具有强大的数据库操作能力,更丰富的函数库。它最强大和最重要的特征是它的数据库集成层,使用它完成一个含有数据库功能的网页程序变得非常简单。PHP的数据库功能应该说是它最有用的功能之一,它的特点就是内置了对很多数据库的支持,而不再需要重新扩充,无需编写其他代码。目前其支持范围覆盖了包括Oracle、Sybase、Mysql、ODBC等在内的大多数常见的数据库。 (6) 移植性强,跨多个平台。PHP是真正跨平台跨服务器的开发语言。目前PHP4在Linux
10、Windows的Web服务器上能正常运行,在IIS、Apache等通用Web服务器上同样运行良好,当用户更换平台时,其脚本可不经改变而容易地移到不同作业平台上,也就是用PHP编写的站点可以很容易的从一台主机上移到另一台主机上。 (7) 执行效率高。PHP采用HTML内置标记技术,服务器解释脚本不需要承担任何额外负担,解释程序本身作为Web服务器的一个模块运行,相当大的提高了运行时的解析速度,经测试表明,在Web站点访问量非常大时,PHP4的解析速度是传统CGI程序的4倍,非常适合小型站点的应用。 与PHP语言比较起来我觉得ASP上手更容易: 1、 简单易学,安装使用方便,只要你安装
11、了IIS哪么ASP就可以使用了。 2、 开发工具强大而多样。 3、 效率高。在低的访问量下,ASP能体现出一定的效率,这时它对机器的要求并不高。 虽然ASP+ACCESS安全性不是很好,但是这次所做的程序安全性要求不是很高,所以选择了ASP作为我的开发工具。 第二章 B/S模式 2.1 B/S结构 B/S结构,即Browser/Server(浏览器/服务器)结构,是随着Internet技术的兴起,对C/S结构的一种变化或者改进的结构。在这种结构下,用户界面完全通过WWW浏览器实现,一部分事务逻辑在前端实现,但是主要事务逻辑在服务器端实现,形成所谓3-tier结构。B/S结构
12、主要是利用了不断成熟的WWW浏览器技术,结合浏览器的多种Script语言(VBScript、JavaScript…)和ActiveX技术,用通用浏览器就实现了原来需要复杂专用软件才能实现的强大功能,并节约了开发成本,是一种全新的软件系统构造技术。随着Windows 98/Windows 2000将浏览器技术植入操作系统内部,这种结构更成为当今应用软件的首选体系结构。显然B/S结构应用程序相对于传统的C/S结构应用程序将是巨大的进步。 浏览器、服务器结构的网络系统,主要通过超文本(它可以包含一般的文本信息,静止的图片,活动视频图像以及声音等多媒体信息)来传送信息,它的信息成现方式、流程控制
13、以及系统数据处理均能很好的应用于教学的开发,正试基于次,本系统在开发时选用了浏览器/服务器体系结构 系统基于浏览器、服务器模式采用三层体系结构。所谓三层模型,通常是指的安装在客户端上的用户界面,应用服务器上的企业逻辑和数据库服务器上的数据库的总和。 传统的client/server应用程序对数据库的访问一般是通过读写.ini文件进行的,这样就使得数据库密码暴露在文本文件之中,极不安全。而三层模型结构只需一个提供一个网络地址和一个监听端口即可实现地数据库的授权访问,大大的减少了数据库外来的安全隐患。 2.2 ASP 技术的工作原理 ASP主要的功能是
14、在Web环境下,由客户端浏览器传递一些信息给Web服务器,再由Web服务器去启动所指定的程序代码来完成特定的工作,如图所示: 1.客户请求 2.执行ASP程序 3.数据库操作 客户 浏览器 Web 服务器 ASP 程序 Access 数据库 6.响应客户 5.动态产生HTML 4.返回查询结果 1.用户通过Web客户端浏览器请求某个功能页面。 2.Web服务器接受这个请求,根据系统的逻辑设计,将这个请求对应的ASP文件读出,并交给ASP处理程序。 3.ASP处理程序解释这个文件,执行相应的处理过程,如数据库访问与操作等。 4.A
15、SP从数据库中取得数据后,将按照文件要求,形成一个标准的HTML页面。 5.将生成的HTML页面交给Web服务器。 6.Web客户端浏览器将该HTML文件解释执行并显示出来。 这样就完成了一次客户端浏览器提出的某个ASP请求。从以上可以看出,由于脚本在服务器上,而不是在客户端浏览器上运行,传到浏览器上的Web页面是在服务器上生成的,所以服务器端脚本不易被复制,用户看不到所要浏览页上的ASP原代码,只能看到解释后的结果,这样就可以做到对源程序的保密。 2.3 ASP脚本调试 无论您的计划多么精密、经验多么丰富,脚本错误(bug)可能在最初就使您的ASP服务器端的脚本无法
16、正确运行。也就是说调试,即查找和纠正脚本错误,对开发一个成功的和强健的ASP程序是非常重要的。Microsoft脚本调试工具。 Microsoft Script Debugger是一个功能强大的调试工具,它能帮助您迅速查找错误并对服务器端的脚本进行交互测试。Script Debugger与Windows Internet Explorer 3.0版本或更新的版本一起工作。通过它,您可以:逐行运行服务器端脚本。 在服务器端脚本执行时,打开命令窗口监视变量、属性或数组元素的值。在特定行设置暂停标记,挂起服务器端脚本(使用调试工具或脚本命令)。 在运行服务器端脚本时跟踪过程。 注意您可以使用调
17、试工具查看脚本并找到错误所在,但是不能直接编辑脚本。要想改正错误,必须用编辑器编辑脚本然后保存,再运行脚本。 错误类型主要有:脚本错误 语法错误 运行时错误 逻辑错误。 第三章 教师联系表功能设计 3.1系统的功能结构 从系统使用者来看,教师联系表系统包含2个子系统,即教师用的子系统和学生用的子系统,其中教师和学生属于补同级别的用户权限范围,他们公用一个呈现主页以不同身份进入各自的功能模块,从而实现各自不同的功能。 3.2 模块设计 教师联系表的实现,功能模块如下: 基本思想是:普通用户可以拥有查找功能,管理员登陆后可以对数据库进行查询,更新,删除等操作.数据库我们这里
18、用Access。Access数据库作为微软推出的以标准JET为引擎的桌面型数据库系统,由于具有操作简单、界面友好等特点,具有较大的用户群体。因此ASP+Access成为许多中小型网上应用系统的首选方案.虽然现在access数据库有很多漏洞但他却是一种极易上手,操作简单的数据库. 接下来我会介绍些ASP+Access解决方案在为我们带来便捷的同时,也带来了不容忽视的安全问题。 3.3 数据库设计 3.3.1.数据库的需求分析: 根据系统功能设计的要求以及功能模块的划分,下面给出教师联系表的各个组成部分的数据项和数据结构: 电话列表:ID、姓名、部门、电话(办)、电话(宅)、手机、数据库更
19、新时间. 管理员表:用户名、密码. 3.3.2. 数据库的结构设计: 根据数据库的需求分析,我们建立以表如下: 字段名称 数据类型 说明 ID 自动编号 name 文本 姓名 dept 文本 部门 P1 数字 电话(办) P2 数字 电话(宅) pm 数字 手机 bzxx 日期/时间 修改时间 电话列表 字段名称 数据类型 说明 ID 自动编号 name 文本 pass 数字 表中的数据可在access中直接导入excel
20、中的数据.这里需要提及的是由于Access数据库的加密机制非常简单,所以即使数据库设置了密码,解密也很容易。该数据库系统通过将用户输入的密码与某一固定密钥进行异或来形成一个加密串,并将其存储在*.mdb文件中从地址“&H42”开始的区域内。由于异或操作的特点是“经过两次异或就恢复原值”,因此,用这一密钥与*.mdb文件中的加密串进行第二次异或操作,就可以轻松地得到Access数据库的密码。基于这种原理,可以很容易地编制出解密程序。在ASP+Access应用系统中,如果获得或者猜到Access数据库的存储路径和数据库名,则该数据库就可以被下载到本地.只要数据库被下载,其信息就没有任何安全性可言了
21、具体一些解决方法将在下面提出. 3.4 数据库操作----SQL语言 SQL是英文Structured Query Language的缩写,意思为结构化查询语言。SQL语言的主要功能就是同各种数据库建立联系,进行沟通。按照ANSI(美国国家标准协会)的规定,SQL被作为关系型数据库管理系统的标准语言。SQL语句可以用来执行各种各样的操作,例如更新数据库中的数据,从数据库中提取数据等。目前,绝大多数流行的关系型数据库管理系统,如Oracle, Sybase, Microsoft SQL Server, Access等都采用了SQL语言标准。虽然很多数据库都对SQL语句进行了再开发和扩展
22、但是包括Select, Insert, Update, Delete, Create, 以及Drop在内的标准的SQL命令仍然可以被用来完成几乎所有的数据库操作。下面就详细介绍一下SQL语言的基本知识。 3.4.1 数据库表格 一个典型的关系型数据库通常由一个或多个被称作表格的对象组成。数据库中的所有数据或信息都被保存在这些数据库表格中。数据库中的每一个表格都具有自己唯一的表格名称,都是由行和列组成,其中每一列包括了该列名称,数据类型,以及列的其它属性等信息,而行则具体包含某一列的记录或数据。 3.4.2 数据查询 在众多的SQL命令中,select语句应该算是使用最频
23、繁的。select语句主要被用来对数据库进行查询并返回符合用户查询标准的结果数据。Select语句的语法格式如下: select column1 [, column2,etc] from tablename [where condition]; ([] 表示可选项) select语句中位于select关键词之后的列名用来决定那些列将作为查询结果返回。用户可以按照自己的需要选择任意列,还可以使用通配符“*”来设定返回表格中的所有列。 select语句中位于from关键词之后的表格名称用来决定将要进行查询操作的目标表格。 Select语句中的where可选从句用来规定
24、哪些数据值或哪些行将被作为查询结果返回或显示。 在where条件从句中可以使用以下一些运算符来设定查询标准:= 等于 > 大于 < 小于 >= 大于等于 <= 小于等于 <> 不等于 . 除了上面所提到的运算符外,LIKE运算符在where条件从句中也非常重要。LIKE运算符的功能非常强大,通过使用LIKE运算符可以设定只选择与用户规定格式相同的记录。此外,我们还可以使用通配符“%”用来代替任何字符串。举例如下: select firstname, lastname, city from employee where firstname LIKE ‘E%’; (注意
25、字符串必须被包含在单括号内) 上述SQL语句将会查询所有名称以E开头的姓名。 此外还可以嵌入运算函数 SUM,AVG 和COUNT等,这些函数是SQL语言中另一个较为常用的运算函数。例如COUNT函数可以用来计算数据表中指定字段所包含的记录数目。语法格式为: SELECT COUNT("column_name") FROM "table_name" 3.4.3 创建表格 SQL语言中的create table语句被用来建立新的数据库表格。create table语句的使用格式如下: create table tablename 简单来说,创
26、建新表格时,在关键词create table后面加入所要建立的表格的名称,然后在括号内顺次设定各列的名称,数据类型,以及可选的限制条件等。注意,所有的SQL语句在结尾处都要使用“;”符号。 使用SQL语句创建的数据库表格和表格中列的名称必须以字母开头,后面可以使用字母,数字或下划线,名称的长度不能超过30个字符。注意,用户在选择表格名称时不要使用SQL语言中的保留关键词,如select, create, insert等,作为表格或列的名称。 3.4.4 向表格中插入数据 SQL语言使用insert语句向数据库表格中插入或添加新的数据行。Insert语句的使用格式如下: i
27、nsert into tablename (first_column,...last_column) values (first_value,...last_value); 简单来说,当向数据库表格中添加新记录时,在关键词insert into后面输入所要添加的表格名称,然后在括号中列出将要添加新值的列的名称。最后,在关键词values的后面按照前面输入的列的顺序对应的输入所有要添加的记录值。 3.4.5 更新记录 SQL语言使用update语句更新或修改满足规定条件的现有记录。update语句的格式为: update tablename
28、 set columnname = newvalue [, nextcolumn = newvalue2...] where columnname OPERATOR value [and|or column OPERATOR value]; 例如: update employee set age = age+1 where first_name= ‘Mary’and last_name= ‘Williams’; 使用update语句时,关键一点就是要设定好用于进行判断的where条件从句。 3.4.6 删除记录
29、 SQL语言使用delete语句删除数据库表格中的行或记录。Delete语句的格式为: delete from tablename where columnname OPERATOR value [and|or column OPERATOR value]; 简单来说,当需要删除某一行或某个记录时,在delete from关键词之后输入表格名称,然后在where从句中设定删除记录的判断条件。注意,如果用户在使用delete语句时不设定where从句,则表格中的所有记录将全部被删除。 3.4.7 删除数据库表格 在SQL语言中使用drop table
30、命令删除某个表格以及该表格中的所有记录。drop table命令的使用格式为: drop table tablename; 如果用户希望将某个数据库表格完全删除,只需要在drop table命令后输入希望删除的表格名称即可。drop table命令的作用与删除表格中的所有记录不同。删除表格中的全部记录之后,该表格仍然存在,而且表格中列的信息不会改变。而使用drop table命令则会将整个数据库表格的所有信息全部删除。 以上,我们对SQL语言主要的命令和语句进行了较为详细的介绍。应该说SQL语句的语法结构和风格还是相当简单和直观的. 第四章 教师联系表的模块实现 有
31、了上面的基础,接下来我们实现模块功能: 4.1 用户普通页面: 查找界面: 可以按教师姓名,教师电话(办),教师电话(宅),教师手机字段进行查找。 按教师电话(办)查找结果: 注意:这里“返回上一页”按钮用的是javascript技术实现: