68
网网网 网网网网 网网网 网网网网 Networks System Networks System Integrating Integrating 网网网网网网网网网网网网 网网网网网网网网网网网网 2005 2005 4 4 网网网 网网网 Web Web 网网网网网网网 网网网网网网网

网络系统集成技术 Networks System Integrating

Embed Size (px)

DESCRIPTION

第六章 Web 数据库开发基础. 网络系统集成技术 Networks System Integrating. 莆田学院现代教育技术中心 2005 年 4 月. 第六章 Web 数据库开发基础. 本章主要内容. 6.1 Web 数据库的概念 6.2 Web 数据库访问技术 6.3 Web 数据库的技术实现 6.4 ASP 基础 —— 内置对象 6.5 ASP 基础 —— Web 库操作 下学期有 《Web 数据库程序设计 》 课,本章只结合实例作简要介绍. 6.1 Web 数据库的概念. What is a Web Database?. - PowerPoint PPT Presentation

Citation preview

Page 1: 网络系统集成技术 Networks System Integrating

网络系统集成技术网络系统集成技术Networks System IntegratingNetworks System Integrating

莆田学院现代教育技术中心莆田学院现代教育技术中心20052005 年年 44 月月

第六章 第六章 WebWeb 数据库开发基础数据库开发基础

Page 2: 网络系统集成技术 Networks System Integrating

莆田学院现代教育技术中心 2005年4月

第六章 第六章 WebWeb 数据库开发基础数据库开发基础

Page 3: 网络系统集成技术 Networks System Integrating

莆田学院现代教育技术中心 2005年4月

本章主要内容本章主要内容 6.1 Web 数据库的概念 6.2 Web 数据库访问技术 6.3 Web 数据库的技术实现 6.4 ASP 基础——内置对象 6.5 ASP 基础—— Web 库操作

下学期有《 Web 数据库程序设计》课,本章只结合实例作简要介绍

Page 4: 网络系统集成技术 Networks System Integrating

莆田学院现代教育技术中心 2005年4月

6.1 Web6.1 Web 数据库的概念数据库的概念

Page 5: 网络系统集成技术 Networks System Integrating

莆田学院现代教育技术中心 2005年4月

What is a Web Database?What is a Web Database? A database in a website Three layer structure:

Browser/Server/Database Server Client: Browser + HTML standard Server: HomePage +Programming+Database

HomePage: Forms Designing an interacting user interface

Programming: CGI/ASP/PHP/JSP/… Writing programs to access a database in a website

Database: Access/SQL server/… Building a data storage and management system

Page 6: 网络系统集成技术 Networks System Integrating

莆田学院现代教育技术中心 2005年4月

地址栏中的网址

浏览器上网页形成的过程浏览器上网页形成的过程

用户电脑

浏览器 http 请求

传送网页

Web 服务器

网页浏览原理: 浏览器( client 端)——用户电脑 发出 HTTP 请求,并按 HTML 等形式显示网页文件内容 网站( server 端)—— Web 服务器 响应浏览器请求,传送网页文件给浏览器 网页

文件

Page 7: 网络系统集成技术 Networks System Integrating

WebWeb 数据库的存取方式(一)数据库的存取方式(一)

用户电脑

浏览器

返回存取结果

Web 服务器

Web 数据库

CGI 程序

执行

存取

通过服务器端的 CGI 程序响应用户查询要求用户通过表单提交后,指定的服务器端 CGI 程序对 Web 数据库进行存取操作,而后将结果以网页( HTML )形式返回到客户端

用户输入数据

Page 8: 网络系统集成技术 Networks System Integrating

WebWeb 数据库的存取方式(二)数据库的存取方式(二)

用户电脑

浏览器读取 asp 网页

返回 html 码结果

Web 服务器( IIS 或 PWS )

Web 数据库

ODBC驱动程序

执行执行

存存取取

通过服务器端的 asp 程序响应用户的要求服务器接受用户端请求时会判断要求下载的是否 .asp 文件,如不是,直接发送网页。如是,再判断该文件是否含有使用 ADO 对象的 script ( JavaScript 或 VBScript )内容。如有,启动对应的 ODBC 驱动程序,通过 ADO 对象访问数据库。如需显示结果,则 Script 会利用 ASP 提供的输出对象送出数据传送给浏览器。

含有 ADO 对象的 ASP 指令、 VBScript 、 JavaScript 程序段

Page 9: 网络系统集成技术 Networks System Integrating

莆田学院现代教育技术中心 2005年4月

静态网页与动态网页静态网页与动态网页 所谓静态网页,指的是网页从服务器传到

客户端时,网页的内容是“固定不变”的,也就是说,服务器只是把所存储的网页的内容原封不动直接传递给客户端浏览器,这种网页一般是标准的 HTML 代码。

所谓动态网页,它在由服务器传递给客户端的时候将由服务器把它转换成相应的HTML 格式,而且会根据用户的要求和选择在服务器端做出相应的改变和响应。

Page 10: 网络系统集成技术 Networks System Integrating

莆田学院现代教育技术中心 2005年4月

动态网页 动态网页 网页的静态和动态,是指网页的内容是否可根据某种条件的改变

而自动改变,与页面是否有动画性变化无关。 网页计数器:动态的,当有人点击网页时,计数器的值会自动增加 BBS 论坛:动态的,用户发布信息时,网页内容会自动更新,显示

出新发布的信息及相关回复;等等。 Flash 等动画(如 Flash ):静态的,一旦制作完成后就不会再改

变。 实现动态网页,要用到一些动态语言,如 ASP 、 PHP 、 CGI 、

JSP 、 ASP.NET 等。因此我们判断动态、静态网页时,可以简单的认为,采用了以上语言编写的网页,肯定是动态的,而只采用了 html 文件的网页,则是静态的。

静态网页文件名后缀有 .htm 、 .html 、 .shtml 、 .xml 等常见形式,而动态网页文件名后缀有 .asp 、 .jsp 、 .php 、 .pl 、 .cgi等常见形式

Page 11: 网络系统集成技术 Networks System Integrating

莆田学院现代教育技术中心 2005年4月

6.2 Web6.2 Web 数据库访问技术数据库访问技术

Page 12: 网络系统集成技术 Networks System Integrating

莆田学院现代教育技术中心 2005年4月

ASPASP 开发技术开发技术 ASP ( Active Server Pages , 活动服务器页)

微软公司 97 年推出的一种网页与数据库解决方案,利用微软的ActiveX 技术在服务器端动态生成 HTML 页面的一种脚本环境。 ASP 是一种运行于服务器端的 Web 应用程序开发技术,它采用封装对象,程序调用对象的技术,简化了编程。开发者无需进行复杂编程,就可以开发出动态的、交互的、各种功能的 Web 应用程序。ASP 应用程序必须运行在配备 IIS(Windows NT/2000/2003) 或PWS(Windows 9X) 的服务器上。 IIS (Internet Information Server) PWS (Personal Web Server)

常用开发工具: Microsoft Visual InterDev Macromedia DreamweaverUltraDev

最新一代: ASP.NET ( http://www.asp.net/ )

ActiveX VC++ MSDN 的解释: A set of technologies that enables software components to interact

with one another in a networked environment, regardless of the language in which they were created. ActiveX™ is built on the Component Object Model (COM).

《金山词霸》的解释: 微软倡导的 ActiveX 网络化多媒体对象技术

Page 13: 网络系统集成技术 Networks System Integrating

莆田学院现代教育技术中心 2005年4月

关于关于 ASP.NETASP.NET 由于 ASP 程序和网页的 HTML 混合在一起,使得程序看上去

相当的杂乱。而在现在的网站设计过程中,通常是由程序开发人员做后台的程序开发,前面有专业的美工设计页面,这样,在相互配合的过程中就会产生各种各样的问题。同时, ASP 页面是有脚本语言解释执行的,速度受到影响。受到脚本语言自身条件的限制,而且在编写 ASP 程序的时候不得不调用 COM组件来完成一些功能。由于以上种种限制,微软推出了ASP.NET 。

ASP.NET 提供了一个全新而强大的服务器控件结构。从外观上看, ASP.NET 和 ASP 是相近的,但是从本质上是完全不同的。ASP.NET 几乎全是基于组件和模块化,每一个页、对象和HTML 元素都是一个运行的组件对象。在开发语言上, ASP.NET 抛弃了 VBScript 和 JScript ,而使用 .NET Framework 所支持的 VB.NET , C#.NET 等语言做为其开发语言,这些语言生成的网页在后台被转换成了类并编译成了一个DLL 。由于 ASP.NET 是编译执行的,所以它比 ASP 拥有了更高的效率。

Page 14: 网络系统集成技术 Networks System Integrating

莆田学院现代教育技术中心 2005年4月

PHP ( Personal Home Page Tools )类似于 ASP 的一种服务器端脚本语言,其语法大多从C 、 JAVA 、 PERL 语言中借来,可更快速开发交互式动态网页。跨平台强大的数据库集成功能(相同的 PHP 代码无需更改即可在不同操作系统的 Web 服务器上运行),但提供的数据库接口不统一(如对 Oracle 、 Sybase 和 MySQL 的接口不同)等原因,不适合于电子商务类网站。最佳组合: Linux+Apache+MySQL+PHP

目前 Internet 上流行的网站构架方式,即使用 Linux 作为操作系统,Apache 作为 Web 服务器, MySQL 作为数据库, PHP 作为服务器端脚本解释器。由于这四个软件都是开放源码软件,因此使用这种方式不用花一分钱就可以建立起一个稳定、免费的网站系统。常用开发工具: ZDE ( ZEND DEVELOPMENT ENVIORMENT ) PHPED

最新版本: PHP5.0.4 (课件目录下可下载)主要网站: www.php.net

PHPPHP 开发技术开发技术

Page 15: 网络系统集成技术 Networks System Integrating

莆田学院现代教育技术中心 2005年4月

JSP ( Java Server Pages )JSP 是由 Sun Microsystems 公司倡导、许多公司参与一起建立的一种动态网页技术标准。 在传统的网页 HTML文件 (*.htm,*.html) 中加入 Java 程序片段 (Scriptlet) 和 JSP标记 (tag) ,就构成了 JSP 网页(*.jsp) 。 Web 服务器在遇到访问 JSP 网页的请求时,首先执行其中的程序片段,然后将执行结果以 HTML格式返回给客户。程序片段可以操作数据库、重新定向网页以及发送 email 等等,这就是建立动态网站所需要的功能。所有程序操作都在服务器端执行,网络上传送给客户端的仅是得到的结果,对客户浏览器的要求最低,可以实现无Plugin ,无 ActiveX ,无 Java Applet ,甚至无 Frame 。 跨平台支持(国外电子商务类网站多采有 JSP 技术)通过 JDBC 实现与数据库的连接

JSPJSP 开发技术开发技术

Page 16: 网络系统集成技术 Networks System Integrating

莆田学院现代教育技术中心 2005年4月

ASP主要适用于 Windows NT/2000/2003 服务器平台,与IIS 配套,无须专门安装即可使用; PHP 和 JSP 在大多数Linux 、微软 Windows 平台、 UNIX 平台上均可用,但需专门安装。

ASP 网页的文件扩展名为 .asp , PHP 网页的文件扩展名为 .php , JSP 网页的文件扩展名为 .jsp

性能比较(循环性能和数据库存取测试) 循环性能: JSP 20000×20000次循环( 4秒) /ASP 和 PHP

2000×2000次循环(相差 100倍)分别为 63秒和 84秒 数据库存取(对 Oracle8 进行 1000次插入 / 更新 /选择 /删除操

作): JSP 13秒 / PHP 69秒 / ASP 73秒

其余参见 P329

表 10-1 ASP 、 PHP 与 JSP 技术的平台性能比较表 10-2 ASP 、 PHP 与 JSP 技术的应用性能比较

ASPASP 、、 PHPPHP 与与 JSPJSP 技术性能比较技术性能比较

Page 17: 网络系统集成技术 Networks System Integrating

莆田学院现代教育技术中心 2005年4月

CGICGI 开发技术开发技术 CGI (Common Gateway Interface , 通用网关接口 )

用于连接主页和应用程序的接口。HTML 语言的功能比较贫乏,难以完成诸如访问数据库等一类的操作,如果需要先对数据库进行操作 ( 比如文件检索系统 ) ,然后把访问的结果动态地显示在主页上,只用 HTML 是无法做到的,所以 CGI便应运而生。CGI 是在 WebServer 端运行的一个可执行程序,通过主页链接激活进行调用,并对该程序的返回结果进行处理,显示在主页上。最常用的 CGI 编程语言有 Perl ,此外还有 C,C++, shellScript 和 VB 。 Perl 编程效率最高,功能最强,但程序调试性较差。CGI 网页的文件扩展名与所用编程语言有关。如 Perl 为 .pl,VB 为 .bas 等。缺点 :安全性较差 /繁多进程占用大量服务器资源 / 编程困难,而且没有自动保留状态信息的功能(如用户状态),已不多用此外使用 CGI 程序时,需要不断地产生和销毁进程( process ),执行效率不 高,一般情况: HTML 100% ASP 10% CGI 1%

Page 18: 网络系统集成技术 Networks System Integrating

莆田学院现代教育技术中心 2005年4月

6.3 Web6.3 Web 数据库的技术实现数据库的技术实现

Page 19: 网络系统集成技术 Networks System Integrating

莆田学院现代教育技术中心 2005年4月

建立数据库 安装该数据库所需的 ODBC驱动程序 创建 ODBC 数据源 制作表单网页和 ASP 网页

应用程序Access 数据库

Oracle 数据库

VFP 数据库

……

Access ODBC Driver

VFP ODBC Driver

Oracle ODBC Driver

基本原理与流程基本原理与流程

Page 20: 网络系统集成技术 Networks System Integrating

莆田学院现代教育技术中心 2005年4月

小型网站常用小型网站常用 WebWeb 数据库软件——数据库软件—— AccessAccess

Microsoft Office 家族中的一员,是一种数据库软件。 其数据库中有一个或多个表 (table) ,表中又有一个或多

个数据栏 (field) ,数据栏中存放的是实际的数据( data )。

除了可以用来生成和管理数据库,还有一个功能,即制作ASP 网页。

Access 数据库( .mdb) 生成的方法: 新建→空 Access 数据库→创建表→…… 可以将其他相关文件(如 .dbf 、 .xls 等文件)转换

为 .mdb 文件(获取外部数据→ 导入) 一个 Access 数据库可以有多个表。彼此之间可通过主关键字关联。

Page 21: 网络系统集成技术 Networks System Integrating

莆田学院现代教育技术中心 2005年4月

实用技术实用技术 外部数据转入 (使用其他

文件的数据 )获取外部数据→导入

数据转出导出

复制数据 ( 上图 ) 随机密码的生成 (下图 )

要产生一组介于上限和下限之间的随机数 : (9999-1000) ×Rnd(-Timer())+1000 ( 上限 -下限 ) × 随机数 +下限 示例 : "jdw%"+CStr(Int((9999-1000)*Rnd(-Timer())+1000))+"#"

Page 22: 网络系统集成技术 Networks System Integrating

莆田学院现代教育技术中心 2005年4月

名词解释名词解释 ODBC(Open DataBase Connectivity, 开放式数

据库互联)由微软公司制定的数据库标准接口。只要用户使用的数据库软件提供了 ODBC驱动程序,就可让应用程序来存取这些数据库。早期的数据库程序开发者必须使用服务器数据库厂商提供的开发工具才能实现数据库的存取,因为每种数据库软件建立的文件类型不同。通过ODBC则可以存取不同厂商所提供的服务器数据库。

Page 23: 网络系统集成技术 Networks System Integrating

莆田学院现代教育技术中心 2005年4月

创建创建 ODBCODBC 数据源数据源安装数据库驱动程序 在 Office套件安装后,一般情况下 Access

的 ODBC驱动程序为已安装。 创建系统数据源 系统 DSN→添加→选择驱动程序→ ODBC Microsoft Access安装→数据源名 → 选取数据库→高级 (设置存取密码 )

Page 24: 网络系统集成技术 Networks System Integrating

莆田学院现代教育技术中心 2005年4月

检查服务器的检查服务器的 ASPASP 是否正常是否正常 IIS 的默认 Web 站点设置检查

主目录 文档

测试 ASP工作是否正常 编写一个 a.asp 文档,存放在主目录下 a.asp 文件内容 <%=now%> http://127.0.0.1/asp 浏览器窗口上应出现当时日期和时间显示

Page 25: 网络系统集成技术 Networks System Integrating

莆田学院现代教育技术中心 2005年4月

相关的相关的 HTMLHTML知识知识 (( 复习复习 ))

问题: HTML (Hyper Text Markup Language,超文本标记语言 ) —— 为什么如此称呼?

问题: 网页基本构成 <html> <head> <title> <body>

问题 : 常见标记 <br> <p> <table> <tr> <td> <a href =“url ”>

问题:表单基本构成 <form name =“student ” action=“url ” method= * > …… <input type=submit> <input type=reset> </form>

问题:表单元素——文本框、复选框、单选按钮、列表框…

Page 26: 网络系统集成技术 Networks System Integrating

莆田学院现代教育技术中心 2005年4月

Page 27: 网络系统集成技术 Networks System Integrating

莆田学院现代教育技术中心 2005年4月

常见表单元素(常见表单元素( 11 )) 文本框

<input type=text value=“name” size= 10 maxlength=20 >

普通文本框显示长度为 10字符、最大长度为 20 个字符 <input type=password name=“pwd”>

密码型文本框 多行文本框(文本区域)

<textarea name=comment rows=5 cols=50 ></textarea>

5行每行 50 个字符的多行文本框

Page 28: 网络系统集成技术 Networks System Integrating

莆田学院现代教育技术中心 2005年4月

常见表单元素(常见表单元素( 22 )) 复选框

<input type=checkbox name=fruit1>香蕉<input type=checkbox name=fruit2

checked>苹果 (已预选)多个复选框中的 name 不能同值

单选框<input type=radio name=fruit1>香蕉<input type=radio name=fruit2 checked>苹果 (已预选)

Page 29: 网络系统集成技术 Networks System Integrating

莆田学院现代教育技术中心 2005年4月

常见表单元素(常见表单元素( 33 ))下拉列表框 <select name=“xb" size="1">

<option value="jxx"> 电子信息工程学系 </option>

<option selected value="wyx"> 外国语言学系 </option>

<option value="zwx">汉语言文学系 </option>

<option value="tyx">体育系 </option>

</select>

Page 30: 网络系统集成技术 Networks System Integrating

莆田学院现代教育技术中心 2005年4月

常见表单元素(常见表单元素( 44 )) 单选列表框与多选列表框<select name=“others" size="3" multiple>

<option value="leader">系部领导 </option>

<option value="head“ >学院领导 </option>

<option value=“student_head">学生干部 </option>

<option value="professors">高职称教师 </option>

</select>

size="3” 显示三行 multiple 多选

Page 31: 网络系统集成技术 Networks System Integrating

莆田学院现代教育技术中心 2005年4月

表单及其数据的读取表单及其数据的读取 Form( 表单 )设计

每一个输入栏必须设定 NAME属性 , 当数据被送出时 ,NAME属性的值会和其相对应的 VALUE属性的值被转换为“ NAME=VALUE” 的形式发送。不同的输入栏中间会以“ &” 作分隔,即会形成“ NAME1=VALUE1&NAME2=VALUE2” 的形式

两种提交方法 GET 使用 URL 直接向服务器提交数据

数据加在 URL 名后 , 用“?”分隔 (总长度不得超过 1024 个字节 )

POST 通过 STDIN( 标准输入 )提交数据 数据编码后隐密发送,且长度不受限制

Page 32: 网络系统集成技术 Networks System Integrating

莆田学院现代教育技术中心 2005年4月

METHOD = GETMETHOD = GET GET 方法的含义 Brower 按 HTTP(HyperText Transfer Protocol) 将用户提交的数据传送出去,而 Server 会把数据存放在服务器环境变量 QUERY_STRING 中,供处理程序(由表单的action属性指定)使用。适合于传输少量的非隐密性的数据。

什么是环境变量? 一些由 WEB 服务器软件申明的、保存用户信息的内存区。

当服务器软件一旦运行,这些环境变量就存在于服务器内存中。当服务器收到一个客户机的请求后,它首先要收集它能得到的所有相关信息,并把它放入内存的环境变量中,等待 ASP/PHP/CGI 等程序去处理。

Page 33: 网络系统集成技术 Networks System Integrating

莆田学院现代教育技术中心 2005年4月

METHOD = POSTMETHOD = POST

POST 方法的含义 把用户在表单中填写的数据变成一个数据包 / 数据流传给表单的 Action属性指定的处理程序。

适合传输较大量的或隐密性的数据最常用

Page 34: 网络系统集成技术 Networks System Integrating

莆田学院现代教育技术中心 2005年4月

示例示例 <FORM METHOD=GET action=“http://xxx/a.asp”> <input name=“name1” value=“aabb”><br> <input name=“name2” value=“ccdd”><p> <input type=“submit” value=“submit”> <input type=“reset” value=“reset”> </FORM> 提交后相当于客户机向服务器发出了一个如下的 URL 请求: http://xxx/a.asp?name1=aabb&name2=ccdd 此时服务器端的环境变量 QUERY_STRING 和环境变量 REQUEST_

METHOD 的值改变为: QUERY_STRING=“name1=aabb&name2=ccdd”

REQUEST_METHOD=GET ASP 程序可以用以下语句读取表单元素的值 Request(“ 表单元素名” ) Request.QueryString(“ 表单元素名” ) (仅用于 GET 方法)

Page 35: 网络系统集成技术 Networks System Integrating

莆田学院现代教育技术中心 2005年4月

表单提交时字符的编码规则表单提交时字符的编码规则 变量之间用“ &”分隔 变量与其对应值之间用“ =”分隔 空格以“ +” 代替特殊字符如“ &” 、 “ =” 、 ASCII 码 128

以上的字符及汉字,以“ %XX” 代替,其中“ XX” 为特殊字符的 16进制 ASCII 码

空格为非法数据任意不可打印的 ASCII控制字符为非法字符

Page 36: 网络系统集成技术 Networks System Integrating

莆田学院现代教育技术中心 2005年4月

示例示例表单( 6-1.htm )元素: 你的姓名( name ):输入“张三” 你的密码( pwd ):输入“ ab cd” 性别( male ):单选“男” (value=male)提交给服务器时将会显现:

http://127.0.0.1/test.asp?name=%D5%C5%C8%FD &pwd=ab+cd&sex=male&Submit=%CC%E1%BD%BB解读: %D5%C5 “张” (一个汉字两个字节) %C8%FD “三” + 空格(用“ +” 代替)

把 6-1.htm 中的传送方法 GET 改为 POST试试(思考:为什么 pwd值不会显示)※

Page 37: 网络系统集成技术 Networks System Integrating

莆田学院现代教育技术中心 2005年4月

注意注意 :: 传递信息不仅是传递信息不仅是 FORMFORM

利用 Form 在不同页面之间传递用户信息是最可靠的——适用于任何浏览器

亦可通过其他方式,如 ch6-1.1.htm<a href=“member.asp?name=张三 &sex=男 &age=23”>张三 </a>

<a href=“member.asp?name=张三 &sex=女 &age=21”>李四 </a>

如果 ASP 文件主要针对 Internet ,以Form 为佳

Page 38: 网络系统集成技术 Networks System Integrating

莆田学院现代教育技术中心 2005年4月

登录程序示例登录程序示例 6-3.htm

Page 39: 网络系统集成技术 Networks System Integrating

莆田学院现代教育技术中心 2005年4月

6.4 ASP6.4 ASP 基础——内置对象基础——内置对象

Page 40: 网络系统集成技术 Networks System Integrating

莆田学院现代教育技术中心 2005年4月

ASPASP 的内置对象的内置对象 ASP包括 7 个内置对象,这些内置对象共同组成的 ASP 的基本框架。内置

对象的意义在于:它们在 ASP 页内生成且有脚本中使用它们前无须创建。编程者只要了解这些内置对象的属性、方法和事件,就可以非常方便地开发自己的 Web 应用程序。

• Request 获取用户通过浏览器表单向服务器发送的信息• Response 将执行结果传输给用户浏览器• Session 用来记录连接者的信息(每个连接者都有一个独立的 Session

对象)• Application 用来记录不同网页的共用信息(所有用户可共用该信息)• Server 与用于提供对服务器的访问,如和其他对象配套(如与 ADO

对象配套)使用,与库文件产生链接。• Asperror 用于出错处理• Objectcontext 用于通过 Microsoft Transaction Server 来提交或中止某项

交易

最后两项是 ASP 3.0 新增的对象

Page 41: 网络系统集成技术 Networks System Integrating

莆田学院现代教育技术中心 2005年4月

在在 ASPASP 页面中使用脚本页面中使用脚本 <% %> IIS默认的脚本语言是

VBScript ,必要时可改为 JavaScript

方法: IIS→默认Web 站点→属性→主目录→配置→应用程序选项(右图)

Page 42: 网络系统集成技术 Networks System Integrating

莆田学院现代教育技术中心 2005年4月

RequestRequest 对象对象 用于处理 HTTP协议的请求 获取用户信息可以有多种常用形式

Request(element) Request.Form(element) (index) Request.QueryString(element) Request.QueryString(index)

实例分析 EXAMexam6-1.1.htm 及对应的 member.asp Form1.htm 及对应的 form1.asp

Page 43: 网络系统集成技术 Networks System Integrating

莆田学院现代教育技术中心 2005年4月

ResponseResponse 对象对象 用于负责 HTTP协议的响应,如将 asp处理后的

变量值等转换为 HTML元素输出到用户浏览器上 常用形式

Response.Write 相当于 C 语言中的 print Response.Redirect “URL” 实现页面的跳转 Response.End 结束 ASP运行进程并将执行好的

HTML 文件送向用户浏览器

实例分析 Register.htm 及对应的 Redirect.asp

Page 44: 网络系统集成技术 Networks System Integrating

莆田学院现代教育技术中心 2005年4月

ServerServer 对象对象 提供对服务器相关的操作 常用形式

Server.CreatObject("ActiveX组件名 ") 创建一个 ActiveX Server组件对象的实例 示例 : Server.CreatObject("ADODB.Connection")

Server.MapPath(" 文件路径 \ 文件名 ") 将指定的路径及文件映射到服务器网站目录下 如果网站所在虚拟目录是 c:\Inetpub\wwwroot 则 Server.MapPath("Data.mdb") 表示

c:\Inetpub\wwwroot\Daba.mdb 而 Server.MapPath("stu\stu.mdb") 和 Server.MapPath("..\

teacher\teacher.mdb")分别表示 c:\Inetpub\wwwroot\ stu\stu.mdb c:\Inetpub\teacher\teacher.mdb

Page 45: 网络系统集成技术 Networks System Integrating

莆田学院现代教育技术中心 2005年4月

SessionSession 对象对象 在一次用户访问期间 (“ 会话期间” ), 当用户在一个应用程序的页与

页之间跳转时 , 用户信息 ( 如用户在登录时输入的密码 ) 无法保留,其结果要么某一页可以绕过密码检查而任意访问,要么每一页都要重新输入密码。

使用 ASP 的 session 对象,可以为每个用户保存个人相关信息。例如用 session 变量来保存某个用户的帐号和密码,只要用户没有关掉浏览器,则这些信息会一直得以保存,并可以 session 变量的形式被调用。

Session 变量的有效执行时间 ( 用户暂停动作时间 )默认是 20分钟。可用以下语句改变其值:

Session.Timeout=分钟数 示例: session("usr")=Request.Form("xh") session("pwd")=Request.Form("pw") 在本页及以后各页就可以通过下页示例进行密码校验,而不必让用户每页都输入密码。

Page 46: 网络系统集成技术 Networks System Integrating

莆田学院现代教育技术中心 2005年4月

<% If session("pwd")<>"…" then %> <a href=“index.htm">返回上页 </a><p> <% Response.Write "密码输入错误,请返回上页重新输入! " Response.end End if %>

<% If Session("pwd")<>Session("RS").Fields(“password") Then %> <a href="xkxt.htm">返回选课系统首页 </a><p> <% Response.Write “学号、密码输入错误或个人资料不正确,请返回选课系统首页重新输入! " Response.End End if %>

session("RS").Fields(“password") 是用变量 session("usr") 从数据库中取出的用户密码字段值

Page 47: 网络系统集成技术 Networks System Integrating

莆田学院现代教育技术中心 2005年4月

ApplicationApplication 对象对象 用于保存不同用户之间共有的信息 实例(见招生查询首页— 2004zs.asp)

最简单的“计数器” 当前在线人数: <%=Application(“whoison")%> 人

另一实例:<% If Application("whoison")>50 then response.write " 当前在线人数 "+cstr(Application("whoison"))+" 人。 <br><br>" response.write " 选课人数太多 , 请退回选课首页 ,稍后再试…… <br><br>"%> <a href="http://202.101.111.195/cgi-bin/xk0412/xkxt.htm">返回上页 </a><p><% response.end end if %>变量 Application(“whoison") 由一个必须存放在网站根目录下的 global.asa 文件定义

Page 48: 网络系统集成技术 Networks System Integrating

莆田学院现代教育技术中心 2005年4月

小结:网页数据传送方式比较小结:网页数据传送方式比较让用户提交的信息通过浏览器跨页传送

表单希望保存某一用户相关的变量

Session 需要在一次访问多页文件中使用时 Cookie 需要在客户端长期保存用户信息以便多次访问使用时

多个用户共同使用某一共享变量 Application

Page 49: 网络系统集成技术 Networks System Integrating

莆田学院现代教育技术中心 2005年4月

VBScriptVBScript 常识常识 变量命名类似于 C 语言,但首字符必须是字母。 变量不必先声明再使用 变量名称和关键字无大小写之分 字符串——用单引号或双引号括起 整数 / 小数型 布尔型 True/False 日期型 用 #…#括起

示例: #May 12,2005# 控制结构(选择 \循环) 见后

Page 50: 网络系统集成技术 Networks System Integrating

莆田学院现代教育技术中心 2005年4月

6.5 ASP6.5 ASP 基础——基础—— WebWeb 库操作库操作

Page 51: 网络系统集成技术 Networks System Integrating

莆田学院现代教育技术中心 2005年4月

ADO (ActiveX Data Objects)ADO (ActiveX Data Objects) ADO则是微软公司提供的一组访问 Internet 数据库专用技

术。它为 ASP 提供了完整的站点数据库解决方案,它作用在服务器端,可链接数据库、操作数据库、查询数据库,并可将数据库访问结果添加到 Web 页面上。使用 ADO 可以轻松地完成对各种数据库 (SQL server, Access, Oracle, Sybase) 的查询和存取操作,甚至可从 Excel 中读取信息。

ADO主要包括 Connection,Recordset 和 Command三个对象 ,  它们的主要功能如下: Connection 对象:与 DSN 结合在 ASP 与数据库间建立链接关系;

Recordset 对象:用于数据查询作业(形成记录指针) ; Command 对象:用来对数据库传递 SQL指令,并对数据库进行

存取操作。 ADO已集成于 IIS 或 PWS 中。

Page 52: 网络系统集成技术 Networks System Integrating

莆田学院现代教育技术中心 2005年4月

WEBWEB 数据库编程基本模块数据库编程基本模块

建立数据库 打开数据库 (标准语句)□创建数据库对象 □打开数据库

数据库操作(标准语句) □提取记录 □查询 / 新增 /删除 / 更新 关闭数据库(标准语句)

其他常用技术□页面间的参数传递 □ 用户间的参数传递

Page 53: 网络系统集成技术 Networks System Integrating

莆田学院现代教育技术中心 2005年4月

““芝麻开门” :打开数据库芝麻开门” :打开数据库 语句一:建立库对象 Set 对象变量名 =Server.CreatObject("ADODB.Connection")

示例: Set MyCon=Server.CreateObject(" ADODB.Connection ")

CreatObject 是 Server 对象中用于建立一个可与数据库交换数据对象的函数。上句的功能是建立一个可与数据库交换数据的对象。

语句二:链接数据库 对象变量名 .Open 链接字符串 ,( 用户帐号 ),(密码 )

示例(使用 ODBC 数据源时): MyCon.Open " DSN=address;UID=;PWD= "

打开 ODBC 中的数据源 address源( UID-用户帐号 ;PWD-密码 ) Open 是 Connection 对象的一个方法。若所需数据库有安全性管制,应附加用户帐号和密码两项,否则不加。如:

MyCon.Open " DSN=address" 此句的作用类似于 FoxBASE 语句: use address

Page 54: 网络系统集成技术 Networks System Integrating

莆田学院现代教育技术中心 2005年4月

直接链接时的链接字符串直接链接时的链接字符串如果不采用 ODBC 数据源,则链接字符串的形式如下:Provider=Microsoft.Jet.OLEDB 4.0; Data Source= 数据库路径名称若所需数据库有安全性管制 , 应附加用户帐号和密码两项 , 否则不加。如对 Access 数据库 stu.mdb : Set MyCon=Server.CreatObject("ADODB.Connection") MyCon.Open "Provider=Microsoft.Jet.OLEDB 4.0; Data Source=stu.mdb"

如果数据源路径是网站所设定的虚拟目录 (设为 C:\asp\ptu\), 刚可用 MyCon.Open " Provider=Microsoft.Jet.OLEDB 4.0; Data Source="&Server.MapPath("stu.mdb")

句中 Server.MapPath("stu.mdb") 代表 C:\asp\ptu\stu.mdb

Page 55: 网络系统集成技术 Networks System Integrating

莆田学院现代教育技术中心 2005年4月

经验:经验: NTFSNTFS下下 ODBCODBC 数据源的使用数据源的使用 服务器文件系统为 NTFS 格式时,如果用户通过浏览器对

ODBC 数据库的记录进行更新、删除等写操作,会因权限不足而出现出错提示(但查询正常)。解决方案:

① 设置权限使 IUSR_...(Internet 来宾帐号 ) 对 c:\program files\common files\ODBC 文件夹有写入权

② 设置权限使 IUSR_...(Internet 来宾帐号 ) 对 c:\winnt\temp 文件夹有写入权

③ 设置权限使 IUSR_...(Internet 来宾帐号 ) 对 ACCESS 数据库文件所在的文件夹有写入权(读取与写入权限即够了)

Page 56: 网络系统集成技术 Networks System Integrating

莆田学院现代教育技术中心 2005年4月

提取数据库中的记录提取数据库中的记录 建立数据库链接后, connection 对象变量

就将在 ASP 程序中代表所要操作的数据库 RecordSet 的概念 RecordSet 用于储存 connetcion 对象读

取的数据纪录。每个 RecordSet 对象都相当于一个数据表,保存着用该对象的 Open指令读取所需的全部记录,并可通过记录指针的移动对这些记录进行各种库操作(开始时记录指针指在第一条记录处)

Page 57: 网络系统集成技术 Networks System Integrating

莆田学院现代教育技术中心 2005年4月

Set RS=Server.CreateObject(“ADODB.RecordSet”)

建立一个名为 RS 的 RecordSet 对象 此句的作用是产生一个可在数据表中移动指针的 ADO 对

象。 Set RS.ActiveConnection=MyCon

将 RS 与 Connection 对象 MyCon联系起来。 RS.Open "select * from student where 学号 like

'"&Request.Form("T1")&"'",,1,2 在 MyCon 代表的数据库中打开数据表 student ,按 whe

re子句的要求提取记录,存放在所建立的 RecordSet 对象 RS 中,以便进行库操作

典型语句典型语句

Page 58: 网络系统集成技术 Networks System Integrating

莆田学院现代教育技术中心 2005年4月

小结:你明白了没有?小结:你明白了没有? 打开 Web 数据库的操作不同于一般数据库 先建立一个库对象,将它与服务器上的所需操作

的某个数据库链接。在程序中将用也只用该库对象名代表所操作的数据库。

然后建立一个记录集对象,用它存入所需操作的全部记录。在程序中将用、也只用该记录集对象代表所操作的数据。

事实上还有其他一些语句可以实现以上功能。下学期诸位将会在专门的课程中学到。

Page 59: 网络系统集成技术 Networks System Integrating

莆田学院现代教育技术中心 2005年4月

常用常用 SQLSQL 查询语句用法查询语句用法

Select 字段名 1 ,字段名 2 ,… from 表名 从表中取所指定字段的数据 * 表示所有字段 Select 字段名 1 ,字段名 2 , … from 表名 where 查询条件 从表中取符合查询条件的所指定字段

的数据(见右例) Select 字段名 1 ,字段名 2 ,… from 表名 Order by 字段名 1,字段名 2, … desc

从表中取所指定字段的数据,将数据依序排列( desc 表示从大到小排序)

【例】 Select 姓名,职称

from 表名 where name=“ 华

生” Select 姓名,职称

from 表名 where name=“ 华 *” Select *

from 表名 where name=“* 生 *”

注:在 ADO SQL 中模糊查找格式有所不同(见下)

Page 60: 网络系统集成技术 Networks System Integrating

莆田学院现代教育技术中心 2005年4月

典型典型 ADO SQLADO SQL 查询语句分析查询语句分析 精确查找 Select * from 数据表名 where 字段名 =……

例: Select * from person where name=‘ 陈秀振’ Select * from chengji where 考试日期 =#2000

/6/8#

Select * from abc where wages =

‘“&Request.Form(“T1”)&” ’

Page 61: 网络系统集成技术 Networks System Integrating

莆田学院现代教育技术中心 2005年4月

模糊查找 在 where 子句中用 like 和通配符% 、 _ 表

示 % 相当于 DOS命令中的 *

_ 相当于 DOS命令中的 ? 例: Select * from person where name like ‘ 陈秀 %’

Select * from abc where name like

‘ %“&Request.Form(“T1”)&” %’

Page 62: 网络系统集成技术 Networks System Integrating

莆田学院现代教育技术中心 2005年4月

记录集操作常用语句记录集操作常用语句 读取某一字段的数据 记录集名 .Fields(“字段名” ) 移动记录指针

刚建立记录集 (RecordSet) 对象时,记录指针位置——在第一条记录集名 .MoveNext 将记录指针移至下一条记录处记录集名 .MovePrevious 将记录指针移至上一条记录处记录集名 .MoveFirst 将记录指针移至第一条记录处记录集名 .MoveLast 将记录指针移至最后一条记录处

临界判断记录集名 .EOF 为 False 表示记录指针仍指向记录集中的某一条记录,为 True ,则表示记录指针已移到最后一条记录之下(移到底了)记录集名 .BOF 为 False 表示记录指针仍指向记录集中的某一条记录,为 True ,则表示记录指针已移到第一条记录之上(移到顶了)

关闭记录集 记录集名 .Close (关闭记录集,释放所占内存)Set 记录集名 =Nothing (仅删除记录集中的所有记录,不关闭对象)

Page 63: 网络系统集成技术 Networks System Integrating

莆田学院现代教育技术中心 2005年4月

其他常用语句其他常用语句 判断语句 ( 示例)

If 记录集名 .EOF Then Set 记录集名 =Nothing Else ……End If

循环语句 For 循环变量 = 初值 to 终值 step= 步长 …… Next While … …… Wend

记录总数 变量 =记录集名 .RecordCount

Do While …… Loop

Do …… Loop While

Page 64: 网络系统集成技术 Networks System Integrating

莆田学院现代教育技术中心 2005年4月

修改数据库常用修改数据库常用 SQLSQL 语句语句删除记录

Delete from 表名 Where 条件式 修改记录

Update 表名 Set 字段名 =字段值 ,字段名 =字段值… Where 条件式

添加记录 Insert Into 表名 (字段名列表 ) Values (字段值列表)

Page 65: 网络系统集成技术 Networks System Integrating

莆田学院现代教育技术中心 2005年4月

修改数据库的基本语句修改数据库的基本语句‘声明 connection 对象变量MyCon

Set MyCon=Server.CreateObject(" ADODB.Connection ")

MyCon.Open " DSN=address“

SQLstr = “ … “ (引号中为修改数据库常用 SQL 语句)Mycon.Execute(SQLstr)

如果需要在操作后显示数据 , 可改用‘声明 RecordSet 对象变量 RS

Set RS=Server.CreateObject(“ADODB.RecordSet”)

Set RS= Mycon.Execute(SQLstr)

然后通过其他语句显示 RS 中相应字段的数据

Page 66: 网络系统集成技术 Networks System Integrating

莆田学院现代教育技术中心 2005年4月

实例分析实例分析教职工工资查询 gz招生查询 2004zs 增加选修课程 ( 新增记录 )

insert.asp/AddNew1.ASP删除课程 (删除记录 )

DelCourse.ASP密码修改 ( 修改记录 )

pwchange.asp 和 pwchange1.asp

Page 67: 网络系统集成技术 Networks System Integrating

莆田学院现代教育技术中心 2005年4月

推荐阅读推荐阅读 刘禾 蔡锋编著《精通 ASP 架站技巧》中国青年出版社 01 年 4 月版

唐青松 颜亮编著《 ASP 应用开发全攻略宝典》中国水利水电出版社 00 年 1 月版

Page 68: 网络系统集成技术 Networks System Integrating

莆田学院现代教育技术中心 2005年4月

第六章 上机作业题第六章 上机作业题1. 建立个人的 FTP 网站,设置一个有权上传文件的帐号,

将网址、帐号和密码发给老师。2. 建立一个 ASP 网站,任何网上用户都可以模糊查询你们

班同学的有关资料。但只有你建立的特定用户可以修改(增加、删除或更新)这些同学的资料。将网址、用户帐号和密码发给老师,供老师访问检查。

3. 将 ASP 网站的全部文件放在你建立的 FTP 网站上,供老师下载检查。

说明:老师将把批改意见发到你的 FTP 上。