Web 程序开发技术 ASP

60
Web 程程程程程程 ASP 1 ASP 概概 : Active Server Pages 概概概概概概概概 概概 () ASP 概概 概 Internet 概概概概 IIS 概 Microsoft 概概概 概概概概概 () 概概概概概概概概 概概概概 HTML 概概概概概 、、 ActiveX 概概概 概概概概概概 概概 概概概概概 概概概概概概 一,、。 概概概概概概概概概概概 B/S 概概概概概概概概概概概概概概概概概概概概概概 概概→概概→概概 概概概概概概概概概概概 Web 概概概概概概概概概概概 概概概概概概概概概概概概概概概概 概概概概概概概 概概概 ,() 概概 Web 概概概 概概概 Web 概概概概概概概概概概概概概概概 概概概概概概概概概 概概 概概概概概概概概概概概 概概 概概 。一,一 概概概概概概概概概概

description

Web 程序开发技术 ASP. 1 ASP 概述 : Active Server Pages (动态服务器主页)简称 ASP ,内含 于 Internet 服务程序 IIS 中,是 Microsoft (微软)公司开发的 服务器端直译软件。它能够把 HTML 、脚本语言、 ActiveX 组件等 有机地结合在一起,创建动态、交互式网页。 动态网页实质上是建立在 B/S 模型上的服务器端脚本程序, 其运作模式可以描述为:请求→处理→应答。 从浏览器提交的请求通过 Web 服务器给应用程序服务器,由 其调用相关的网页应用程序进行处理,并将处理结果(网页) - PowerPoint PPT Presentation

Transcript of Web 程序开发技术 ASP

Page 1: Web 程序开发技术 ASP

Web 程序开发技术 ASP1 ASP 概述 : Active Server Pages (动态服务器主页)简称 ASP,内含于 Internet 服务程序 IIS中,是 Microsoft (微软)公司开发的服务器端直译软件。它能够把 HTML 、脚本语言、 ActiveX 组件等有机地结合在一起,创建动态、交互式网页。 动态网页实质上是建立在 B/S模型上的服务器端脚本程序,其运作模式可以描述为:请求→处理→应答。 从浏览器提交的请求通过 Web服务器给应用程序服务器,由其调用相关的网页应用程序进行处理,并将处理结果(网页)返回 Web服务器,然后由 Web服务器把该网页作为对请求的应答发送至客户端浏览器。即一幅浏览器端显示的网页,是一段服务器端程序运行的结果。

Page 2: Web 程序开发技术 ASP

1.1 ASP 的特点 一个 ASP 文件相当于一个可执行文件,不需编译或链

接就可直接解释执行。 使用常规文本编辑器,如 Windows 的记事本或写字板

就可编辑 ASP 脚本。 独立于浏览器。由于 ASP 脚本是由服务器解释执行,

并生成标准的 HTML 文件,客户端只要使用可解释执行HTML 代码的浏览器就可以浏览 ASP 的网页。

ASP 的源程序代码不会传到用户浏览器,保证了源程序代码的安全和知识产权。

具有强大的面向对象功能和可扩充性。 ASP 提供了 6大类内置对象,因而扩充了 ASP 的功能。

一个 ASP 文件是由 HTML 标记、文本和脚本 (VBScript或 Jscript 脚本 )命令组合而成,是以 .asp 为扩展名的文本文件。

Page 3: Web 程序开发技术 ASP

1.2 ASP 的工作原理

一、 ASP 的工作原理概括为如下几步: 用户在浏览器网址栏中输入 ASP 文件名,回车触发该 ASP 申请; 浏览器发送 ASP 请求给 IIS ; Web 服务器响应该请求,如果 ASP 请求中只有 HTML 标记,不经任何处

理直接将它送回浏览器,在浏览器端执行; 如果是 ASP 脚本程序,则 Web 服务器调用 ASP 引擎解释执行,生成一

个标准 HTML 页面;若脚本命令中涉及到对数据库的访问,就通过数据库访问组件实现对数据库的连接操作,并将执行结果动态生成一个 HTML 页面返回 Web 服务器端,然后与非脚本的 HTML 合并成完整的 HTML 页面送回客户端浏览器;

HTML 页面被浏览器解释执行并显示。

Page 4: Web 程序开发技术 ASP

1.2 ASP 的工作原理二、 ASP请求与 HTML请求的比较 : 对 Web服务器来说, ASP和 HTML请求有着本质的区别, HTML是不经任何处理返回给浏览器,而ASP的每个脚本命令都将被解释执行,生成标准HTML文件,并允许生成动态内容。 对浏览器而言,ASP和 HTML请求几乎是没有区别,仅仅是扩展名为.asp和 .htm的不同。无论在客户端提出 HTML 申请,还是 ASP申请,浏览器接受的仍然是 HTML格式的文件。

Page 5: Web 程序开发技术 ASP

1.4 ASP 的文件结构一、 ASP 文件的结构 HTML 标记 客户端脚本程序:通常用 <Script>…</Script>”定界符括起来。

服务器端脚本程序:用“ <%…%>”定界符括起来。 使用 #INCLUDE语句在 Web页面中嵌入其他 Web 页面。 要编写一个 ASP程序可以使用最简单的记事本,也可以用 FrontPage 、 Dreamweaver 等网页制作工具,并将它保存为 .asp 为扩展名的文件。 下面是使用记事本创建的ASP文件 index.asp ,保存

在虚拟目录 E:\sample 下。

Page 6: Web 程序开发技术 ASP

二、一个 ASP 文件实例

演示

Page 7: Web 程序开发技术 ASP

执行后的 ASP 源程序

以标准 HTML格式显示

可防止 ASP 源代码泄漏

三、运行 ASP 文件 在浏览器地址栏输入 http://127.0.0.1/index.asp 后回车,浏览器以不同字体和颜色显示一段“请注意,我在长大!” 的汉字。此时右击页面,选择“查看源程序” , ,经服务器执行后的 HTML 文档如下

Page 8: Web 程序开发技术 ASP

1.5 ASP 的指令一、输出指令 格式: <%=expression %> 功能:该输出指令向浏览器显示信息。 例如,执行 <font size=<%=i%> color=<%=colour%>>语句 浏览器端变为标准 HTML格式: <font size=3 color=red> 二、处理指令 格式: <%@ keyword %> 功能:该指令为 ASP 提供处理 .asp 文件所需信息。 处理指令主要的 2个关键字: ① language 关键字设置页的脚本语言 ② codepage 关键字设置页的代码页 例如,命令: <%@ language=Jscript codepage=932 %>设置了脚本语言和代码页。

Page 9: Web 程序开发技术 ASP

2 VBScript 、 HTML 和 ASP 的综合应用 一、简介 ASP 不是一种脚本语言,它却为嵌入 HTML 中的脚本语言提供了运行环境。 ASP 中常用脚本语言有 VBScript 和 Jscript ,系统默认为 VBScript 。 VBScript 脚本程序既可在客户端,也可在服务器端执行 : 用“ <%...%>”定界符括起的 VBScript 脚本在服务器端执行; 包含在 HTML 标识 <script>和 </script> 之间的 VBScript 脚

本,是在客户端还是服务器端执行,由 Runat属性决定。 <script>对象有 2个属性 language属性用来指定脚本语言的类型,缺省 language属性,系统默认为 VBScript 。 Runat属性用来指定脚本语言是在客户端还是服务器端执行,缺省 Runat属性,系统默认是客户端执行的脚本程序。

Page 10: Web 程序开发技术 ASP

二、表单与处理脚本 表单是网页中的常用组件,表单支持客户端 - 服务器关系中的客户端。当访问者在 Web 浏览器显示的表单中输入信息,然后单击提交按钮时,这些信息将被发送到服务器,服务器端脚本或应用程序将对提交的表单信息进行处理。

Page 11: Web 程序开发技术 ASP

2.1 VBScript在客户端的编程应用 一、在客户端执行的 VBScript 脚本实例jc1.htm

Page 12: Web 程序开发技术 ASP

VBScript 脚本源代码

演示

Page 13: Web 程序开发技术 ASP

2.1 VBScript 在客户端的编程应用 二、在客户端执行的VBScript脚本实例jc6.asp

Page 14: Web 程序开发技术 ASP

VBScriptVBScript源代码及分析

整个程序中只有客户端脚本和 HTML 语言

<script>标记包含的脚本,声明了一个过程和一个函数。

从输入文本框键入 n值,单击“计算”按钮时触发 output 事件过程。

该过程利用浏览器对象 Document 从输入文本框读取 n 的值,调用 fac函数计算 n 的阶乘值,然后写入输出框

演示

Page 15: Web 程序开发技术 ASP

2.2 在 ASP 中使用脚本 一、在 <%……%> 之间使用 VBScript 脚本 一个在 ASP 文件中使用 VBScript 脚本的示例 jc2.asp

用 <%……%> 符号包含的 VBScript 脚本被送到服务器端执行,并将 j 计数器的值存储在变量 J中

ASP 指令 <%=j %>将变量 J 的当前值发送到浏览器显示为:

变量 j的值为 30

演示

Page 16: Web 程序开发技术 ASP

2.2 在 ASP中使用脚本 二、在 <script>…</script>标记之间混合使用多种脚本 在一个主页中混合使用多种 script 脚本实例 jc4.asp

<% =display() %> 向浏览器输出内容,这个包含在 <%和 %> 符号之间的脚本是 VBScript ,调用的却是 Jscript 的函数。

在一个 ASP 文件中利用<script>标记分别在相应位置指定多种脚本语言,可弥补某种脚本语言在内置函数和方法等功能上的不足。

这是 <script>标记的一个明显的优点 演示

Page 17: Web 程序开发技术 ASP

2.3 VBScript 、 HTML 和 ASP 的综合编程 在一个ASP文件中既包含了客户端的脚本程序,又包含了服务器端脚本程序和HTML语言,这种混合编程使得程序的源代码难以理解和维护。所以在编写ASP应用程序时,必须清楚地知道现在编写的脚本是在客户浏览器端还是在服务器端执行。 此外,ASP脚本程序在语法上与浏览器端的脚本程序相同,两者之间的差别是:在服务器端执行的脚本不支持图形界面的方法或组件,VBScript脚本中的某些函数在服务器端脚本中不可使用。

Page 18: Web 程序开发技术 ASP

一、一个综合实例 (jc5.asp)

演示

Page 19: Web 程序开发技术 ASP

二、源代码分析

在以上程序中, <script>标记内的脚本定义了一个 show() 过程,由于缺 runat属性,被默认是客户端脚本。 body以 OnLoad 事件处理在页面载入时将 show()过程调入执行, show() 过程的功能是利用时间函数对表单 form1 的各属性进行赋值,写上系统日期、时间、星期几和年份。 由 <% 和 %>括起来的脚本是在服务器端执行,根据 hour(now)函数的结果(几点钟),分时显示不同的问候语。

Page 20: Web 程序开发技术 ASP

3 ASP 的常用内置对象和组件 概述 : 1 、 ASP 的内置对象

ASP 中包含了许多内置对象,每种对象都有自己的方法和属性,用来提供基本的请求、响应、会话等处理功能,不需建立就可以在代码中直接调用它们。 ASP 有以下 5 种基本对象,如表2所示,表中前三个对象是最常用的。

Page 21: Web 程序开发技术 ASP

3 ASP 的常用内置对象和组件 2 、 ASP的应用组件 ASP 的应用组件是内置的服务器组件,必须建立对象以后再使用。 ASP本身自带了 5个服务器组件,一个服务器组件相当于一个对象,它提供属性和方法来使用服务器资源,完成服务器端的大部分工作。 ASP内置组件如表 3所示。

Page 22: Web 程序开发技术 ASP

3.1 Response 对象和 Request 对象 Request 对象和 Response 对象是用来处理 HTTP 的请求和响应,实现浏览器和服务器之间数据的动态交互。一、 Request 对象 Request 对象对应于 HTTP 请求,主要功能是从客户浏览器端得到数据,包括获取表单中的数据、查询字符串中的变量值、客户端认证等,它有自己的数据集合、方法和属性。 常用的 3 种从浏览器获取数据的方式如下: ① Request.QueryString (使用 QueryString方法 ) ② Request.Form(使用 Form 方法) ③ Request 第 1种获取数据的方式对应于表单提交时的 get ;第 2种对

应于表单提交时的 post ;其第 3种是前两种的一个缩写,可以取代前两种。

Page 23: Web 程序开发技术 ASP

3.1 Response 对象和 Request 对象 1、使用 QueryString方法获取数据 一个一个对应于get提交方式获取数据,通过在,通过在 URLURL 地址后面直地址后面直接使用?带着接使用?带着 QueryQuery(查询)字符串来传递参数的实例(查询)字符串来传递参数的实例 jc7.asp jc7.asp

URL 地址栏:http://127.0.0.1/jc7.asp?x1=20...

Page 24: Web 程序开发技术 ASP

ASP 源代码及其分析从浏览器表单文本框x1键入值 20后提交

表单提交时将 Method属性说明为 get方式

表单 x1 的值 20作为字符串附加在 action属性所设定的 URL 后面(jc7.asp?x1=20&…)以此传递参数 x1 的值

Request.QueryString(“x1”)获取所传送

的URL 中 x1 的值

在服务器端求奇数和并送往浏览器显示

演示

Page 25: Web 程序开发技术 ASP

3.1 Response 对象和 Request 对象 2、使用 Form方法获取数据 对应于表单的post提交方式,在服务器端使用 Request对象的 Form方法获取表单信息并显示的示例jc8-1.asp和 jc8-2.asp

浏览器表单的输入界面设计

Page 26: Web 程序开发技术 ASP

jc8-1.asp 源代码及其分析浏览器表单界面:诸如文本域、列表框、复选框、单选按钮以及下拉菜单(组合框)等。

表单提交时将 Method属性说明为 POST方

单击表单的发送按钮提交输入信息

服务器调用程序jc8-2.asp 对用户的输入进行响应

演示

Page 27: Web 程序开发技术 ASP

jc8-2.asp 源代码及结果

使用 Request 对象的 Form 方法取得客户端表单发往服务器的信息,同时使用

ASP 的输出指令 <%=Request.Form("sex") %>向浏览器显示信息。

Page 28: Web 程序开发技术 ASP

3.1 Response 对象和 Request 对象 二、 Response 对象 Response 对象与 Request 对象的功能刚好相反, Respons

e对象专门用来响应 HTTP 的请求,将服务器端的数据发送到客户浏览器。 Response 对象也有自己的数据集合、方法和属性,下面讲述 2个常用方法。1 、使用 Write方法 Response.Write 的主要功能是向浏览器输出信息(变量或字符串)。它与 VBScript 脚本中的 Document.write 的功能相近,其区别在于: Response 是 ASP 的对象,是从服务器向浏览器输出信息,而 Document 是浏览器对象,直接向浏览器输出。

Page 29: Web 程序开发技术 ASP

以不同形式的 Response.Write 输出信息

直接输出字符串和变量值

把 HTML 标记以字符

串的形式直接发送到客户端,由浏览器解释执行。

浏览器显示页面

演示

Page 30: Web 程序开发技术 ASP

3.1 Response 对象和 Request 对象 2 、使用 Redirect方法 Response 对象的 Redirect方法可以根据用户输入,指示客户端浏览器根据字符串 URL 下载相应地址的页面,类似于 HTML 中的超级链接。 语法格式: Response.Redirect(String) 其中:参数 String 为网址变量或 URL 字符串。 例如: Response.Redirect http://www.cqu.edu.cn 通过这一方法,程序员可以为不同身份的客户指定不同的页面或根据不同的情况指定不同的页面。 下面的网页重定向实例由两个文件组成:一个是用户登录页面 jc10-1.asp ,另一个是响应用户输入而指定不同页面的处理文件 jc10-2.asp 。

Page 31: Web 程序开发技术 ASP

jc10-1.asp 和 jc10-2.asp 源代码 演示

Page 32: Web 程序开发技术 ASP

jc10-2.asp 源代码分析

当输入表单元素后,单击“确定”按钮,文件jc10-2.asp 将从服务器端取得输入用户名称和管理密码,根据不同的取值指引到不同的页面。 如果用户名称或管理密码为空,则页面跳转到网站首页 index.asp ,拒绝到管理页面。如果用户名称和管理密码正确设置为“ htgl”和“ 123456”,

则跳转到网站管理页面 manage.asp ,否则页面仍跳转到网站首页 index.asp 。

Page 33: Web 程序开发技术 ASP

3.2 Cookie 的应用 Cookie 是当访问某个站点时,随某个 HTML 网页从服务器发送到客户浏览器中的一小段文本信息,其中包含有关用户信息 ( 如用户姓名、密码等 ),浏览器通常将它保存在硬盘中。 它可以用在某个网站站点会话之间持久地保持数据,在页面之间交换信息。如当在网上购物时,如果要跨页面购买 ,就可以用 Cookie来存放前面买的物品。这一功能还经常被用在要求认证客户密码、电子公告板以及聊天室等 ASP 程序中。 ASP 脚本可使用 Request 对象和 Response 对象的 Cookies

数据集合,获取和设置 Cookie 的值。 语法格式: Request.Cookies – 获取(读取)信息 Response.Cookies – 设置(写入)信息

Page 34: Web 程序开发技术 ASP

用 Cookie做的计数器

首先从浏览器读取 Cookies变量 count_visit ,如果该变量存在,说

明用户已经访问过该页面,同时输出 num 加 1 后的访问次数,然后向浏览器写入新的 Cookie变量 count_visit 的值。 如果用户是首次访问该页面,则 Cookies变量 ount_visit值为空,

即变量不存在, num 赋值为 1,显示第 1次访问,由于对一个不存在 Cooki

e赋值,系统就会创建这个 Cookie 。

演示

Page 35: Web 程序开发技术 ASP

3.3 Session 对象 Session 对象主要用来保存属于一个用户会话所需的信息(如:客户的身份、喜好和习惯等),可让同一个用户在多个主页之间共享信息,类似于普通应用程序中的全局变量。 Session 是客户浏览器与服务器每一次会话的标识变量,每个访问用户都可单独拥有一个 Session变量,当用户在应用程序的页之间跳转时,存储在 Session 对象中的变量信息不会丢失,存在于整个用户会话中。 该对象引用语法格式: Session.属性│方法│事件11 、、 Session 对象的属性 SessionID 属性:它唯一的标识用户身份,从而区分同一应

用程序的不同用户。 Timeout属性:为 Session 对象指定会话的超时时限。即用来设置每个 Session 的结束时间(以分钟为单位)。

Page 36: Web 程序开发技术 ASP

3.3 Session 对象 22 、、 Session 对象的方法 Abandon方法 调用该方法结束当前用户会话并撤消当前 Session 对象。33 、、 Session 对象的事件 Session_OnStart 事件 在启动时触发的事件,用于初始化变量、创建对象或运行其他代码。 Session_OnEnd 事件 在结束时触发的事件,主要用来取消会话中的所有变量。 这 2 个事件保存在名为 Global.asa 的文件中,放在应用程

序根目录下。且每个应用程序只能有一个 Global.asa 文件。

Page 37: Web 程序开发技术 ASP

3.3 Session 对象 4、创建和使用 Session变量格式: Session(“变量名” )=字符串例如:使用 Session 对象进行身份认证的示例 jc12-1.asp 和 jc12-2.asp

注册会员信息被赋予 Session 变量,对于不同的用户, Session 的 name 变量、 age 变

量和sex 变量是不同的,只要 Session 没有结束,每个人在网站的不同主页间浏览时,该身份信息一直为个人保留。

演示

Page 38: Web 程序开发技术 ASP

3.4 Application 对象 Application 对象是所有在线人员的一个共同对象,当网站服务器一开,就创建了该对象。 所有用户可对 Application 进行修改,并且 Application对象所创建的变量可在网页结束浏览时,仍然把变量值记录下来, Application所创建的变量会一直存在到网站关闭或者这个 Application 被卸载,它不会因为某个用户或者全部用户离开就消失。 利用这些特点,常用 Application来设计聊天室、网页计数器等。 由于 Application 对象为多个用户所共享,为防止多个用户同时访问同一网页,该对象提供了 lock(锁定)和unlock(解除锁定)两个方法来保证在同一时间只能有一个用户对 Application变量进行操作。

Page 39: Web 程序开发技术 ASP

一个 Application 网页计数器实例 Jc13.asp 源代码<% Application.lock Application("counter")=Application("counter")+1 Application.unlock%> <html><body><h3>你是第 <%=Application(“counter”) %> 位访问本网页的用户!</h3></body></html> 当在浏览器中执行 jc13.asp 文件,并且连续单击 19次“刷

新”按钮,则会显示:“你是第 20 位访问本网页的用户”。

演示

Page 40: Web 程序开发技术 ASP

3.5 Cookie 、 Session 和 Application 的比较 一、 Cookie 与 Session 的比较 Response 对象可以建立 Cookie 文件来保存客户的各种信息, Session 对象也可以用来记录客户的信息,它们的概念很相似,区别在于: Cookie 是把客户信息记录在浏览器中,而Session 对象则把客户信息记录在服务器中。二、 Session 与 Application的比较 每个访问用户都可单独拥有一个 Session 对象,可让同一用户在多个主页之间共享信息。 所有的用户公用一个 Application 对象,当打开网站服务器时创建,直到网站服务器被关闭而终止。 Session 对象通常被用来记录单个用户的信息(身份、密码等), Application 对象则被用来记录所有用户的公共信息,如主页访问计数器、公共讨论区等信息。

Page 41: Web 程序开发技术 ASP

3.6 Server 对象 Server 对象是与服务器关系最密切的 ASP 内置对象,是专为处理服务器上的特定任务而设计。它提供对服务器上的方法和属性进行的访问,主要是建立 ASP 以外而存在于服务器端的各种组件,如创建 ActiveX 组件。 一、 Server 对象的 CreateObject方法的使用 Server 对象的 CreateObject方法可以用来创建服务器组件或组件中某一对象的实例。在 ASP 中,除了 6大内置对象外,如果要使用其他外置对象或组件,都必须通过 Server 对象的CreateObject方法来建立。 格式: Serve.CreateObject(progID) 功能:创建由 progID标识的对象(一个组件、应用程序或脚本对象)。 例如:创建数据库访问组件 ADO的对象实例 <% set conn=Server.CreateObject("ADODB.Connection ") %>

Page 42: Web 程序开发技术 ASP

3.6 Server 对象 用该方法建立的对象实例仅在创建它的页面中有效,即当 ASP 处理完该页面后,对象自动消失。如果要在其他页面中使用该对象,可将该对象实例保存在 Application 或 Session对象中。例如:<%set Session("conn")=Server.CreateObject("ADODB.Connection")%>

二、创建其他 ASP 内置组件的对象实例 创建广告轮播器组件的对象实例<% set Ad=Server.CreateObject("MSWC.AdRotator") %> 创建浏览器功能组件的对象实例<% set lgz=Server.CreateObject("MSWC.BrowserType") %> 创建文件访问组件的对象实例<% set fs=Server.CreateObject("Scripting.FileSystemObject") %> 创建内容链接组件的对象实例<% set CL=Server.CreateObject("MSWC.Nextlink") %>

Page 43: Web 程序开发技术 ASP

4 使用 ADO组件访问数据库 ADO( ActiveX Data Object )技术是微软公司推出的数据库链接技术,是一组优化的访问数据库的对象集,可以实现对各种数据库的链接、查询和存取等操作。 ADO与 ASP结合,已成为 ASP的内置组件。使用 ADO数据库访问组件可制作出功能完善的动态数据库网页。 制作数据库网页,首先要建立服务器端的数据库,一般可选择 Access 或者 SQL Server 作为后台数据库。然后可通过执行结构化查询语言 SQL 命令来输入、查询、更新和删除网站服务器的数据库信息。

Page 44: Web 程序开发技术 ASP

4.1 建立 Web 数据库 为了更好地使用 ADO,必须了解后台数据库的建立以及 SQL

命令的简单使用。 SQL Server 2000是一个高性能的关系数据库

管理系统,用它来建立 Web 数据库。 一、关系数据库 关系数据库系统采用关系模型作为数据库的组织方式,

该模型将数据库作为一个关系集合表示出来。 例如:关系 RS (员工档案)如表 4所示

Page 45: Web 程序开发技术 ASP

4.1 建立 Web 数据库 二、关系的基本概念 ① 关系:一个关系对应一张表,如 RS 关系表。 ② 元组:表中的一行即为一个元组 (记录 ) ,如职工号为 86001

的记录。 ③ 属性:表中的一列即为一个属性 (字段 ),具有属性名,

如职业、姓名等。 ④ 关键码:表中的某个属性组,它可以唯一确定一个元组,如职工号。 ⑤ 分量:元组中的一个属性值,如 86003 元组中的属性名为“职业”的值是“干部”。 ⑥ 域:属性的取值范围。 现在使用的大多数数据库都是关系数据库,它概念简单,

无论实体还是实体间的联系都用关系表示,并且具有更高的数据独立性和更好的安全保密性。

Page 46: Web 程序开发技术 ASP

4.1 建立 Web 数据库 三、使用 SQL Server 的企业管理器建立后台数据库 1、用企业管理器创建数据库 WebDb 操作步骤如下: ① 选择 “开始” /“程序” /“Microsoft SQL Serve

r”/“企业管理器” ; ② 在打开企业管理器界面右击“数据库”,然后选择“新

建数据库” 命令; ③ 在“名称”框输入数据库名 WebDb ,单击“确定”。 2、用企业管理器在 WebDb 数据库中创建数据表 RS 操作步骤如下: ① 打开企业管理器,在“ WebDb”树型列表中 ,右击“表”,选

择“新建表”; ② 在“列名”栏输入字段名,在“数据类型”栏选择类型,

在“长度”栏输入数值,依次将 RS 关系表的各字段进行设置;

③ 单击左上角的“保存”按钮,在弹出的“选择名称”对话框

输入表名 RS ,然后单击“确定”按钮。

Page 47: Web 程序开发技术 ASP

4.1 建立 Web 数据库 3、使用企业管理器向数据表 RS添加记录 操作步骤如下: ① 打开企业管理器,在“ WebDb”的树型列表中 , 双击“表”,

然后在右窗格中右击 RS ,选择“打开表” /“返回首行”菜单选项,

弹出添加数据窗口 ② 在窗口添加关系表 RS 中 86001~ 86006共 6条记录数据。 在 SQL Server 2000 环境下演示建立数据表的全过程。

Page 48: Web 程序开发技术 ASP

4.2 结构化查询语言 SQL 简介 SQL(Structured Quey Language) 是结构化查询语言的缩写,是一种标准的关系数据库查询语言,绝大多数数据库管理系统 (Oracle 、 Sybase 、SQL Server 、 Foxpro 、 Access)都支持 SQL 语言。 SQL 语句对数据表的四大常见操作是:查询、添加、删除和修改。由SELECT,INSERT,DELETE和 UPDATE四个语句实现。1、 SELECT查询语句 格式: SELECT 目标列 FROM 基本表 [WHERE 条件表达式 ] [GROUP BY < 列名 1>[HAVING 滤波条件表达式 ]] [ORDER BY < 列名 2> ASC|DESC] 功能 :从基本表中找出满足条件的记录,按 SELECT子句中的目标列形

成结果表。如果有 ORDER子句,结果按列名 2升序或降序排列;如果有 GROUP子

句,结果按列名 1分组, HAVING 短语是分组条件。 例如:在 Student表中,列出微机班且性别为男的学生情况,并按成绩

升序排列。 SELECT 姓名 , 班级 ,性别 ,成绩 FROM Student WHERE 班级 ='微机 ' AND 性别 =' 男 ' ORDER BY 成绩

Page 49: Web 程序开发技术 ASP

4.2 结构化查询语言 SQL 简介

2 、 Insert插入语句 格式: INSERT INTO 表名 [( 字段名 [,字段名 ]…)] VALUES ( 常量 [,常量 ]…) ; 或者: INSERT INTO 表名 [( 字段名 [,字段名 ]…)] 子查询 功能:把一个新记录插入指定的表中或把子查询的结果插入表中。 例如:把一个新学生:学号 870023、姓名李佳、女、信息 1班、成绩85,插入到 Student表中。 INSERT INTO Student (学号 ,姓名 ,性别 , 班级 ,成绩 ) VALUES('870023', ' 李佳 ', ' 女 ','信息 1班 ',85)3、 UPDATE修改语句 格式: UPDATE 表名 SET 字段 = 表达式 [,字段 = 表达式 ]… [WHERE 条件 ] 功能:修改指定表中满足条件的记录,把这些记录按 SET子句中的表达

式修改相应字段上的值。一次只能更新一个表。 例 1 :把 Student表中姓名为“李佳”的学生,班级改为“信息 2班” UPDATE Student SET 班级 ='信息 2班 ' WHERE 姓名 =' 李佳 ' 例 2 :把 S1表中所有学生的年龄加 2 UPDATE S1 SET 年龄 = 年龄 +2

Page 50: Web 程序开发技术 ASP

4.2 结构化查询语言 SQL 简介 4、 Delete删除语句 格式: DELETE 表名 [WHERE 条件 ] 功能:从指定表中删除满足条件的那些记录。无 WHERE短语时表示删去表

中的全部记录。 例 1 :在 Student表中删除姓名为“李佳”的学生 DELETE Student WHERE 姓名 =' 李佳 ' 例 2 :删除 Student表中所有学生 DELETE Student5、 WHERE条件中一些特殊关键字的用法 参见表 8.6所示:

Page 51: Web 程序开发技术 ASP

6 、 WHERE条件的特殊关键字用法举例 使用企业管理器创建数据库 WebST 中的数据表 KSB(考生表 )

使用查询分析器验证简单的 SQL 语句 ① 查询 KSB 中不是上海和天津地区考生的考生号、姓名和地区。 SELECT 考生号 ,姓名 ,地区 FROM KSB WHERE 地区 NOT IN(‘上海’ ,‘天津’ ) ② 从数据表 KSB查找总分数在 560 分与 690 分之间的考生号、姓名和总分

数,按总分数降序排列。 SELECT 考生号 ,姓名 , 总分数 FROM KSB WHERE 总分数 BETWEEN 560 AND 690 ORDER BY 总分数 DESC

Page 52: Web 程序开发技术 ASP

6 、 WHERE条件的特殊关键字用法举例

使用查询分析器验证简单的 SQL 语句 ③ 查询所有姓王的考生名单。 SELECT * FROM KSB WHERE 姓名 LIKE ' 王 %'④ 按地区顺序,同一地区按总分数升序列出考生姓名、地区和总分数。 SELECT 姓名 ,地区 , 总分数 FROM KSB ORDER BY 地区 , 总分数⑤ 把考号 81205、姓名李红、浙江地区、考试日期 2005-6-7总分 485的考生,插入到 KSB表中。 INSERT INTO KSB(考生号 ,姓名 ,地区 , 考试日期 , 总分

数 ) VALUES('81205', ' 李红 ', ' 浙江 ','2005-6-7',485)⑥ 删除 KSB表中考生号为 73111 的考生记录。 DELETE KSB where 考生号 ='73111'

Page 53: Web 程序开发技术 ASP

4.3 ADO内置组件的使用 ADO组件是通过对象的属性、方法来完成相应的数据库的链接和存取操作。 ADO内置组件共有 8 种独立的对象,每个对象的功能描述

如表 8.7 所示。以下重点讲述 ADO内置组件中 Connection 对象和RecordSet 对象的使用。

Page 54: Web 程序开发技术 ASP

4.3 ADO内置组件的使用 一、使用 Connection 对象链接数据库 使用 Connection 对象可实现 ASP 程序与后台数据库的链接,该对象

有自己的属性和方法,最常用的方法如下: Open方法:打开一个与数据库的链接。 Close方法:关闭已经打开的链接。 Execute方法:该方法可以执行 SQL 语句,并返回一 RecordSet 对象。

使用系统 DSN数据源打开数据库的格式 该格式要求必须先通过 ODBC 设置系统 DSN数据源。 例如:已知数据表名 student ,数据源名 Webdata ,登陆帐号 Chen ,密码

654321 。请看以下 ASP 的部分源代码: <% ' 打开一个数据库链接 set conn=Server.CreateObject("ADODB.Connection ") conn.open "Webdata","Chen","654321" Set RS=conn.Execute("select * from student") %> SQL Server 或其他的关系数据库只要创建了该系统 DSN数据源,用户就可以应用 ASP 程序直接通过数据源访问相应的数据库。

Page 55: Web 程序开发技术 ASP

4.3 ADO内置组件的使用 直接打开一个数据库的格式 也可以不经建立数据源而直接打开一个数据库链接,但需要知道数据库文件的准确信息,如数据库驱动类型、服务器名或者 IP 、数据库名称、登录帐号和密码等。这是实际网站常采用的一种格式。

Page 56: Web 程序开发技术 ASP

4.3 ADO内置组件的使用 二、 RecordSet 对象的使用 通过 RecordSet 对象可以方便地得到查询的数据记录集,利用该对象的属性和方法可对这些数据进行操作。理论上只要SQL 语句可以完成的操作,利用 RecordSet 对象都可以实现。 RecordSet 对象的属性与方法如表 8.8 所示。

Page 57: Web 程序开发技术 ASP

4.3 ADO内置组件的使用 1 、读取数据表中字段名 格式: RST(m).name 其中: RST 是创建的 recordset 对象; m的取值从 0开始;

而字段个数由 RST.Fields.count得到。2、读取数据表中字段值 格式 1: RST("字段名 ") 格式 2: RST(m) 3、记录集对象的 Open方法 recordset.Open Source,ActiveConnection,CursorType,LockType,Options 其中: Source参数可以是一段 SQL 命令或是一个指定的数据表名称

等。 ActiveConnection参数可以是一个 Connection 对象或是一串包含数据库连接信息的字符串参数。

CursorType参数表示将以什么样的游标类型启动数据,可取值 0、 1、 2、 3,通常取 1 。

Page 58: Web 程序开发技术 ASP

4.3 ADO内置组件的使用 1 — 启动一个 Keyset 类型的游标。可在记录集中向前或向后移动,可以看到其他用户的删除和修改,不能看到其他用户新增的记录。 LockType参数表示要采用的 Lock类型,可取 1 、 2、 3。 1 — Recordset 对象以只读方式启动,无法运行 AddNew 、Update 及 Delete 等方法。 2 — 当数据源正在更新时,系统会暂时锁住其他用户的动作,以保持数据一致性。 3 — 当数据源正在更新时,系统并不会锁住其他用户的动作,其他用户可以对数据进行增、删、改的操作。 Options参数表示对数据库请求的类型。 例如: RST.Open Tsql,Conn,1,1 其中: Tsql是一段 SQL 命令, Conn 是一个 Connection 对

象,选择了一个 Keyset 类型的游标,并以只读方式启动 Recordset对象,缺省 Options参数。

Page 59: Web 程序开发技术 ASP

一个 Connection 与 recordset 对象的综合应用实例

例如:将员工档案 RS 数据表中职业为“干部”的人员,按姓

名降序排列并以表格形式输出。其 jc15.asp 程序代码如下:

Page 60: Web 程序开发技术 ASP

一个 Connection 与 recordset 对象的综合应用实例

在浏览器端执行 jc15.asp 程序,将得到结果如下图

演示