9.3.1 asp 概述 1.asp 简介 asp...

226

Click here to load reader

Upload: van

Post on 11-Jan-2016

138 views

Category:

Documents


1 download

DESCRIPTION

9.3 ASP 编程基础. 9.3.1 ASP 概述 1.ASP 简介 ASP 是位于服务器端的脚本运行环境,通过这种环境,用户可以创建和运行动态的交互式 Web 服务器应用程序,如交互式的动态网页,上传与下载等等。 ASP 使用 ActiveX 技术基于开放设计环境,用户可以自己定义和制作组件加入其中,使自己的动态网页几乎具有无限的扩充能力。 ASP 可利用 ADO(Active Data 0bject ,微软的一种新的数据访问模型,从而使得开发基于 WWW 的应用系统成为可能。. 8.1 计算机网络基本概念. 2.ASP 的特点 - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: 9.3.1 ASP 概述 1.ASP 简介 ASP 是位于服务器端的脚本运行环境,通过这种环境,用户可以创建和运行动态的交互式 Web 服务器应用程序,如交互式的动态网页,上传与下载等等。

9.3.1 ASP 概述1.ASP 简介 ASP 是位于服务器端的脚本运行环境,通过这种

环境,用户可以创建和运行动态的交互式 Web 服务器应用程序,如交互式的动态网页,上传与下载等等。

ASP 使用 ActiveX 技术基于开放设计环境,用户可以自己定义和制作组件加入其中,使自己的动态网页几乎具有无限的扩充能力。

ASP 可利用 ADO(Active Data 0bject ,微软的一种新的数据访问模型,从而使得开发基于 WWW的应用系统成为可能。

8.1 8.1 计算机网络基本概念计算机网络基本概念

9.3 ASP9.3 ASP 编程基础编程基础

Page 2: 9.3.1 ASP 概述 1.ASP 简介 ASP 是位于服务器端的脚本运行环境,通过这种环境,用户可以创建和运行动态的交互式 Web 服务器应用程序,如交互式的动态网页,上传与下载等等。

2.ASP 的特点使用 VBScript 和 JScript 等简单易懂的脚本语言,结合 HTML 代码,完成网站的应用程序开发。

用 ASP 技术设计的网页是以 .asp 为扩展名的文本文件。使用普通的文本编辑器 ( 如记事本 ) 就可进行编辑设计。容易编写,无须编译,可在服务器端直接执行。

与浏览器无关。用户端只要使用可执行 HTML 代码的浏览器即可浏览使用 ASP 技术设计的网页。ASP 页面所使用的脚本语言均在 Web 服务器端执行,然后把执行结果传送到用户端的浏览器。

Page 3: 9.3.1 ASP 概述 1.ASP 简介 ASP 是位于服务器端的脚本运行环境,通过这种环境,用户可以创建和运行动态的交互式 Web 服务器应用程序,如交互式的动态网页,上传与下载等等。

ASP 的源程序只在服务器端执行,不会被传到客户端浏览器,因而可以避免源程序外泄,提高了程序的安全性。

可使用服务器端的脚本来产生客户端的脚本。 ActiveX 服务器元件具有无限可扩充性。可以使用 Visual Basic 、 Java 、 Visual C++ 、 COBOL等编程语言定制自己所需要的 ActiveX 服务器组件。

Page 4: 9.3.1 ASP 概述 1.ASP 简介 ASP 是位于服务器端的脚本运行环境,通过这种环境,用户可以创建和运行动态的交互式 Web 服务器应用程序,如交互式的动态网页,上传与下载等等。

3.ASP 运行环境(1) 安装 IIS 5.O如果操作系统是 Windows 2000 Server 或者是Windows 2000 Advanced Server 的话, IIS 5.0 已经是默认安装上的。

如果是 Windows 2000 Professional ,则需要安装 IIS 5.0 。从操作系统“控制面板”中找到并双击“添加/删除程序”,单击“添加/删除 Windows 组件”,选择“ Internet 信息服务( IIS )”,然后选择详细信息。

Page 5: 9.3.1 ASP 概述 1.ASP 简介 ASP 是位于服务器端的脚本运行环境,通过这种环境,用户可以创建和运行动态的交互式 Web 服务器应用程序,如交互式的动态网页,上传与下载等等。

Internet 信息服务( IIS )Internet 信息服务( IIS )

Page 6: 9.3.1 ASP 概述 1.ASP 简介 ASP 是位于服务器端的脚本运行环境,通过这种环境,用户可以创建和运行动态的交互式 Web 服务器应用程序,如交互式的动态网页,上传与下载等等。

单击“确定”以后,放入 Windows 2000 的安装盘,出现安装界面,进行安装。最后点击“完成”按钮,完成安装。

安装完毕后,可以测试一下是否安装成功。打开浏览器,在浏览器的地址栏中输入

http://localhost 或者 http://127.0.0.1如果安装成功的话,将会出现欢迎界面。

Page 7: 9.3.1 ASP 概述 1.ASP 简介 ASP 是位于服务器端的脚本运行环境,通过这种环境,用户可以创建和运行动态的交互式 Web 服务器应用程序,如交互式的动态网页,上传与下载等等。

http://localhost/localhost.asphttp://localhost/localhost.asp

http://localhost/iishelp/iis/misc/default.asphttp://localhost/iishelp/iis/misc/default.asp

Page 8: 9.3.1 ASP 概述 1.ASP 简介 ASP 是位于服务器端的脚本运行环境,通过这种环境,用户可以创建和运行动态的交互式 Web 服务器应用程序,如交互式的动态网页,上传与下载等等。

( 2)配置 IIS 5.0 进入 IIS 的管理界面可以在“控制面板”的“管理工具”中打开“ Internet 服务管理器”。IIS 的管理界面如下图所示。

鼠标右键点击“默认 Web 站点”后,选择“属性”菜单项,在出现的对话框中选择“主目录”选项卡鼠标右键点击“默认 Web 站点”后,选择“属性”菜单项,在出现的对话框中选择“主目录”选项卡

Page 9: 9.3.1 ASP 概述 1.ASP 简介 ASP 是位于服务器端的脚本运行环境,通过这种环境,用户可以创建和运行动态的交互式 Web 服务器应用程序,如交互式的动态网页,上传与下载等等。

选择此计算机上的目录选择此计算机上的目录

选择默认的根目录,也可通过浏览来选择其他目录选择默认的根目录,也可通过浏览来选择其他目录

Page 10: 9.3.1 ASP 概述 1.ASP 简介 ASP 是位于服务器端的脚本运行环境,通过这种环境,用户可以创建和运行动态的交互式 Web 服务器应用程序,如交互式的动态网页,上传与下载等等。

首先在 C盘根目录下建立一个文件夹:“ asproot”,将网站的主目录设置到该目录下,首先在 C盘根目录下建立一个文件夹:“ asproot”,将网站的主目录设置到该目录下,

Page 11: 9.3.1 ASP 概述 1.ASP 简介 ASP 是位于服务器端的脚本运行环境,通过这种环境,用户可以创建和运行动态的交互式 Web 服务器应用程序,如交互式的动态网页,上传与下载等等。

“主目录”选项卡文档选项,该选项的意义是:如果 IIS 找不到默认打开的文件,就将该目录下的所有文件列出。

“主目录”选项卡文档选项,该选项的意义是:如果 IIS 找不到默认打开的文件,就将该目录下的所有文件列出。

Page 12: 9.3.1 ASP 概述 1.ASP 简介 ASP 是位于服务器端的脚本运行环境,通过这种环境,用户可以创建和运行动态的交互式 Web 服务器应用程序,如交互式的动态网页,上传与下载等等。

在 C:\asproot目录下新建一个文件“test. txt”,点击默认 Web 站点,在 IIS 的管理界面显示该文件。

在 C:\asproot目录下新建一个文件“test. txt”,点击默认 Web 站点,在 IIS 的管理界面显示该文件。

Page 13: 9.3.1 ASP 概述 1.ASP 简介 ASP 是位于服务器端的脚本运行环境,通过这种环境,用户可以创建和运行动态的交互式 Web 服务器应用程序,如交互式的动态网页,上传与下载等等。

鼠标右键点击“默认 Web 站点”选择“浏览” 选项卡, IIS5.0 自动打开浏览器,如下图所示。

Page 14: 9.3.1 ASP 概述 1.ASP 简介 ASP 是位于服务器端的脚本运行环境,通过这种环境,用户可以创建和运行动态的交互式 Web 服务器应用程序,如交互式的动态网页,上传与下载等等。

(3)测试 ASP 运行环境例 9.1让程序输出字符串“你好,中国 !我的祖国”,测试 ASP 运行环境,程序名称: 9-01.asp

<html> <body> <% Response.Write " 你好,中国 !我的祖国 !" %> </body> </html>

Page 15: 9.3.1 ASP 概述 1.ASP 简介 ASP 是位于服务器端的脚本运行环境,通过这种环境,用户可以创建和运行动态的交互式 Web 服务器应用程序,如交互式的动态网页,上传与下载等等。

文件命名为 9-01.asp ,保存到 c:\asproot目录下。在浏览器中输入 http : //localhost ,可以看到程序列表,如下图所示。

Page 16: 9.3.1 ASP 概述 1.ASP 简介 ASP 是位于服务器端的脚本运行环境,通过这种环境,用户可以创建和运行动态的交互式 Web 服务器应用程序,如交互式的动态网页,上传与下载等等。

单击该 ASP 文件,可输出字符串,如下图所示。

Page 17: 9.3.1 ASP 概述 1.ASP 简介 ASP 是位于服务器端的脚本运行环境,通过这种环境,用户可以创建和运行动态的交互式 Web 服务器应用程序,如交互式的动态网页,上传与下载等等。

4. ASP 运行模型浏览器从 Web 服务器上请求 .asp 文件时, ASP 脚本开始运行。然后 Web 服务器调用 ASP引擎, ASP引擎会全面读取请求的文件,执行所有脚本命令,并将 Web 页传送给浏览器。

由于脚本在服务器上而不是在客户端运行,传送到浏览器上的 Web 页是在 Web 服务器上生成的。 ASP 程序的运行与浏览器无关。由于只有脚本的结果返回到浏览器,所以服务器端的脚本不易被复制,用户看不到 ASP 页的程序源代码。

Page 18: 9.3.1 ASP 概述 1.ASP 简介 ASP 是位于服务器端的脚本运行环境,通过这种环境,用户可以创建和运行动态的交互式 Web 服务器应用程序,如交互式的动态网页,上传与下载等等。

5.ASP 的工作原理 Web Server对静态页面请求的处理过程:(1)当一个用户从浏览器网址栏中输入所要浏览的 Web 页面的地址并按“ Enter”键后,这个页面请求便通过浏览器送到对应的 Web 服务器。

(2) 服务器接到这个请求并根据请求文件的扩展名 .htm或者 .html 的判断出请求一个 HTML 的页面是,或者扩展名为 .asp ,请求某种操作。

(3) 服务器从目前内存或硬盘上读取相对的 HTML 文件并将其传回给用户端浏览器,或者启动 ASP 程序,执行请求的操作。

(4) 浏览器将接收到的 HTML 程序解释运行并将结果提供给用户。

Page 19: 9.3.1 ASP 概述 1.ASP 简介 ASP 是位于服务器端的脚本运行环境,通过这种环境,用户可以创建和运行动态的交互式 Web 服务器应用程序,如交互式的动态网页,上传与下载等等。

浏览器

Web Server ( IIS )

ASP嵌入式程序

数据库

其它

下图 9-12 所示为简化后 ASP 的运行过程。用户向 Web 服务器传送一个 .asp 的页面请求用户向 Web 服务器传送一个 .asp 的页面请求

服务器根据请求 .asp 的扩展名 , 判断出用户要浏览的是一个 ASP 文件从内存或硬盘上读取相对的 ASP 文件

服务器根据请求 .asp 的扩展名 , 判断出用户要浏览的是一个 ASP 文件从内存或硬盘上读取相对的 ASP 文件

在服务器这个 ASP 程序被编译或解释运行,产生 HTML 文件在服务器这个 ASP 程序被编译或解释运行,产生 HTML 文件

传回给用户端浏览器并由浏览器解释运行传回给用户端浏览器并由浏览器解释运行

Page 20: 9.3.1 ASP 概述 1.ASP 简介 ASP 是位于服务器端的脚本运行环境,通过这种环境,用户可以创建和运行动态的交互式 Web 服务器应用程序,如交互式的动态网页,上传与下载等等。

6. 创建 ASP 页 创建 .asp 文件非常容易。如果要在 HTML 文件中添加脚本,只需将该文件的扩展名 .htm或 .html替换为 .asp 就可以了。

脚本是一系列的命令和指令,指示 Web 服务器执行操作。脚本命令通过定界符与文本区别开来。ASP 使用定界符 < %和% >,在定界符中写入相关命令。

定界符括入的命令被称为主脚本命令。默认情况下,主脚本命令语言是 VBScript 。

在 ASP 定界符中可以包含任何主脚本语言中合法的语句、表达式、过程或操作符。

Page 21: 9.3.1 ASP 概述 1.ASP 简介 ASP 是位于服务器端的脚本运行环境,通过这种环境,用户可以创建和运行动态的交互式 Web 服务器应用程序,如交互式的动态网页,上传与下载等等。

例 9.2:用在 HTML 文件中添加脚本的方法创建一个 .asp 文件。在一个 HTML 页上显示该页被访问的时间,文件名为 9-02.asp 。

<html> <body> This paqe was last refreshed on <%=Now %> </body> </html> Web 服务器处理该页时,会使用当前的日期和时间替换 <% =Now% >并且将该页返回到浏览器 .

VBScript函数 Now返回当前的日期和时间

VBScript函数 Now返回当前的日期和时间

Page 22: 9.3.1 ASP 概述 1.ASP 简介 ASP 是位于服务器端的脚本运行环境,通过这种环境,用户可以创建和运行动态的交互式 Web 服务器应用程序,如交互式的动态网页,上传与下载等等。
Page 23: 9.3.1 ASP 概述 1.ASP 简介 ASP 是位于服务器端的脚本运行环境,通过这种环境,用户可以创建和运行动态的交互式 Web 服务器应用程序,如交互式的动态网页,上传与下载等等。

例 9.3根据访问网页的时间返回相应的问候语。文件名为 9-03.asp 。

<% if time>=#12:00:00 AM# And time<#12:00:00 PM#

Then Greeting="Good Morning!" else Greeting="Hello!" end if %> <%=Greeting %>

将值“ Good Moming!”或值“ Hello!”存储在变量 greeting中

将值“ Good Moming!”或值“ Hello!”存储在变量 greeting中

将当前的变量值发送到浏览器 将当前的变量值发送到浏览器

Page 24: 9.3.1 ASP 概述 1.ASP 简介 ASP 是位于服务器端的脚本运行环境,通过这种环境,用户可以创建和运行动态的交互式 Web 服务器应用程序,如交互式的动态网页,上传与下载等等。

正午 12 点前浏览该脚本 正午 12 点前浏览该脚本

正午 12 点以后浏览该脚本 正午 12 点以后浏览该脚本

Page 25: 9.3.1 ASP 概述 1.ASP 简介 ASP 是位于服务器端的脚本运行环境,通过这种环境,用户可以创建和运行动态的交互式 Web 服务器应用程序,如交互式的动态网页,上传与下载等等。

7.ASP 的指令 ASP 为用户提供了脚本语言以外的指令:输出指令和处理指令。

( 1 ) ASP 的输出指令显示表达式 expression 的值: < % =expression% >例如, sport变量的当前值为 climbing, 输出表达式 < % =sport % >,将文字 climbing 传送到浏览器。

( 2 ) ASP 的处理指令提供处理 .asp 文件所需信息。

< %@keyword% >例如,下面的指令将 VBScript 设为该页的主脚本语言:

<%@ LANGUAGE=VBScript %>

Page 26: 9.3.1 ASP 概述 1.ASP 简介 ASP 是位于服务器端的脚本运行环境,通过这种环境,用户可以创建和运行动态的交互式 Web 服务器应用程序,如交互式的动态网页,上传与下载等等。

处理指令必须出现在 .asp 文件的第一行。不要将处理指令放在包含 #include 语句的文件中。必须在标记( @ )和关键字之间加入一个空格。处理指令有下列关键字: LANGUAGE关键字:设置 Web 页的脚本语言。 CODEPAGE关键字:设置Web 页的字符编码。 LCID 关键字:设置Web 页的 Locale ID 。 ENABLESESSIONSTATE关键字:指定 ASP 页是否使用会话状态。

可以在单个指令中包含多个关键字;关键字/值对之间必须由空格分开 , 在等号 (=)左右不加空格。

Page 27: 9.3.1 ASP 概述 1.ASP 简介 ASP 是位于服务器端的脚本运行环境,通过这种环境,用户可以创建和运行动态的交互式 Web 服务器应用程序,如交互式的动态网页,上传与下载等等。

例 9.4 下面是一个典型的在同一 .asp 文件中使用两种脚本语言的例子:

<HTML> <BODY> <TABLE> <%Call Callme%> </TABLE> <%Call ViewDate%> </BODY> </HTML>

<% %> 符号是标准的 ASP 定界符

<% %> 符号是标准的 ASP 定界符

Page 28: 9.3.1 ASP 概述 1.ASP 简介 ASP 是位于服务器端的脚本运行环境,通过这种环境,用户可以创建和运行动态的交互式 Web 服务器应用程序,如交互式的动态网页,上传与下载等等。

<!VBScript 脚本 ><SCRIPT LANGUAGE=VBScript RUNAT=Server>Sub CallmeResponse.Write "<TR><TD>Call</TD><TD>Me</TD></TR>"End Sub</SCRIPT>

< SCRIPT>和 < /SCRIPT> 之间是脚本语言 < SCRIPT>和 < /SCRIPT> 之间是脚本语言

Page 29: 9.3.1 ASP 概述 1.ASP 简介 ASP 是位于服务器端的脚本运行环境,通过这种环境,用户可以创建和运行动态的交互式 Web 服务器应用程序,如交互式的动态网页,上传与下载等等。

<!JavaScript 脚本 ><SCRIPT LANGUAGE=JavaScript RUNAT=Server>function ViewDate(){  var x  x=new Date() 当前日期时间  Response.Write(x.toString())发送当前日期时间到浏览器,返回字符串形式的数值 } // </SCRIPT>  

UTC:协调世界时 进入

Page 30: 9.3.1 ASP 概述 1.ASP 简介 ASP 是位于服务器端的脚本运行环境,通过这种环境,用户可以创建和运行动态的交互式 Web 服务器应用程序,如交互式的动态网页,上传与下载等等。

9.3.2 ASP9.3.2 ASP 的语句结构的语句结构1. 选择结构(1)If...Then...Else 语句例例 9.59.5     <html><head><title>ifrespond.asp</title></head>

Page 31: 9.3.1 ASP 概述 1.ASP 简介 ASP 是位于服务器端的脚本运行环境,通过这种环境,用户可以创建和运行动态的交互式 Web 服务器应用程序,如交互式的动态网页,上传与下载等等。

<body><% fname=request.querystring("Firstname") lname=request.querystring("Lastname")If fname="George" and lname="Washington“ then %>  Hi.You must be the first president!   <% else %>   Hi! Nice to Meet You    <%end if%></body></html>

Page 32: 9.3.1 ASP 概述 1.ASP 简介 ASP 是位于服务器端的脚本运行环境,通过这种环境,用户可以创建和运行动态的交互式 Web 服务器应用程序,如交互式的动态网页,上传与下载等等。

例 9.6<html><body><FONT COLOR="Green"><% If Time < #12:00:00# And Time >= #00:00:00# Then %> 早上好,今天天气不赖啊 !<% ElseIf Time < #19:00:00# And Time >= #12:00:00# Then %> 下午好 !<% Else %> 哈喽 ! 今晚你有没有去 IRC 聊天 !<% End If %></body></html>

Page 33: 9.3.1 ASP 概述 1.ASP 简介 ASP 是位于服务器端的脚本运行环境,通过这种环境,用户可以创建和运行动态的交互式 Web 服务器应用程序,如交互式的动态网页,上传与下载等等。

(2)Select Case 语句例 9.7<%fname=request.querystring("Firstname")lname=request.querystring("Lastname")name=fname+lname Select case name   case "georgewashington"  response.write "Hi.You must be the first president!<p>"  

Page 34: 9.3.1 ASP 概述 1.ASP 简介 ASP 是位于服务器端的脚本运行环境,通过这种环境,用户可以创建和运行动态的交互式 Web 服务器应用程序,如交互式的动态网页,上传与下载等等。

case "ronaldreagan"  response.write "Hi.You must be the actor president!<p>"case "jimmycarter"response.write "Hi.You must be the peanut farmer president!<p>case elseresponse.write "Hi!Nice to Meet You"End Select %>

Page 35: 9.3.1 ASP 概述 1.ASP 简介 ASP 是位于服务器端的脚本运行环境,通过这种环境,用户可以创建和运行动态的交互式 Web 服务器应用程序,如交互式的动态网页,上传与下载等等。

2.循环结构(1)Do Until ... Loop(2)Do... Loop Until例 9.8<html><head><title>DoLoop.asp</title></head><body><p> 请将今年到本月为止的每个月份的销售结算记录填写在本页之上。 <P><% counter=1

Page 36: 9.3.1 ASP 概述 1.ASP 简介 ASP 是位于服务器端的脚本运行环境,通过这种环境,用户可以创建和运行动态的交互式 Web 服务器应用程序,如交互式的动态网页,上传与下载等等。

thismonth=month(now( ))Do while counter < thismonth+1 response.write " " & counter & " 月份 : " response.write "______________________________" & "<BR><br>" If counter > 13 then exit do end if counter = counter+1Loop%><hr></body></html>

Page 37: 9.3.1 ASP 概述 1.ASP 简介 ASP 是位于服务器端的脚本运行环境,通过这种环境,用户可以创建和运行动态的交互式 Web 服务器应用程序,如交互式的动态网页,上传与下载等等。
Page 38: 9.3.1 ASP 概述 1.ASP 简介 ASP 是位于服务器端的脚本运行环境,通过这种环境,用户可以创建和运行动态的交互式 Web 服务器应用程序,如交互式的动态网页,上传与下载等等。

( 3 ) For…Next 语句例 9.9<% for i=1 to 6%><p><center><img src="smile.gif" width="32" height="32" alt=" 晚上好 "></p><% next %>

Page 39: 9.3.1 ASP 概述 1.ASP 简介 ASP 是位于服务器端的脚本运行环境,通过这种环境,用户可以创建和运行动态的交互式 Web 服务器应用程序,如交互式的动态网页,上传与下载等等。

( 4) For Each…Next 语句例 9.10<% For Each i in d <d包含 hobby变量 > Request.querystring("hobby") Response.Write i & "<BR>"Next%>

Page 40: 9.3.1 ASP 概述 1.ASP 简介 ASP 是位于服务器端的脚本运行环境,通过这种环境,用户可以创建和运行动态的交互式 Web 服务器应用程序,如交互式的动态网页,上传与下载等等。

9.3.3 ASP 的内置对象 Active Server Pages 提供内建对象,这些对象使用户更容易收集通过浏览器请求发送的信息、响应浏览器以及存储用户信息(如用户首选项)。

Application 对象 Application 对象可以使给定应用程序的所有用户共享信息。

Request 对象使用 Request对象可以从浏览器的最终用户接受请求,包括从 HTML表格用 POST方法或 GET方法传递的参数。使用 Request对象能访问发送给服务器的二进制数据,如上载的文件。

Page 41: 9.3.1 ASP 概述 1.ASP 简介 ASP 是位于服务器端的脚本运行环境,通过这种环境,用户可以创建和运行动态的交互式 Web 服务器应用程序,如交互式的动态网页,上传与下载等等。

Response 对象使用 Response 对象可以向浏览器发送信息以便向用户显示它 ; 发送给用户的信息。包括直接发送信息给浏览器、重定向浏览器到另一个 URL 。

Server 对象 Server 对象可以创建其他对象并确定服务器特定的属性。最常用的方法是创建 ActiveX 组件的实例 (Server.CreateObject) 。其他方法用于将 URL 或 HTML 编码成字符串,将虚拟路径映射到物理路径以及设置脚本的超时期限。

Page 42: 9.3.1 ASP 概述 1.ASP 简介 ASP 是位于服务器端的脚本运行环境,通过这种环境,用户可以创建和运行动态的交互式 Web 服务器应用程序,如交互式的动态网页,上传与下载等等。

Session 对象使用 Session 对象可以维护有关当前用户会话的信息并保存和获取用户会话的状态信息。当用户在应用程序的页之间跳转时,存储在 Session 对象中的变量不会清除;而用户在应用程序中访问页时,这些变量始终存在。也可以使用 Session 方法显式地结束一个会话和设置空闲会话的超时期限。

Page 43: 9.3.1 ASP 概述 1.ASP 简介 ASP 是位于服务器端的脚本运行环境,通过这种环境,用户可以创建和运行动态的交互式 Web 服务器应用程序,如交互式的动态网页,上传与下载等等。

1. Request对象使用 Request对象可以访问任何通过 HTTP请求传递的信息,包括从 HTML表格用 Post方法或 Get方法传递的参数、 Cookie 和用户认证。 HTTP 请求包含当前用户的有关信息、在请求前输入的任何数据、以及告诉 Web 服务器如何处理和响应请求的参数。

Page 44: 9.3.1 ASP 概述 1.ASP 简介 ASP 是位于服务器端的脚本运行环境,通过这种环境,用户可以创建和运行动态的交互式 Web 服务器应用程序,如交互式的动态网页,上传与下载等等。

(1)Cookie 的基本工作原理。 Cookie 是一小段文本信息,伴随着用户请求和页面在 Web 服务器和浏览器之间传递。用户每次访问站点时, Web 应用程序都可以读取 Cookie 包含的信息。

假设在用户请求访问一个网站 www.contoso.com 上的某个页面时,网站的应用程序发送给该用户的不仅仅是一个页面,还有一个包含日期和时间的 Cookie 。用户的浏览器在获得页面的同时还得到了这个 Cookie ,并且将它保存在用户硬盘上的某个文件夹中。

Page 45: 9.3.1 ASP 概述 1.ASP 简介 ASP 是位于服务器端的脚本运行环境,通过这种环境,用户可以创建和运行动态的交互式 Web 服务器应用程序,如交互式的动态网页,上传与下载等等。

(1)Cookie 的基本工作原理。如果该用户再次访问站点上的页面,当该用户通过 URL输入这个网站的网址时,浏览器就会在本地硬盘上查找与该 URL 相关联的 Cookie 。如果该 Cookie 存在,浏览器就将它与页面请求一起发送到这个的站点,网站的应用程序就能确定该用户上一次访问站点的日期和时间。网站可以根据这些信息向用户发送一条消息,也可以检查过期时间或执行其他有用的功能。

Cookie 是与 Web 站点而不是与具体的多个页面关联的。

Page 46: 9.3.1 ASP 概述 1.ASP 简介 ASP 是位于服务器端的脚本运行环境,通过这种环境,用户可以创建和运行动态的交互式 Web 服务器应用程序,如交互式的动态网页,上传与下载等等。

(2) Cookie 的用途帮助 Web 站点保存有关访问者的信息。更概括地说, Cookie 是一种保持 Web 应用程序连续性(即执行“状态管理”)的方法。浏览器和 Web 服务器除了在短暂的实际信息交换阶段以外总是断开的。然而在大多数情况下,都有必要让 Web 服务器在用户请求某个页面时对用户进行识别。例如,购物站点上的 Web 服务器跟踪每个购物者,以便站点能够管理购物车和其他的用户相关信息。 Cookie 的作用就类似于名片,它提供了相关的标识信息,可以帮助应用程序确定如何继续执行。

Page 47: 9.3.1 ASP 概述 1.ASP 简介 ASP 是位于服务器端的脚本运行环境,通过这种环境,用户可以创建和运行动态的交互式 Web 服务器应用程序,如交互式的动态网页,上传与下载等等。

Request对象的语法如下: Request[ .集合 |属性 |方法 ](变量 )可以使用 Request对象的集合来访问信息,有 Form 集合和 QueryString 集合: 。

(1)Form 集合 HTTP POST 方法用于在 HTTP 请求正文中发送表格数据,当浏览器使用 POST 方法传递请求时, Request对象的 Form 集合检索用 POST方法发送的值,该值是 HTTP请求正文中的表格元素的值。

Page 48: 9.3.1 ASP 概述 1.ASP 简介 ASP 是位于服务器端的脚本运行环境,通过这种环境,用户可以创建和运行动态的交互式 Web 服务器应用程序,如交互式的动态网页,上传与下载等等。

语法格式如下: Request.Form(element){(index)|.count}参数说明: element:指定集合要检索的表格元素的名称。 index :可选参数,使用该参数可以访问某参数中多个值中的一个。它可以是 1到 Count之间的任意整数。

Count:集合中元素的个数。

Page 49: 9.3.1 ASP 概述 1.ASP 简介 ASP 是位于服务器端的脚本运行环境,通过这种环境,用户可以创建和运行动态的交互式 Web 服务器应用程序,如交互式的动态网页,上传与下载等等。

例 9.11 本例将示范如何利用 Request对象的 Form 集合属性来取得用户在表单中填写的信息。文件名为9-11.asp 和 9-11.htm。

test9-11.htm 内容如下: <html> <body bgcolor="#FFFFFF"> <form method="post" action="9-11.asp"> 姓名 : <input type="text" name="yourname"><br>

性别 : <select name="gender"> <option>男 </option> <option>女 </option>

Page 50: 9.3.1 ASP 概述 1.ASP 简介 ASP 是位于服务器端的脚本运行环境,通过这种环境,用户可以创建和运行动态的交互式 Web 服务器应用程序,如交互式的动态网页,上传与下载等等。

</select> <br>留言 : <textarea name="message"> 你好!注意多行文本的处理 </textarea> <br>爱好 ( 按住 Ctrl键可多选 ): <select name="hobby" multiple size="4"><option>电脑 </option><option>购物 </option><option>电影 </option><option> 读书 </option></select> <br>

Page 51: 9.3.1 ASP 概述 1.ASP 简介 ASP 是位于服务器端的脚本运行环境,通过这种环境,用户可以创建和运行动态的交互式 Web 服务器应用程序,如交互式的动态网页,上传与下载等等。

<input type="submit" name="Submit" value="提交 "><input type="reset" name="Submit2"

value="Reset"></form></body></html>

Page 52: 9.3.1 ASP 概述 1.ASP 简介 ASP 是位于服务器端的脚本运行环境,通过这种环境,用户可以创建和运行动态的交互式 Web 服务器应用程序,如交互式的动态网页,上传与下载等等。

9-11.asp内容如下:<%@ Language=VBScript %><% Dim StrName, StrGender, StrM, StrMsgStrName = Trim(Request.Form("yourname")) StrGender = Trim(Request.Form("gender"))StrM = Trim(Request.Form("message"))StrMsg = Replace(StrM,vbcrlf,"<Br>" & vbcrlf)%>

vbcrlf: 回车符和换行符 vbcrlf: 回车符和换行符

Replace函数 : 将字符串 StrM 中的vbcrlf替换为 "<Br>" & vbcrlf

Replace函数 : 将字符串 StrM 中的vbcrlf替换为 "<Br>" & vbcrlf

Page 53: 9.3.1 ASP 概述 1.ASP 简介 ASP 是位于服务器端的脚本运行环境,通过这种环境,用户可以创建和运行动态的交互式 Web 服务器应用程序,如交互式的动态网页,上传与下载等等。

<HTML><BODY>姓名 : <%= StrName%><Br><Br>性别 : <%= StrGender%><Br><Br>留言 : <Br><Br><%=StrM%><Br><Br><%=StrMsg%><Br><Br>实际上, "提交 "按钮的值也被传递 : <Br><%=Request.Form("Submit")%><Br><Br>

Page 54: 9.3.1 ASP 概述 1.ASP 简介 ASP 是位于服务器端的脚本运行环境,通过这种环境,用户可以创建和运行动态的交互式 Web 服务器应用程序,如交互式的动态网页,上传与下载等等。

<% Response.Write " 共选择爱好项数 :" & Request.Form("hobby").Count & "<Br>"Dim I For I = 1 to Request.Form("hobby").Count

Response.Write Request.Form("hobby")(I) & "<Br>"Next%></BODY></HTML> 由浏览器传递过来的由浏览器传递过来的 hobby 值根据用户值根据用户

选择可以有选择可以有 nn 项项 ,, (( I)I) 表示顺序打印各项表示顺序打印各项 由浏览器传递过来的由浏览器传递过来的 hobby 值根据用户值根据用户选择可以有选择可以有 nn 项项 ,, (( I)I) 表示顺序打印各项表示顺序打印各项

Page 55: 9.3.1 ASP 概述 1.ASP 简介 ASP 是位于服务器端的脚本运行环境,通过这种环境,用户可以创建和运行动态的交互式 Web 服务器应用程序,如交互式的动态网页,上传与下载等等。

本例的运行结果如下图所示。

Page 56: 9.3.1 ASP 概述 1.ASP 简介 ASP 是位于服务器端的脚本运行环境,通过这种环境,用户可以创建和运行动态的交互式 Web 服务器应用程序,如交互式的动态网页,上传与下载等等。

(2)QueryString在 Web 页面上,客户端的信息传送除了使用 form 之外,另一种常见方式为 Querystring。当一个请求通过 GET方法传递时,获取在一个 URL 中附加的参数值。

QueryString 集合检索 HTTP 查询字符串中变量的值,HTTP查询字符串由问号 (?) 后的值指定。如:

<A HREF=”example.asp? string=this is a sample"> string sample</ A>生成值为“ this is a sample”的变量名字符串。通过发送表格或由用户在其浏览器的地址框中键入查询也可以生成查询字符串。

Page 57: 9.3.1 ASP 概述 1.ASP 简介 ASP 是位于服务器端的脚本运行环境,通过这种环境,用户可以创建和运行动态的交互式 Web 服务器应用程序,如交互式的动态网页,上传与下载等等。

语法格式如下:Request.QueryString(variable)[(index)|.Count]例 9.12 示范通过 Request 对象的 QueeryString数据集合来获取用户数据。文件名为 9-12.asp 和9-12.htm。

Page 58: 9.3.1 ASP 概述 1.ASP 简介 ASP 是位于服务器端的脚本运行环境,通过这种环境,用户可以创建和运行动态的交互式 Web 服务器应用程序,如交互式的动态网页,上传与下载等等。

9-12.htm 内容如下:<html><body bgcolor="#FFFFFF"><form method="get" action="9-12.asp">英文姓名 :<input type="text" name="Ename"> <br>中文姓名 :<input type="text" name="Cname"><br>性别 : <select name="gender"><option>男 </option><option>女 </option></select> <br>

Page 59: 9.3.1 ASP 概述 1.ASP 简介 ASP 是位于服务器端的脚本运行环境,通过这种环境,用户可以创建和运行动态的交互式 Web 服务器应用程序,如交互式的动态网页,上传与下载等等。

<input type="submit" name="Submit" value="提交 "><input type="reset" name="Submit2" value="Reset"></form></body></html>

Page 60: 9.3.1 ASP 概述 1.ASP 简介 ASP 是位于服务器端的脚本运行环境,通过这种环境,用户可以创建和运行动态的交互式 Web 服务器应用程序,如交互式的动态网页,上传与下载等等。

9-12.asp内容如下:<%@ Language=VBScript%><% Dim StrCname, StrEname, StrGenderStrEname = Trim(Request.QueryString("Ename")) StrCname = Trim(Request.QueryString("Cname")) StrGender = Trim(Request.QueryString("gender"))%>

Page 61: 9.3.1 ASP 概述 1.ASP 简介 ASP 是位于服务器端的脚本运行环境,通过这种环境,用户可以创建和运行动态的交互式 Web 服务器应用程序,如交互式的动态网页,上传与下载等等。

<HTML><BODY>英文姓名 : <%=StrEname%><Br><Br>中文姓名 : <%=StrCname%><Br><Br>性别 : <%=StrGender%><Br><Br>看看提交的字符串 : <Br><%=Request.ServerVariables("QueryString")%></BODY></HTML>

获取预定的服务器变量,诸如表头值、获取预定的服务器变量,诸如表头值、登录名字或使用的服务器协议等信息登录名字或使用的服务器协议等信息

获取预定的服务器变量,诸如表头值、获取预定的服务器变量,诸如表头值、登录名字或使用的服务器协议等信息登录名字或使用的服务器协议等信息

Page 62: 9.3.1 ASP 概述 1.ASP 简介 ASP 是位于服务器端的脚本运行环境,通过这种环境,用户可以创建和运行动态的交互式 Web 服务器应用程序,如交互式的动态网页,上传与下载等等。

本例的运行结果如下图所示。

Page 63: 9.3.1 ASP 概述 1.ASP 简介 ASP 是位于服务器端的脚本运行环境,通过这种环境,用户可以创建和运行动态的交互式 Web 服务器应用程序,如交互式的动态网页,上传与下载等等。

例 9.13处理相应单一值的 Query 字段。这里的链接中包含了一个 Query 字段“ choice” 。文件名为 9-13.asp 和 9-13.htm。9-13.htm 内容如下:<html><body><p><font size="5">您需要的服务是: </font></p><p><a href="9-13.asp?choice=1"> 硬件服务 </a></p><p><a href="9-13.asp?choice=2">软件服务 </a></p><p><a href="9-13.asp?choice=3">其它服务 </a></p></body></html>

Page 64: 9.3.1 ASP 概述 1.ASP 简介 ASP 是位于服务器端的脚本运行环境,通过这种环境,用户可以创建和运行动态的交互式 Web 服务器应用程序,如交互式的动态网页,上传与下载等等。

9-13.asp内容如下:<html><body><% select case request.QueryString("choice") case "1"

response.Write(" 你选择了硬件服务 ") case "2"

response.Write(" 你选择了软件服务 ") case "3"

response.Write(" 你选择了其它服务 ") end select%> </body></html>

Page 65: 9.3.1 ASP 概述 1.ASP 简介 ASP 是位于服务器端的脚本运行环境,通过这种环境,用户可以创建和运行动态的交互式 Web 服务器应用程序,如交互式的动态网页,上传与下载等等。

当用户在页面中单击任意一个链接时,该链接相应的Query 字段就被提交给服务器,服务器根据保存在 Request.Querystring(“choice”) 中的值判断出用户的选择,并做出正确的响应。运行结果如下图所示。

Page 66: 9.3.1 ASP 概述 1.ASP 简介 ASP 是位于服务器端的脚本运行环境,通过这种环境,用户可以创建和运行动态的交互式 Web 服务器应用程序,如交互式的动态网页,上传与下载等等。

例 9.14 验证表格输入。验证方法一: ASP 程序将信息提交到 web 服务器之前,先将用户信息进行验证;

验证方法二: ASP 程序创建一个向自身传递信息的表格。此例验证“ age” 中是否为数字,文件名为 9-14-1.asp 和 9-14-2.asp 。

9-14-1.asp内容如下: <SCRIPT LANGUAGE="VBScript"> Sub btnEnter_OnClick Dim TheForm Set TheForm = Document.MyForm

DEFINE CLASS MyForm AS Form DEFINE CLASS MyForm AS Form

Page 67: 9.3.1 ASP 概述 1.ASP 简介 ASP 是位于服务器端的脚本运行环境,通过这种环境,用户可以创建和运行动态的交互式 Web 服务器应用程序,如交互式的动态网页,上传与下载等等。

If IsNumeric(TheForm.Age.Value) Then Msgbox " Ok"

TheForm.submit ElseMsgbox "Please enter a numerical age." End ifEnd Sub</SCRIPT><html><head><title>test</title>

Page 68: 9.3.1 ASP 概述 1.ASP 简介 ASP 是位于服务器端的脚本运行环境,通过这种环境,用户可以创建和运行动态的交互式 Web 服务器应用程序,如交互式的动态网页,上传与下载等等。

<body><FORM METHOD= "POST" NAME=MyForm ACTION="9-14-1.asp" > Name: <INPUT TYPE="text" NAME="Name" >Age: <INPUT TYPE="text" NAME="Age" ><INPUT TYPE="button" NAME="btnEnter"

VALUE="Enter"> </FORM></body></html>

Page 69: 9.3.1 ASP 概述 1.ASP 简介 ASP 是位于服务器端的脚本运行环境,通过这种环境,用户可以创建和运行动态的交互式 Web 服务器应用程序,如交互式的动态网页,上传与下载等等。

9-14-2.asp内容如下:<% If Isnumeric(Request.QueryString("Age")) then %> <p>Hello, your age is <% = Request.QueryString("age")%><%Else%><p>Please enter a numerical age.<%End If%> <html><title>test</title>

Page 70: 9.3.1 ASP 概述 1.ASP 简介 ASP 是位于服务器端的脚本运行环境,通过这种环境,用户可以创建和运行动态的交互式 Web 服务器应用程序,如交互式的动态网页,上传与下载等等。

<body><FORM METHOD="GET" ACTION="9-14-2.asp" > Name: <INPUT TYPE="text" NAME="Name" >Age: <INPUT TYPE="text" NAME="Age" ><INPUT TYPE="submit" VALUE="Enter"> </FORM></body></html>

Page 71: 9.3.1 ASP 概述 1.ASP 简介 ASP 是位于服务器端的脚本运行环境,通过这种环境,用户可以创建和运行动态的交互式 Web 服务器应用程序,如交互式的动态网页,上传与下载等等。

本例的运行结果如下图所示。

Page 72: 9.3.1 ASP 概述 1.ASP 简介 ASP 是位于服务器端的脚本运行环境,通过这种环境,用户可以创建和运行动态的交互式 Web 服务器应用程序,如交互式的动态网页,上传与下载等等。

(3) Cookies 当用户第一次请求给定的应用程序中的 .asp 文件时, ASP 生成一个 SessionID 。它唯一标识每个用户会话。在新会话开始时,服务器将 Session ID 作为一个 cookie 存储在用户的 Web 浏览器中。

SessionID 与钥匙很相似,当会话期间用户与应用程序交互时, ASP 可以将用户信息存储在服务器的一个“保险箱”中。正象用钥匙能存取保险箱中物品一样,通过在 HTTP 请求标题中发送的用户 SessionID cookie ,就能够对该“保险箱”中的内容进行访问。每当 ASP 收到一个页请求时,就检查 HTTP 请求标题,以获得 SessionID cookie 。

Page 73: 9.3.1 ASP 概述 1.ASP 简介 ASP 是位于服务器端的脚本运行环境,通过这种环境,用户可以创建和运行动态的交互式 Web 服务器应用程序,如交互式的动态网页,上传与下载等等。

在会话活动中 cookie 是 Web 服务器嵌在用户的 Web 浏览器中,用来代表用户的令牌。

当下次同一浏览器请求一页时,浏览器将发送从 Web 服务器收到的 cookie 。 cookie 允许有一组信息与用户关联。

ASP 脚本使用 Response 和 Request 对象的 Cookies 集合,可以获取和设置 cookie 的值。

Request 提供的 Cookies集合允许检索用户在 HTTP请求中发送的 cookie 的值,即允许读 cookie的值。这项功能经常被使用在要求认证客户密码以及电子公告板、 Web聊天室等 ASP 程序中。

Page 74: 9.3.1 ASP 概述 1.ASP 简介 ASP 是位于服务器端的脚本运行环境,通过这种环境,用户可以创建和运行动态的交互式 Web 服务器应用程序,如交互式的动态网页,上传与下载等等。

语法格式如下: Request.Cookies(cookie){(key)|.attribute} Response.Cookies(cookie)[([(key)|.attribute] = value

参数说明: cookie:指定要检索其值的 cookie 。 Key :可选参数,用于从 cookie字典中检索子关键字的值。

Attribute:指定 cookie 自身的有关信息。如: HasKeys 只读,说明 cookie 是否包含关键字。可以通过包含一个 key 值来访问 cookie字典的子关键字。如果访问 cookie字典时未指定 key,则所有关键字都会作为单个查询字符串返回。

Page 75: 9.3.1 ASP 概述 1.ASP 简介 ASP 是位于服务器端的脚本运行环境,通过这种环境,用户可以创建和运行动态的交互式 Web 服务器应用程序,如交互式的动态网页,上传与下载等等。

例如,如果 MyCookie 有两个关键字, First 和 Second ,而在调用 Request.Cookies时并未指定其中任何一个关键字,那么将返回下列字符串。

First=firstkeyvalue & second=secondkeyvalue

Response.Cookies 的使用,例如: RResponse.Cookies("mycookie")("type1“)="sugar"

RResponse.Cookies("mycookie“)("type2“)="ginger snap"%>

Page 76: 9.3.1 ASP 概述 1.ASP 简介 ASP 是位于服务器端的脚本运行环境,通过这种环境,用户可以创建和运行动态的交互式 Web 服务器应用程序,如交互式的动态网页,上传与下载等等。

例 9.15 cookie 应用实例。文件名为 9-15.asp: <% nickname=request.form("nick") response.cookies("nick")=nickname ‘用 response对象将用户名写入 Cookie之中 response.write " 欢迎 "&request.cookies("nick") & "光临小站! "

%>

Page 77: 9.3.1 ASP 概述 1.ASP 简介 ASP 是位于服务器端的脚本运行环境,通过这种环境,用户可以创建和运行动态的交互式 Web 服务器应用程序,如交互式的动态网页,上传与下载等等。

<html><body><form method="POST" action="9-17.asp"><p><input type="text" name="nick" size="20"><input type="submit" value=" 发送 " name="B1"><input type="reset" value=" 重填 " name="B2"></p></form></body></html>

Page 78: 9.3.1 ASP 概述 1.ASP 简介 ASP 是位于服务器端的脚本运行环境,通过这种环境,用户可以创建和运行动态的交互式 Web 服务器应用程序,如交互式的动态网页,上传与下载等等。

本例的运行结果如下图所示。

Page 79: 9.3.1 ASP 概述 1.ASP 简介 ASP 是位于服务器端的脚本运行环境,通过这种环境,用户可以创建和运行动态的交互式 Web 服务器应用程序,如交互式的动态网页,上传与下载等等。

(4)ServerVirables获取诸如表头值、登录名字或使用的服务器协议等信息。

在浏览器中浏览网页的时候使用的传输协议是 HTTP ,在 HTTP 的标题文件中会记录一些客户端的信息,如客户的 IP地址等等,有时服务器端需要根据不同的客户端信息做出不同的反映,这时候就需要用 ServerVirables集合获取所需信息。语法格式为:

Request.ServerVariables( 服务器环境变量 )由于服务器环境变量较多,在此仅将一些常用的变量在表 9.1 中列出。

Page 80: 9.3.1 ASP 概述 1.ASP 简介 ASP 是位于服务器端的脚本运行环境,通过这种环境,用户可以创建和运行动态的交互式 Web 服务器应用程序,如交互式的动态网页,上传与下载等等。

表 9 . 1

服务器环境变量

描述

ALL_HTTP 客户端发送的所有 HTTP标题文件CONTENT_LENGTH

客户端发出内容的长度

CONTENT_TYPE 内容的数据类型。如:“ text / html” 。同附加信息的查询一起使用,如 HTTP查询 GET 、 POST 和 PUT

LOCAL_ADDR 返回接受请求的服务器地址。如果在绑定多个 IP地址的多宿主机器上查找请求所使用的地址时,这条变量非常重要用

LOGON_USER 客户登录 Windows NT 的账号

Page 81: 9.3.1 ASP 概述 1.ASP 简介 ASP 是位于服务器端的脚本运行环境,通过这种环境,用户可以创建和运行动态的交互式 Web 服务器应用程序,如交互式的动态网页,上传与下载等等。

QUERY_STRING 查询 HTTP请求中问号 (?) 后的信息REMOTE_ADDR 发出请求的远程主机 (client) 的 IP地

址REMOTE_HOST 发出请求的主机 (client) 名称。如果

服务器无此信息,它将设置为空的 REMOTE_ADDR 变量

REQUEST_METHOD

该方法用于提出请求。相当于用于 HTTP 的 GET 、 HEAD 、 POST 等等

SERVER_NAME 出现在自引用 URL 中的服务器主机名、DNS化名或 IP地址

SERVER_PORT 发送请求的端口号

Page 82: 9.3.1 ASP 概述 1.ASP 简介 ASP 是位于服务器端的脚本运行环境,通过这种环境,用户可以创建和运行动态的交互式 Web 服务器应用程序,如交互式的动态网页,上传与下载等等。

例 9.16 使用以下脚本打印出所有的服务器环境变量。文件名为 9-16.asp 。<HTML><BODY> <% Response.Write "运行 ASP 文件的路径 :"&_Request.ServerVariables("Script_Name")&"<Br>"Response.Write " 返回 content 的数据长度 :"&_Request.ServerVariables("Content_Length")&"<Br>"Response.Write “返回客户端的 IP地址 :"&_Request.ServerVariables("Remote_Addr")&"<Br>"

被执行的脚本程序的路径被执行的脚本程序的路径 被执行的脚本程序的路径被执行的脚本程序的路径 客户端接收的脚本字节数客户端接收的脚本字节数 客户端接收的脚本字节数客户端接收的脚本字节数

Page 83: 9.3.1 ASP 概述 1.ASP 简介 ASP 是位于服务器端的脚本运行环境,通过这种环境,用户可以创建和运行动态的交互式 Web 服务器应用程序,如交互式的动态网页,上传与下载等等。

Response.Write " 返回浏览器名 : "& _Request.ServerVariables("HTTP_USER_AGENT")&_"<Br>"Response.Write " 返回主页实际物理路径 : "&_Request.ServerVariables("APPL_PHYSICAL_PATH")&_"<Br>"%><table><tr> <td align=CENTER bgcolor="#800000" width="109">

Page 84: 9.3.1 ASP 概述 1.ASP 简介 ASP 是位于服务器端的脚本运行环境,通过这种环境,用户可以创建和运行动态的交互式 Web 服务器应用程序,如交互式的动态网页,上传与下载等等。

<font style="ARIAL NARROW" color="#FFFFFF" size="2">环境变量名 </font></td><td align=CENTER width=459 bgcolor="#800000"><font style="ARIAL NARROW" color="#FFFFFF" size="2"> 内容 </font></td></tr><tr> <td bgcolor="#F7EFDE" align=CENTER> <font style="ARIAL NARROW" size="2"> result1</font></td>

Page 85: 9.3.1 ASP 概述 1.ASP 简介 ASP 是位于服务器端的脚本运行环境,通过这种环境,用户可以创建和运行动态的交互式 Web 服务器应用程序,如交互式的动态网页,上传与下载等等。

<td bgcolor="#F7EFDE" align=CENTER> <font style="ARIAL NARROW" size="2"> result2</font></td></tr></table></BODY></HTML>

Page 86: 9.3.1 ASP 概述 1.ASP 简介 ASP 是位于服务器端的脚本运行环境,通过这种环境,用户可以创建和运行动态的交互式 Web 服务器应用程序,如交互式的动态网页,上传与下载等等。

本例的运行结果如下图所示。

Page 87: 9.3.1 ASP 概述 1.ASP 简介 ASP 是位于服务器端的脚本运行环境,通过这种环境,用户可以创建和运行动态的交互式 Web 服务器应用程序,如交互式的动态网页,上传与下载等等。

2. Response对象 Response对象是用来控制发送给用户的信息,包括直接发送信息给浏览器、重定向浏览器到另一个 URL 或设置 Cookie 的值。语法格式如下:

Response.collection|property|method(1)属性①Buffer属性:指示是否缓冲页输出。当缓冲页输出时,只有当前页的所有服务器脚本处理完毕或者调用了 Flush或 End方法后,服务器才将响应发送给客户端浏览器,服务器将输出发送给客户端浏览器后就不能再设置 Buffer 属性。因此应该在 .asp 文件的第一行调用 Response.Buffer 。

将缓冲区的数据写入文件将缓冲区的数据写入文件 将缓冲区的数据写入文件将缓冲区的数据写入文件

Page 88: 9.3.1 ASP 概述 1.ASP 简介 ASP 是位于服务器端的脚本运行环境,通过这种环境,用户可以创建和运行动态的交互式 Web 服务器应用程序,如交互式的动态网页,上传与下载等等。

② Charset属性设置或者返回字体中所用字符集 ,将字符集名称( CharsetName )附加到 Response对象中 content-type标题的后面。格式为:

Response.Charset(CharsetName) 如果某个页包含多个含有 Response.Charset 的标记,则每个 Response.Charset 都将替代前一个 CharsetName 。这样,字符集将被设置为该页中 Response.Charset 的最后一个实例所指定。

Page 89: 9.3.1 ASP 概述 1.ASP 简介 ASP 是位于服务器端的脚本运行环境,通过这种环境,用户可以创建和运行动态的交互式 Web 服务器应用程序,如交互式的动态网页,上传与下载等等。

③ContentType属性指定服务器响应的 HTTP内容类型。使用 ContentType 属性可以为发送给用户的内容设置 HTTP 内容类型字符串。

默认内容类型为 text/HTML 。如果在 .asp 文件中指定 content-type标题,例如

< % Response.Charset=”gb2312“)% >,将产生以下结果: content-type: text / html; Charset=gb2312 。

例如,设置内容类型 application/x-cdf ,告诉浏览器用通道定义来解释字节。 <% Response.ContentType =_ "application/x-cdf" %>

Page 90: 9.3.1 ASP 概述 1.ASP 简介 ASP 是位于服务器端的脚本运行环境,通过这种环境,用户可以创建和运行动态的交互式 Web 服务器应用程序,如交互式的动态网页,上传与下载等等。

④Expires属性指定在浏览器上缓冲存储的页距过期还有多少时间。如果用户在某个页过期之前又浏览到此页,就会显示缓冲区中的页面。

如果设置 <% Response.Expires = 0 %> ,则强迫缓存的页面立即过期。

因为在任何页被发送之前, HTTP 标题必须被送给浏览器,所以可通过将 Response.Expires 属性放在 HTML 标记之前或使用 Response.Buffer 缓存该页。

Page 91: 9.3.1 ASP 概述 1.ASP 简介 ASP 是位于服务器端的脚本运行环境,通过这种环境,用户可以创建和运行动态的交互式 Web 服务器应用程序,如交互式的动态网页,上传与下载等等。

⑤ExpiresAbsolute属性指定缓存于浏览器中的页面的确切到期日期和时间。在未到期之前,若用户返回到该页,该缓存中的页面就显示。如果未指定时间,该主页在当天午夜到期。如果未指定日期,则该主页在脚本运行当天的指定时间到期。如下示例指定页面在 2005年 12月10日上午 9 点 00分 30秒到期。

< % Response.ExpiresAbsolute =#Dec 12 , 2005 9:00:30# % >

Page 92: 9.3.1 ASP 概述 1.ASP 简介 ASP 是位于服务器端的脚本运行环境,通过这种环境,用户可以创建和运行动态的交互式 Web 服务器应用程序,如交互式的动态网页,上传与下载等等。

(2)方法①Clear方法清除缓冲区中的所有 HTML输出。但 Clear方法只清除响应正文而不清除响应标题。可以用该方法处理错误情况。

②End方法使 Web 服务器停止处理脚本并返回当前结果。文件中剩余的内容将不被处理。如果 response.Buffer 已设置为 TRUE ,则调用 Response.End 将缓冲内容输出到浏览器。

Page 93: 9.3.1 ASP 概述 1.ASP 简介 ASP 是位于服务器端的脚本运行环境,通过这种环境,用户可以创建和运行动态的交互式 Web 服务器应用程序,如交互式的动态网页,上传与下载等等。

③Flush 方法立即将缓冲区中的内容输出到文件,传递到浏览器。但 Response.Buffer 需设置为 True 。

④Redirect方法使浏览器立即重定向到程序指定的 URL 。如果使用 Redirect 方法,任何在页中显式设置的响应正文内容都将被忽略。此方法不再向客户端发送该页设置的其他 HTTP标题,将产生一个将重定向 URL 作为链接包含的自动响应正文。

例如,发送下列显式标题,其中 URL 是传递给该方法的值,

< % Response.redirect(“www.chinabyte.com”)% >

Page 94: 9.3.1 ASP 概述 1.ASP 简介 ASP 是位于服务器端的脚本运行环境,通过这种环境,用户可以创建和运行动态的交互式 Web 服务器应用程序,如交互式的动态网页,上传与下载等等。

⑤Write方法最常用的方法之一,将指定的字符串写到当前的HTTP输出。例如< % Response.write(" 欢迎进入我的个人天地! ") %>

Page 95: 9.3.1 ASP 概述 1.ASP 简介 ASP 是位于服务器端的脚本运行环境,通过这种环境,用户可以创建和运行动态的交互式 Web 服务器应用程序,如交互式的动态网页,上传与下载等等。

(3)集合 Response对象只有一个集合: Cookie 。 Cookies集合设置 cookie 的值。若指定的 cookie 不存在,则创建它。若存在,则设置新的值并且将旧值删去。

语法格式为: Response.cookies(cookie){(key)|.attribute}=value

cookie指定 cookie 的名称。如果指定了 key,则该 cookie 就是一个字典。

Response.Cookies 只支持写操作

Page 96: 9.3.1 ASP 概述 1.ASP 简介 ASP 是位于服务器端的脚本运行环境,通过这种环境,用户可以创建和运行动态的交互式 Web 服务器应用程序,如交互式的动态网页,上传与下载等等。

attribute指定 cookie 自身的有关信息。 attribute参数可以是下列之一:

①Domain:若被指定,则 cookie将被发送到对该域的请求中去。

②HasKeys:指明 cookie 是否包含关键字。在 Cookie 中遍历子关键字 (Subkeys) 集合时,可以通过使用 HasKeys 先检查 cookie 是否含有子关键字 (Subkeys) 。

③Path :若被指定,则 cookie将只发送到对该路径的请求中。如果未设置该属性,则使用应用程序的路径。

Page 97: 9.3.1 ASP 概述 1.ASP 简介 ASP 是位于服务器端的脚本运行环境,通过这种环境,用户可以创建和运行动态的交互式 Web 服务器应用程序,如交互式的动态网页,上传与下载等等。

④Expires:指定 cookie 的过期日期。为了在会话结束后将 cookie存储在客户端磁盘上, 必须设置该日期。若此项属性的设置未超过当前日期,则在任务结束后 cookie将到期。如果希望 cookie 只在当前的用户会话中被使用,则只需向浏览器发送 cookie 。但是,如果要在用户已经终止或重新启动浏览器之后确认用户,就必须强制浏览器将 cookie 存储在计算机的硬盘上。要保存 cookie ,将日期设置为此后的某一天:

<% Response.Cookies("planet") ="Mars"Response.Cookies("planet").Expires = "January 1, 2006" %>

Page 98: 9.3.1 ASP 概述 1.ASP 简介 ASP 是位于服务器端的脚本运行环境,通过这种环境,用户可以创建和运行动态的交互式 Web 服务器应用程序,如交互式的动态网页,上传与下载等等。

例 9.17本例将示范 Request对象和 Response对象中的 Cookies属性的结合使用。文件名为 9-17 . asp 。<% Response.Cookies("aspCookies")("name")="fanc" Response.Cookies("aspCookies")("sex")="girl" Response.Cookies("aspCoolies")("Email")_="[email protected]"%>

Page 99: 9.3.1 ASP 概述 1.ASP 简介 ASP 是位于服务器端的脚本运行环境,通过这种环境,用户可以创建和运行动态的交互式 Web 服务器应用程序,如交互式的动态网页,上传与下载等等。

<html><body><% For Each Cookiesname in Request.Cookies If Request.cookies(Cookiesname).haskeys Then For Each keyCookies In_ Request.Cookies(Cookiesname) Response.Write"[DIR]" & keyCookies & _ "的内容是: "Response.Write_ Request.Cookies(Cookiesname)(keyCookies) &_ "<br>" Next

Page 100: 9.3.1 ASP 概述 1.ASP 简介 ASP 是位于服务器端的脚本运行环境,通过这种环境,用户可以创建和运行动态的交互式 Web 服务器应用程序,如交互式的动态网页,上传与下载等等。

else Response.Write Cookiesname &"的内容是: "&_ Request.Cookies(Cookiesname) & "<br>" end if next%></body></html>

Page 101: 9.3.1 ASP 概述 1.ASP 简介 ASP 是位于服务器端的脚本运行环境,通过这种环境,用户可以创建和运行动态的交互式 Web 服务器应用程序,如交互式的动态网页,上传与下载等等。

进入

本例的运行结果如下图所示。

Page 102: 9.3.1 ASP 概述 1.ASP 简介 ASP 是位于服务器端的脚本运行环境,通过这种环境,用户可以创建和运行动态的交互式 Web 服务器应用程序,如交互式的动态网页,上传与下载等等。

例 9.18 本例将示范 Request对象和 Response对象中的 Expires,QueryString 方法的使用,文件名为 9-18a.asp 和 9-18b.asp 。

9-18a.asp内容如下: <html> <body> <p> <% Dim user Dim flag Dim pwd Dim say

Page 103: 9.3.1 ASP 概述 1.ASP 简介 ASP 是位于服务器端的脚本运行环境,通过这种环境,用户可以创建和运行动态的交互式 Web 服务器应用程序,如交互式的动态网页,上传与下载等等。

Response.buffer=true '开启缓冲页面功能Response.ContentType="text/HTML"Response.Charset="gb2312"user=Request.Form("username")pwd=Request.Form("password")say=Request.QueryString("say")%></p><p><form method="POST" action="9-18b.asp"><p> 用户名 :<input type="text" name="username“_

size="12"><br> 口 令 :<input type="password" name="password“_

size="12"><br>

Page 104: 9.3.1 ASP 概述 1.ASP 简介 ASP 是位于服务器端的脚本运行环境,通过这种环境,用户可以创建和运行动态的交互式 Web 服务器应用程序,如交互式的动态网页,上传与下载等等。

<input type="submit" value="提交 " name="B1"> <input type="reset" value=" 取消“ _ name="B2"></p> </form> <% If say=1 then Response.Write " 欢迎书生大驾光临 !" End If If say>1 then Response.Write " 欢迎再次光临书生的 ASP 网站 !" End If

Page 105: 9.3.1 ASP 概述 1.ASP 简介 ASP 是位于服务器端的脚本运行环境,通过这种环境,用户可以创建和运行动态的交互式 Web 服务器应用程序,如交互式的动态网页,上传与下载等等。

If user="Admin" and pwd="wangzhan" Then Response.Expires=1 ‘ 设置该页面在浏览器的缓冲中存储 1分钟后过期 flag=1Else If user="guest" and pwd="guest" Then Response.Expires=0 '使缓存的页面立即过期 Response.Clear '清空存储在缓存中的页面 flag=2 Else If user="vip" and pwd="vip" Then Response.Write_ " 欢迎 VIP 光临书生的 ASP 网站 " flag=3

Page 106: 9.3.1 ASP 概述 1.ASP 简介 ASP 是位于服务器端的脚本运行环境,通过这种环境,用户可以创建和运行动态的交互式 Web 服务器应用程序,如交互式的动态网页,上传与下载等等。

Else flag=0 Response.end '立即停止脚本处理,并将缓存中的页面输出 End If End ifEnd ifResponse.write "<p><a href='9-18b.asp?flag_ =" & flag & " '>动态网站设计举例 </a></p>" '将变量 flag 的值传送给 9-18b.asp%> <p> 动态网站设计举例 </p></body></html>

Page 107: 9.3.1 ASP 概述 1.ASP 简介 ASP 是位于服务器端的脚本运行环境,通过这种环境,用户可以创建和运行动态的交互式 Web 服务器应用程序,如交互式的动态网页,上传与下载等等。

9-18b.asp内容如下:<html><body><% Dim say1 say1=Request.QueryString("flag") Select case say1 case "1" Response.Redirect "9-18a.asp?say=1" case "2" Response.Redirect "9-18a.asp?say=2"

Page 108: 9.3.1 ASP 概述 1.ASP 简介 ASP 是位于服务器端的脚本运行环境,通过这种环境,用户可以创建和运行动态的交互式 Web 服务器应用程序,如交互式的动态网页,上传与下载等等。

case "3" Response.Redirect “9-18a.asp?say=3" case "0" Response.Redirect "9-18a.asp?say=0“End Select%></body></html>  

Page 109: 9.3.1 ASP 概述 1.ASP 简介 ASP 是位于服务器端的脚本运行环境,通过这种环境,用户可以创建和运行动态的交互式 Web 服务器应用程序,如交互式的动态网页,上传与下载等等。

本例的运行结果如下图所示。

Page 110: 9.3.1 ASP 概述 1.ASP 简介 ASP 是位于服务器端的脚本运行环境,通过这种环境,用户可以创建和运行动态的交互式 Web 服务器应用程序,如交互式的动态网页,上传与下载等等。

3. Application对象 Application 是实现某一特定功能的 Web 应用程序。由许多文件组成的集合,这个集合中的每一个文件都视为该程序的子程序,而且几个处理相关内容的脚本可以构成一个功能模块,很像在 Windows下用 Vc++ 或 VB 开发的应用程序。

(1) Application对象的集合和方法网站上不同用户可以通过 Application 共享信息。 Application 下属的某个文件中建立的组件 Instance 可以被该 Application 中的其他所有文件调用。

服务器上运行的所有 Application都相互独立。

Page 111: 9.3.1 ASP 概述 1.ASP 简介 ASP 是位于服务器端的脚本运行环境,通过这种环境,用户可以创建和运行动态的交互式 Web 服务器应用程序,如交互式的动态网页,上传与下载等等。

①Contents集合 Application对象利用 Contents集合保存其相关内容的。 Application.Contents集合的属性和方法有 Count属性、 Remove及 RemoveAll方法。

对于 Application对象来说,其 Contents集合中的内容是被很多用户共享的,因此不会因为某个甚至全部用户的离开而自行结束,它会一直保存至该 Application 被卸载,或服务器重新激活。

Page 112: 9.3.1 ASP 概述 1.ASP 简介 ASP 是位于服务器端的脚本运行环境,通过这种环境,用户可以创建和运行动态的交互式 Web 服务器应用程序,如交互式的动态网页,上传与下载等等。

②Lock和 UnLock 方法 Application对象可以用来实现网站某一用户群体之间的信息共享,这就需要服务器不断地收集和处理需要共享的信息。如果许多用户同一时刻将信息提交给服务器处理,有可能造成信息阻塞。为此提供 Lock和 UnLock 方法解决这种矛盾。

当某个 Application调用了 Lock 方法后,服务器就不再允许其他用户处理程序对该 Application的内容做修改,直到它调用 UnLock 方法解除锁定。

当需要修改一个 Application 的内容时,先调用 Lock 方法,并在内容修改完毕后调用 UnLock 方法将其解锁,保证信息的完整性。

Page 113: 9.3.1 ASP 概述 1.ASP 简介 ASP 是位于服务器端的脚本运行环境,通过这种环境,用户可以创建和运行动态的交互式 Web 服务器应用程序,如交互式的动态网页,上传与下载等等。

例 9.19 用 Application 来记录页面访问次数的程序。文件名为 9-19.asp 。

<html> <body> <% Dim NumVisits NumVisits=0 Application.Lock Application("NumVisits")_ =Application("NumVisits")+1 Application.Unlock %>

变量存储在变量存储在 ApplicationApplication对象中对象中 变量存储在变量存储在 ApplicationApplication对象中对象中

Page 114: 9.3.1 ASP 概述 1.ASP 简介 ASP 是位于服务器端的脚本运行环境,通过这种环境,用户可以创建和运行动态的交互式 Web 服务器应用程序,如交互式的动态网页,上传与下载等等。

欢迎光临本网页,你是本页的第 <%=Application("NumVisits")%>位访客 !

</body> </html>本例的运行结果如下图所示。

Page 115: 9.3.1 ASP 概述 1.ASP 简介 ASP 是位于服务器端的脚本运行环境,通过这种环境,用户可以创建和运行动态的交互式 Web 服务器应用程序,如交互式的动态网页,上传与下载等等。

(2)处理 Application对象的事件 Application对象有两个重要事件: Application_OnStart 和 Application_OnEnd ,这两个事件的处理过程写在 Global.asa 文件中。

Application_OnStart 事件对应一个 Application 的开始,

Application_OnEnd 事件则对应于 Application的结束。

Global.asa 文件的内容是用来存储事件信息和由应用程序全局使用的对象。该文件存放在应用程序的根目录中。每个应用程序只有一个 Global.asa 文件。

Page 116: 9.3.1 ASP 概述 1.ASP 简介 ASP 是位于服务器端的脚本运行环境,通过这种环境,用户可以创建和运行动态的交互式 Web 服务器应用程序,如交互式的动态网页,上传与下载等等。

Application_OnStart 事件在首次创建新的会话 ( 即 Session_OnStart 事件 ) 之前发生。当 WEB 服务器启动并允许对应用程序所包含的文件进行请求时就触发 Application_OnStart 事件。Application_OnStart 事件的语法如下 :

< SCRIPT LANGUAGE=ScriptLanguage _ RUNAT=Server> Sub Application_OnStart …… End Sub < /SCRIPT> Application_OnEnd 事件在应用程序退出时于 Session_OnEnd 事件之后发生。

Page 117: 9.3.1 ASP 概述 1.ASP 简介 ASP 是位于服务器端的脚本运行环境,通过这种环境,用户可以创建和运行动态的交互式 Web 服务器应用程序,如交互式的动态网页,上传与下载等等。

例 9.20 下列的脚本对 Application对象进行演示。文件名为 9-20a.asp 和 9-20b.asp9-20a.asp 的内容如下:<%dim MyArray()Redim MyArray(5)MyArray(0)="hello"MyArray(1)="someotherstring"Application.LockApplication("StoredArray")=MyArrayApplication.UnlockResponse.Redirect "9-20b.asp"%>

Page 118: 9.3.1 ASP 概述 1.ASP 简介 ASP 是位于服务器端的脚本运行环境,通过这种环境,用户可以创建和运行动态的交互式 Web 服务器应用程序,如交互式的动态网页,上传与下载等等。

9-20b.asp 的内容如下:<%LocalArray=Application("StoredArray")LocalArray(1)="there"Response.Write LocalArray(0) & LocalArray(1)Application.LockApplication("StoredArray")=LocalArrayApplication.Unlock%>运 行 结 果 为 :

Page 119: 9.3.1 ASP 概述 1.ASP 简介 ASP 是位于服务器端的脚本运行环境,通过这种环境,用户可以创建和运行动态的交互式 Web 服务器应用程序,如交互式的动态网页,上传与下载等等。

4. Session对象(1)什么是 Session Session 对象存储特定的用户会话所需的信息。使用 Session对象和由服务器生成的用户 ID ,创建的应用程序,可以识别每个来访用户并收集应用程序跟踪用户的首选项或选择内容所要用到的信息。

当用户请求 ASP 应用程序中的某个页面时, ASP 检查 HTTP 头信息,查看报文中是否有名为 ASPSessionID 的 Cookie 发送过来,如果有,则服务器会启动新的会话,并为该会话生成一个全局唯一的值,再把这个值作为新 ASPSessionID Cookie值发送给客户端。通过向客户程序发送唯一的 Cookie ,可以管理服务器上的 Session 对象。

Page 120: 9.3.1 ASP 概述 1.ASP 简介 ASP 是位于服务器端的脚本运行环境,通过这种环境,用户可以创建和运行动态的交互式 Web 服务器应用程序,如交互式的动态网页,上传与下载等等。

Session对象是客户端浏览器与服务器之间建立的互动信息的状态。每一个不同的用户连接得到不同的 Session 。 Session 在用户进入网站时由服务器自动产生,并在用户正常离开站点时释放。

当用户在应用程序的页之间跳转时,存储在 Session 对象中的变量不会清除,而用户在应用程序中访问页面时,这些变量始终存在。

使用 Session 可以保存很多与用户相关的信息,例如用户的账号、昵称等;利用 Session ,可以跟踪用户在网站上的活动。

Session对象的常用的属性和方法如下:

Page 121: 9.3.1 ASP 概述 1.ASP 简介 ASP 是位于服务器端的脚本运行环境,通过这种环境,用户可以创建和运行动态的交互式 Web 服务器应用程序,如交互式的动态网页,上传与下载等等。

①Contents集合用户信息保存在 Session对象的 Contents集合中,因此下面两段程序代码效果是相等的:

Session(“custom_color”)=”blue” Session.Contents (“custom_color”)=”blue” Contents集合的 Count属性:该属性用来了解 Contents集合中数据项的数目。

例 9.21 在范例中,为 Contents集合建立若干数据项,然后使用循环语句输出该集合的全部内容,使用 Count属性实现。文件名为 9-21.asp 。

Page 122: 9.3.1 ASP 概述 1.ASP 简介 ASP 是位于服务器端的脚本运行环境,通过这种环境,用户可以创建和运行动态的交互式 Web 服务器应用程序,如交互式的动态网页,上传与下载等等。

<html><body><% dim customer_info dim interesting(2)interesting(0)="足球 "interesting(1)="编程 "interesting(2)="阅读 "response.write "sessionID:" & session.sessionid_ & "<p>"session("爱好 ")=interestingsession("用户名称 ")="mickey"

Page 123: 9.3.1 ASP 概述 1.ASP 简介 ASP 是位于服务器端的脚本运行环境,通过这种环境,用户可以创建和运行动态的交互式 Web 服务器应用程序,如交互式的动态网页,上传与下载等等。

session(" 年龄 ")="22"session(" 证件号 ")="88567"response.write "session集合有下面 _ "&session.contents.count&" 项内容: <hr>"for each customer_info in session.contents if isarray(session.contents(customer_info)) then response.write “ 数组项目: _ "&customer_info&"<br>“ for each item in _ session.contents(customer_info) response.write "<li>"&item&"<br>" next

Page 124: 9.3.1 ASP 概述 1.ASP 简介 ASP 是位于服务器端的脚本运行环境,通过这种环境,用户可以创建和运行动态的交互式 Web 服务器应用程序,如交互式的动态网页,上传与下载等等。

response.write "</ol>" else response.write customer_info&":"&session.contents(customer_info)&"<br>“ end ifnext%></body> </html>

Page 125: 9.3.1 ASP 概述 1.ASP 简介 ASP 是位于服务器端的脚本运行环境,通过这种环境,用户可以创建和运行动态的交互式 Web 服务器应用程序,如交互式的动态网页,上传与下载等等。

运行结果如下图所示

Page 126: 9.3.1 ASP 概述 1.ASP 简介 ASP 是位于服务器端的脚本运行环境,通过这种环境,用户可以创建和运行动态的交互式 Web 服务器应用程序,如交互式的动态网页,上传与下载等等。

②Contents集合提供了两个方法 Remove 与 RemoveAll方法 ,其格式分别为: Session.contents.remove(Item/Index) 选择性地删除 Contents集合中的某个数据项 ; Session.contents.removeAll 将该集合的内容全部清除 ; Item与 Index 分别指所要删除的数据项的名称与索引编号。③Timeout属性 Timeout属性以分钟为单位为该应用程序的 Session对象指定超时时限。如果用户在该超时时限之内不刷新或请求网页,则该会话将终止。

Page 127: 9.3.1 ASP 概述 1.ASP 简介 ASP 是位于服务器端的脚本运行环境,通过这种环境,用户可以创建和运行动态的交互式 Web 服务器应用程序,如交互式的动态网页,上传与下载等等。

④SessionID 属性用户和 Session 是一一对应的,当一个 Session 开始的时候,服务器会自动为其分配一个 LONG类型的整数作为它的 SessionID 。在活动期间里,对于存取该网站的所有用户来说, SessionID都是惟一的。但是如果 Web 服务器重新激活,将重新分配 SessionID 。因此,在建立用户数据库时不能将 SessionlD 作为每个用户的标志。

⑤Abandon方法 Abandon方法就是用来手动结束一个 Session 并释放其占用的资源。

Page 128: 9.3.1 ASP 概述 1.ASP 简介 ASP 是位于服务器端的脚本运行环境,通过这种环境,用户可以创建和运行动态的交互式 Web 服务器应用程序,如交互式的动态网页,上传与下载等等。

(2) Session 事件 Session对象有两个时间事件分别是 Session_OnStart 和 Session_OnEnd ,它们分别在 Session 开始和 Session 结束的时候被触发。

Session_OnStart 和 Session_OnEnd 这两个事件的处理过程写在 Global.asa 文件中。

在编写 Global.asa 文件时,该文件中的脚本只能使用 Microsoft 规范的“ <Script>……</ script>”标记而不能使用“ < %……% >’’标记;不能使用 HTML 语言,不能在里面添加任何的输出语句,这是因为 Global.asa 在任何时候都不会进行内容输出。

在 Web 站点根目录或一些应用程序的虚拟目录中,存放 Global.asa 的文件

Page 129: 9.3.1 ASP 概述 1.ASP 简介 ASP 是位于服务器端的脚本运行环境,通过这种环境,用户可以创建和运行动态的交互式 Web 服务器应用程序,如交互式的动态网页,上传与下载等等。

例 9.22 本例将示范如何通过 session对象的两个事件来记录网页被浏览的过程。相关文件 global.asa 的内容如下:

<SCRIPT LANGUAGE=VBScript RUNAT=Server> Sub Session_OnStart Session("who")=Request.ServerVariables _ ("REMOTE_ADDR") Session("Host")=Request.ServerVariables _

("REMOTE_Host") Session("Server")=Request.ServerVariables _ ("SERVER_NAME") Session("StartTime")=NOW End Sub

Page 130: 9.3.1 ASP 概述 1.ASP 简介 ASP 是位于服务器端的脚本运行环境,通过这种环境,用户可以创建和运行动态的交互式 Web 服务器应用程序,如交互式的动态网页,上传与下载等等。

Sub Session_OnEnd Set fs=Server.CreateObject _ ("Scripting.FileSystemObject") Set ts=fs.CreateTextGile _ ("d:\zwf\zwf\asp\info.txt",True) Str="客户 " & Session("Who") Str=Str & "从 " & Session("StartTime") Str=Str & "到 " & Now & "浏览本网站 " ts.Write Str ts.Close Set fs=nothing End Sub </SCRIPT>

Page 131: 9.3.1 ASP 概述 1.ASP 简介 ASP 是位于服务器端的脚本运行环境,通过这种环境,用户可以创建和运行动态的交互式 Web 服务器应用程序,如交互式的动态网页,上传与下载等等。

9-22.asp 的内容如下:<html><body><%Session.Timeout=1 ‘1分钟Response.write "您的计算机 IP是: " & _ Session("Who") & "<BR>" Response.write "您的计算机名是: " & _ Session("Host") & "<BR>"Response.write "服务器的名字是: " & _ Session("Server") & "<BR>"Response.write "现在的时间是: " & _ Session("StartTime") & "<BR>"

Page 132: 9.3.1 ASP 概述 1.ASP 简介 ASP 是位于服务器端的脚本运行环境,通过这种环境,用户可以创建和运行动态的交互式 Web 服务器应用程序,如交互式的动态网页,上传与下载等等。

%></body></html>本例的运行结果如下图所示。

Page 133: 9.3.1 ASP 概述 1.ASP 简介 ASP 是位于服务器端的脚本运行环境,通过这种环境,用户可以创建和运行动态的交互式 Web 服务器应用程序,如交互式的动态网页,上传与下载等等。

Session 对象会话可以通过以下三种方式启动 : ① 一个新用户请求访问一个 URL ,该 URL 标识了某个应用程序中的 .asp 文件,并且该应用程序的 Global.asa 文件包含 Session_OnStart 过程。

②用户在 Session 对象中存储了一个值。 ③ 用户请求了一个应用程序的 .asp 文件,并且该应用程序的 Global.asa 文件使用 < OBJECT> 标签创建带有会话作用域的对象的实例。

如果用户在指定时间内没有请求或刷新应用程序中的任何页,会话将自动结束。这段时间的默认值是 20 分钟。

通过在 IIS 服务管理器中设置“应用程序选项”属性页中的“会话超时”属性改变默认超时限制设置。

Page 134: 9.3.1 ASP 概述 1.ASP 简介 ASP 是位于服务器端的脚本运行环境,通过这种环境,用户可以创建和运行动态的交互式 Web 服务器应用程序,如交互式的动态网页,上传与下载等等。

5. Server对象 Server对象提供对服务器上的方法和属性的访问,其中大多数方法和属性是为实用程序的功能服务的。

语法: Server.Property|method (1)属性 ScriptTimeout 是超时值,在脚本运行超过这一时间之后即作超时处理。如下代码指定服务器处理脚本在 100秒后超时:

< % Server. ScriptTimeout=100% >。

Page 135: 9.3.1 ASP 概述 1.ASP 简介 ASP 是位于服务器端的脚本运行环境,通过这种环境,用户可以创建和运行动态的交互式 Web 服务器应用程序,如交互式的动态网页,上传与下载等等。

( 2) MapPath 方法 MapPath 方法将指定的相对或虚拟路径映射到服务器上相应的物理目录上。语法如下: Server.MapPath(Path) 。

Path 指定要映射物理目录的相对或虚拟路径。若Path以一个正斜杠 (/) 或反斜杠 ( \ ) 开始,则MapPath 方法返回路径时将 Path视为完整的虚拟路径。若 Path不是以斜杠开始,则 MapPath 方法返回同 .asp 文件中已有的路径相对的路径。

Page 136: 9.3.1 ASP 概述 1.ASP 简介 ASP 是位于服务器端的脚本运行环境,通过这种环境,用户可以创建和运行动态的交互式 Web 服务器应用程序,如交互式的动态网页,上传与下载等等。

例如<%= server.mappath("data.txt")%><BR> <%= server.mappath("script/data.txt")%><BR> 输出结果为: c:\inetpub\wwwroot\data.txt<BR> c:\inetpub\wwwroot\script\data.txt<BR>

Page 137: 9.3.1 ASP 概述 1.ASP 简介 ASP 是位于服务器端的脚本运行环境,通过这种环境,用户可以创建和运行动态的交互式 Web 服务器应用程序,如交互式的动态网页,上传与下载等等。

( 3) CreateObject方法 Server.CreateObject 用于创建已经注册到服务器上的 ActiveX 组件实例。

其语法如下: Server.CreateObject("Component Name")

如下例程 :    Set Conn=Server.CreateObject("ADODB.Connection")Conn.Open "connection string" %>

Page 138: 9.3.1 ASP 概述 1.ASP 简介 ASP 是位于服务器端的脚本运行环境,通过这种环境,用户可以创建和运行动态的交互式 Web 服务器应用程序,如交互式的动态网页,上传与下载等等。

6. Global.asa 文件的使用 Application 和 Session对象的两个事件 OnStart和 OnEnd 的脚本都必须写在 Global.asa 文件中。

Global.asa 文件其实是一个可选文件,程序编写者可以在该文件中指定事件脚本,并声明具有会话和应用程序作用域的对象。该文件的内容是用来存储事件信息和由应用程序全局使用的对象。该文件的名称必须是 Global.asa且必须存放在应用程序的根目录中。每个应用程序只能有一个 Global.asa 文件。

Page 139: 9.3.1 ASP 概述 1.ASP 简介 ASP 是位于服务器端的脚本运行环境,通过这种环境,用户可以创建和运行动态的交互式 Web 服务器应用程序,如交互式的动态网页,上传与下载等等。

我们可以用任何支持脚本的语言编写 Global.asa 文件中包含的脚本。在 Global.asa 文件中声明的过程只能从一个或多个与 Application_OnStart 、 Application_OnEnd 、 Session_OnStan 和 Session_

OnEnd 事件相关的脚本中调用。 Global.asa 文件的结构如下: <SCRIPT LANGUAGE=" JavaScript'’RUNAT="SERVER"> function Application OnStart() { } function Session_OnStart() { }

Page 140: 9.3.1 ASP 概述 1.ASP 简介 ASP 是位于服务器端的脚本运行环境,通过这种环境,用户可以创建和运行动态的交互式 Web 服务器应用程序,如交互式的动态网页,上传与下载等等。

function Session_OnEnd() { } </SCRIPT>

Page 141: 9.3.1 ASP 概述 1.ASP 简介 ASP 是位于服务器端的脚本运行环境,通过这种环境,用户可以创建和运行动态的交互式 Web 服务器应用程序,如交互式的动态网页,上传与下载等等。

下面是一个标准的 Global.asa 文样: <SCRIPT LANGUAGE="VBScript" RUNAT="server">'Session_OnStart当客户首次运行 ASP 应用程序中的任何一个页面时运行'Session_OnEnd当一个客户的会话超时或退出应用程序时运行'Application_OnStart当任何客户首次访问该应用程序的首页时运行'Application_OnEnd当该站点的 Web 服务器关闭时运行</SCRIPT><SCRIPT LANGUAGE="VBScript" RUNAT="Server">Sub Application_OnStart

Page 142: 9.3.1 ASP 概述 1.ASP 简介 ASP 是位于服务器端的脚本运行环境,通过这种环境,用户可以创建和运行动态的交互式 Web 服务器应用程序,如交互式的动态网页,上传与下载等等。

VisitorCountFilename=Server.MapPath("/ex2")+"\VisitCount.txt" Set FileObject=Server.CreateObject("Scripting.FileSystemObject") Set Out=FileObject.OpenTextFile(VisitorCountFilename,1,FALSE,FALSE)Application("visitors")=Out.ReadLineApplication("VisitorCountFilename")=VisitorCountFilenameEnd Sub‘=============================================

Page 143: 9.3.1 ASP 概述 1.ASP 简介 ASP 是位于服务器端的脚本运行环境,通过这种环境,用户可以创建和运行动态的交互式 Web 服务器应用程序,如交互式的动态网页,上传与下载等等。

SUB Application_OnEndSet FileOutObject=Server.CreateObject("Scripting.FileSystemObject") Set Out=FileOutObject.CreateTextFile(Application("VisitorCountFilename"),TRUE,FALSE)Out.WriteLine(application("visitors"))End Sub'===========================================

Page 144: 9.3.1 ASP 概述 1.ASP 简介 ASP 是位于服务器端的脚本运行环境,通过这种环境,用户可以创建和运行动态的交互式 Web 服务器应用程序,如交互式的动态网页,上传与下载等等。

Sub Session_OnStart Session.Timeout=5 Application("visitors")_ =Application("visitors")+1 Session("ID")=Session.SessionID End Sub </SCRIPT> 这是一个 ASP 页面访问记数器应用程序的 Global文件,首先当客户首次访问该应用程序的首页时,事件 Application_ OnStart 定义了在服务器上指定的虚拟目录下新建一个 VisitCount.txt 的文本文件,并将文件的路径和内容保存在应用程序级的变量中。

Page 145: 9.3.1 ASP 概述 1.ASP 简介 ASP 是位于服务器端的脚本运行环境,通过这种环境,用户可以创建和运行动态的交互式 Web 服务器应用程序,如交互式的动态网页,上传与下载等等。

而当任何一个客户访问 ASP 应用程序中的任何一个页面时,事件 Session _OnStart 定义将应用程序级的变量 visitors 的值自动加 1。这样,每当有客户访问页面时,变量 visitors都将自动加 1,以起到统计点击率的作用。由于变量 visitors 的值是存储在系统内存之中,所以如果服务器关闭或重新启动,存储在变量中的数据将自动丢失,所以通过定义事件 Application_ OnEnd ,在服务器关闭或重启之前将数据写入事先建立的文本文件之中,这样 就能确保当服务器再次启动时, Application_OnStart 过程可以从 VisitCount.txt 文件中读取以前的统计数。

Page 146: 9.3.1 ASP 概述 1.ASP 简介 ASP 是位于服务器端的脚本运行环境,通过这种环境,用户可以创建和运行动态的交互式 Web 服务器应用程序,如交互式的动态网页,上传与下载等等。

9.3.4 ASP内置组件—— ActiveX 组件 ActiveX 组件是一个存在于 WEB 服务器上的文件,该文件包含执行某项或一组任务的代码,组件可以执行公用任务。

当用户用 ASP 编写服务器端应用程序时,可以利用 Activex组件作为脚本和基于 Web 应用程序的基本构造块,来增强 Web 应用程序的功能。只要知道如何访问组件提供的对象,可以在不了解组件运作方式的情况下编写 ASP 程序。而不必自己去创建执行这些任务的代码。

Page 147: 9.3.1 ASP 概述 1.ASP 简介 ASP 是位于服务器端的脚本运行环境,通过这种环境,用户可以创建和运行动态的交互式 Web 服务器应用程序,如交互式的动态网页,上传与下载等等。

当在 WEB 服务器上安装完 ASP 环境后,就可以直接使用它自带的几个常用组件,如 Database Access 组件。也可以从第三方开发者处获得可选的组件 , 也可以编写自己的组件。

Activex组件是包含在动态链接库 (.dll) 或可执行文件 (.exe) 中的可执行代码。组件可以提供一个或多个对象以及对象的方法和属性。

表 9.2列出了 ASP 可安装的常用组件。

Page 148: 9.3.1 ASP 概述 1.ASP 简介 ASP 是位于服务器端的脚本运行环境,通过这种环境,用户可以创建和运行动态的交互式 Web 服务器应用程序,如交互式的动态网页,上传与下载等等。

表 9.2 常用组件的名称及功能

组件名称 功能描述Ad Rotator 创建一个 Ad Rotator对象,该对象可按

指定计划在同一页上自动轮换显示广告Browser Capabilities

创建一个 BrowserType对象,该对象决定访问 Web 站点的每个浏览器的性能、类型及版本

Database Access

提供用 ActiveX Data 0bjects(ADO)对数据库的访问

Content Linking

创建一个 NextLink 对象,该对象可生成Web 页内容列表,并像书一样将各页顺续连接

Page 149: 9.3.1 ASP 概述 1.ASP 简介 ASP 是位于服务器端的脚本运行环境,通过这种环境,用户可以创建和运行动态的交互式 Web 服务器应用程序,如交互式的动态网页,上传与下载等等。

File Access 组件 提供文件的输入输出访问Collaboration Data 0bjects for NTS 组件

可以快速、简便地在 Web 页上添加收发邮件功能。该组件只适用于 IIS for Windows NT Server

MyInfo 创建一个 MyInfo对象,该对象追踪个人信息,例如站点管理员的姓名、地址及显示选择

Counters 创建一个 Counters对象,该对象可以创建、保存、增加或检索任意数量的独立计数器

Content Rotator 自动翻转 Web主页上的 HTML内容字符串

Page Counter 记录并显示 Web 页被打开的次数

Page 150: 9.3.1 ASP 概述 1.ASP 简介 ASP 是位于服务器端的脚本运行环境,通过这种环境,用户可以创建和运行动态的交互式 Web 服务器应用程序,如交互式的动态网页,上传与下载等等。

9.3.5 ASP实现对数据库的访问1.Web 站点使用的数据库 Microsoft Access 是一个桌面数据库,一般来说,Microsoft Access 数据库不能支持 30个以上同时访问的用户。

Microsoft iSQL Server 可以支持成千上万同时访问的用户及以太字节 (GB) 计算大小的数据库。当今 Internet 上的一些特大型商用 Web 站点使用的都是 Microsoft SQL Server 。

微软提供了一个 Upsizing Tools工具,可以利用它将 Microsoft Access 数据库转换为 Microsoft SQL Server 数据库。

Page 151: 9.3.1 ASP 概述 1.ASP 简介 ASP 是位于服务器端的脚本运行环境,通过这种环境,用户可以创建和运行动态的交互式 Web 服务器应用程序,如交互式的动态网页,上传与下载等等。

2.2. ASP 访问数据库的步骤 ASPASP 访问数据库的步骤如下: 访问数据库的步骤如下: (1)(1) 第一步第一步 : : 指定想要连接的数据库,有 指定想要连接的数据库,有 DSNDSN 方法。方法。 DSN(Data Source Name DSN(Data Source Name 数据源名称 数据源名称 ))

在指定了想要连接的数据库后,就可以通过以下在指定了想要连接的数据库后,就可以通过以下方法连接并打开数据库 方法连接并打开数据库 : :

<% Set Conn =_<% Set Conn =_ Server.CreateObject("ADODB.ConnectioServer.CreateObject("ADODB.Connection") n")

’ ’ 创建创建 ConnectionConnection 对象对象 Conn.Open connstr Conn.Open connstr ’ ’ 使用使用 ConnectionConnection 对象的对象的 OpenOpen 方法打开数方法打开数据据

%>%>

Page 152: 9.3.1 ASP 概述 1.ASP 简介 ASP 是位于服务器端的脚本运行环境,通过这种环境,用户可以创建和运行动态的交互式 Web 服务器应用程序,如交互式的动态网页,上传与下载等等。

(2)(2) 第二步 第二步 : : 指定想要执行的 指定想要执行的 SQL SQL 指令,可以指令,可以使用 使用 RecordSetRecordSet 。 。

当连接了数据库后就可以通过 当连接了数据库后就可以通过 SQL SQL 指令对数据指令对数据库进行操作,比如查询、删除、更新等等。下例库进行操作,比如查询、删除、更新等等。下例在数据库表 在数据库表 datebase datebase 中查询所有姓名中有中查询所有姓名中有““ A”A” 的记录 :的记录 : < %< %sql="select * from datebase where name likesql="select * from datebase where name like '%A%'" '%A%'"

Set rs = Conn.Execute(sql)Set rs = Conn.Execute(sql) Conn.closeConn.close%>%>

Page 153: 9.3.1 ASP 概述 1.ASP 简介 ASP 是位于服务器端的脚本运行环境,通过这种环境,用户可以创建和运行动态的交互式 Web 服务器应用程序,如交互式的动态网页,上传与下载等等。

如下例在数据库表 如下例在数据库表 datebase datebase 中插入一条记录:中插入一条记录:<%<% strSQL = "INSERT INTO Customers (FirstName,strSQL = "INSERT INTO Customers (FirstName, LastName) VALUES ('Jose','Lugo')" LastName) VALUES ('Jose','Lugo')" Conn.Execute(strSQL)Conn.Execute(strSQL)%>%>

Page 154: 9.3.1 ASP 概述 1.ASP 简介 ASP 是位于服务器端的脚本运行环境,通过这种环境,用户可以创建和运行动态的交互式 Web 服务器应用程序,如交互式的动态网页,上传与下载等等。

如下例在数据库表 datebase 中更新记录:<%<%Conn.Execute "UPDATE Customers SET FirstName Conn.Execute "UPDATE Customers SET FirstName = 'Jeff' WHERE LastName = 'Smith' "= 'Jeff' WHERE LastName = 'Smith' "%>%>如下例在数据库表 如下例在数据库表 datebase datebase 中删除记录:中删除记录:<%<% Conn.Execute "DELETE FROM Customers WHERE Conn.Execute "DELETE FROM Customers WHERE LastName = 'Smith'"LastName = 'Smith'"%>%>

Page 155: 9.3.1 ASP 概述 1.ASP 简介 ASP 是位于服务器端的脚本运行环境,通过这种环境,用户可以创建和运行动态的交互式 Web 服务器应用程序,如交互式的动态网页,上传与下载等等。

Recordset Recordset 对象保持查询返回的记录的位置,允对象保持查询返回的记录的位置,允许一次一项逐步扫描结果。根据 许一次一项逐步扫描结果。根据 Recordset Recordset 对对象的指针类型属性设置,可以滚动和更新记录。象的指针类型属性设置,可以滚动和更新记录。Recordset Recordset 的使用方法如下 的使用方法如下 : : Set rs =_Set rs =_ Server.CreateObject("ADODB.Recordset") Server.CreateObject("ADODB.Recordset") ’ ’ 创建创建 RecordsetRecordset 对象对象 rs.Open rs.Open (( SQL SQL 指令指令 , Conn, , Conn, 打开方式打开方式 ,, 锁锁定类型)定类型)

’ ’ 利用利用 RecordsetRecordset 对象对象 open open 方法打开数据方法打开数据库 库 

Page 156: 9.3.1 ASP 概述 1.ASP 简介 ASP 是位于服务器端的脚本运行环境,通过这种环境,用户可以创建和运行动态的交互式 Web 服务器应用程序,如交互式的动态网页,上传与下载等等。

(3)3) 第三步 第三步 : : 使用 使用 RecordSet RecordSet 属性和方法,并显属性和方法,并显示执行的结果。 示执行的结果。

RecordSetRecordSet 对象的一些属性和方法:对象的一些属性和方法: rs.Fields.Countrs.Fields.Count : : RecordSet RecordSet 对象的字段总数。对象的字段总数。

rs(i).Name:rs(i).Name: 第 第 i i 个字段的名称,个字段的名称, i i 由 由 0 0 算起算起

到到 rs.Fields.Count-1rs.Fields.Count-1 。 。 rs(i)rs(i) :读取第 :读取第 i i 个字段的数据, 个字段的数据, i i 由 由 0 0 算算

起到 起到 rs.Fields.Count-1rs.Fields.Count-1 。 。

Page 157: 9.3.1 ASP 概述 1.ASP 简介 ASP 是位于服务器端的脚本运行环境,通过这种环境,用户可以创建和运行动态的交互式 Web 服务器应用程序,如交互式的动态网页,上传与下载等等。

rs(" rs(" 字段名称 字段名称 ")"): 读取指定字段的数据。 : 读取指定字段的数据。 rs.RecordCountrs.RecordCount : 游标中的数据记录总数。 : 游标中的数据记录总数。 rs.EOFrs.EOF : 是否已指到最后一条记录。 : 是否已指到最后一条记录。 rs.MoveNextrs.MoveNext: 将指标移到下一笔记录: 将指标移到下一笔记录rs.MovePrevrs.MovePrev : 将指标移到上一笔记录。 : 将指标移到上一笔记录。 rs.MoveFirstrs.MoveFirst : 将指标移到第一笔记录。 : 将指标移到第一笔记录。 rs.MoveLastrs.MoveLast : 将指标移到最后一笔记录。 : 将指标移到最后一笔记录。 rs.Closers.Close : 关闭 : 关闭 RecordSet RecordSet 对象对象

Page 158: 9.3.1 ASP 概述 1.ASP 简介 ASP 是位于服务器端的脚本运行环境,通过这种环境,用户可以创建和运行动态的交互式 Web 服务器应用程序,如交互式的动态网页,上传与下载等等。

3.3. ASP 访问数据库的实例(1)连接数据库例 24 :与数据库建立连接,文件名为 9-24.asp 。 <%@LANGUAGE=VBScript%> <% Option Explicit Dim Cnn, StrCnn '创建 Connection 对象Set Cnn =Server.CreateObject("ADODB.Connection")StrCnn ="Driver={Microsoft Access Driver_ (*.mdb)};DBQ=" & Server.MapPath("sqlk.mdb")

Page 159: 9.3.1 ASP 概述 1.ASP 简介 ASP 是位于服务器端的脚本运行环境,通过这种环境,用户可以创建和运行动态的交互式 Web 服务器应用程序,如交互式的动态网页,上传与下载等等。

'使用 Connection 对象的 Open 方法打开数据库sql.mdb, 该数据库用户自己建立Cnn.Open StrCnnResponse.Write Server.MapPath(“sqlk.mdb") & "<br>"Response.Write "数据库连接成功 : " & Cnn.State & "<br>"'使用 Connection 对象的 Close 方法关闭连接Cnn.closeResponse.Write "数据库已经关闭 : " & Cnn.State'将 Connection 对象从内存中删除,以释放资源Set Cnn = Nothing%>

Page 160: 9.3.1 ASP 概述 1.ASP 简介 ASP 是位于服务器端的脚本运行环境,通过这种环境,用户可以创建和运行动态的交互式 Web 服务器应用程序,如交互式的动态网页,上传与下载等等。

运行结果如下图所示

Page 161: 9.3.1 ASP 概述 1.ASP 简介 ASP 是位于服务器端的脚本运行环境,通过这种环境,用户可以创建和运行动态的交互式 Web 服务器应用程序,如交互式的动态网页,上传与下载等等。

例 9.25 通过 Open方法和 ConnectionString 属性来建立与数据库的连接。文件名为 9-25.asp 。<html><body><%' 用 Connection对象的 Open方法方式建立与数据库的连接set conn1=Server.CreateObject("ADODB.Connection")conn1.Open "DSN=SQLK" Response.Write "数据库连接成功 : " & Conn1.State & "<br>"'使用 Connection 对象的 Close 方法关闭连接Conn1.close

Page 162: 9.3.1 ASP 概述 1.ASP 简介 ASP 是位于服务器端的脚本运行环境,通过这种环境,用户可以创建和运行动态的交互式 Web 服务器应用程序,如交互式的动态网页,上传与下载等等。

Response.Write "数据库已经关闭 : " & Conn1.State & "<br>"'将 Connection 对象从内存中删除,以释放资源set conn1=nothing' 通过设定 Connection 对象的 ConnectionString 属性来建立与数据库的连接Set conn2=Server.CreateObject("ADODB.Connection")ConnectionString ="DSN=SQLK" conn2.open ConnectionStringResponse.Write "数据库连接成功 : " & Conn2.State & "<br>"Conn2.close

Page 163: 9.3.1 ASP 概述 1.ASP 简介 ASP 是位于服务器端的脚本运行环境,通过这种环境,用户可以创建和运行动态的交互式 Web 服务器应用程序,如交互式的动态网页,上传与下载等等。

Response.Write "数据库已经关闭 : " & Conn2.StateSet conn2=nothing%></body></html>9-25.asp 的运行结果如图:

Page 164: 9.3.1 ASP 概述 1.ASP 简介 ASP 是位于服务器端的脚本运行环境,通过这种环境,用户可以创建和运行动态的交互式 Web 服务器应用程序,如交互式的动态网页,上传与下载等等。

在使用这两种方法建立与数据库的连接之前要首先建立 ODBC 数据源,例子中的“ SQLK”就是 ODBC 数据源的名字。

用 SQL Server 建立的数据库的驱动程序名为“ SQL Server” , Access 建立的数据库驱动程序名为“ Microsoft Access Driver(*.mdb)” 。

例子中的 Set connl=nothing是关闭数据库连接,也可以用 connl.Close 来执行同样的操作。

Page 165: 9.3.1 ASP 概述 1.ASP 简介 ASP 是位于服务器端的脚本运行环境,通过这种环境,用户可以创建和运行动态的交互式 Web 服务器应用程序,如交互式的动态网页,上传与下载等等。

例 9.26 使用 Connection对象的 Execute方法在网页中执行 SQL命令,查询 SQLK 数据库“学生情况表”中的所有信息。

<% Set conn=Server.CreateObject("ADODB.Connection") Set rs=Server.CreateObject("ADODB.recordset") conn.open “DSN=SQLK" Set rs=conn.execute("Select * from 学生情况表 s“

Response.Write "<table border=3>" Response.Write "<tr>“ For i=0 to rs.Fields.Count-1 Response.Write "<td>"&Ucase(rs(i).Name)&"</td>" Next

Page 166: 9.3.1 ASP 概述 1.ASP 简介 ASP 是位于服务器端的脚本运行环境,通过这种环境,用户可以创建和运行动态的交互式 Web 服务器应用程序,如交互式的动态网页,上传与下载等等。

Response.Write "</tr>" do While NOT rs.EOFResponse.Write "<tr>" For i=0 to rs.Fields.Count-1 Response.Write "<td>"&rs(i).Value&"</td>" Nextrs.MoveNextResponse.Write "</tr>"LoopResponse.Write "</table>" Set conn=nothing%>

Page 167: 9.3.1 ASP 概述 1.ASP 简介 ASP 是位于服务器端的脚本运行环境,通过这种环境,用户可以创建和运行动态的交互式 Web 服务器应用程序,如交互式的动态网页,上传与下载等等。

运行结果如下图所示

Page 168: 9.3.1 ASP 概述 1.ASP 简介 ASP 是位于服务器端的脚本运行环境,通过这种环境,用户可以创建和运行动态的交互式 Web 服务器应用程序,如交互式的动态网页,上传与下载等等。

(2) 记录集 Recordset对象如果要对 SQL命令执行的结果进行操作,需要使用 Recordset对象的 Open方法。

Recordset对象的 open方法用来执行用户向数据库提出的请求,例如执行一个 SQL命令,启动一个指定的数据库表或是调动一个指定的存储过程。

例 9.27本例共有两个文件: 9-27.htm和 9-27.asp 。 9-27.htm用来产生向用户收集信息的表单,用户可以指定要查看“学生信息”或“学生成绩”。 9-27.asp 用来响应用户的请求。

Page 169: 9.3.1 ASP 概述 1.ASP 简介 ASP 是位于服务器端的脚本运行环境,通过这种环境,用户可以创建和运行动态的交互式 Web 服务器应用程序,如交互式的动态网页,上传与下载等等。

9-27.htm的内容如下: <html> <body> <form method=post action=9-27.asp> <p>查看学生信息请点击这里 <input type=submit name=button value="学生信息 ">

</p> <p>查看学生成绩请点击这里 <input type=submit name=button value="学生成绩 ">

</p> </form></body></html>

Page 170: 9.3.1 ASP 概述 1.ASP 简介 ASP 是位于服务器端的脚本运行环境,通过这种环境,用户可以创建和运行动态的交互式 Web 服务器应用程序,如交互式的动态网页,上传与下载等等。

9-27.asp 的内容如下:<%const adOpenStatic=3const adLockReadOnly=1'建立 Recordset对象 Set rs=Server.CreateObject("ADODB.Recordset")'提取表单域“ button”的值 button=Request.Form("button")'设定光标类型为静态CursorType=adOpenStatic'设定锁定类型为只读LockType=adLockReadOnly

Page 171: 9.3.1 ASP 概述 1.ASP 简介 ASP 是位于服务器端的脚本运行环境,通过这种环境,用户可以创建和运行动态的交互式 Web 服务器应用程序,如交互式的动态网页,上传与下载等等。

'如果用户选择“学生信息”则执行下面的代码If button="学生信息 " Then source=“select * from 学生情况表 s" activeConnection="dsn=sql" rs.open source,activeConnection,CursorType,LockTypeend if

Page 172: 9.3.1 ASP 概述 1.ASP 简介 ASP 是位于服务器端的脚本运行环境,通过这种环境,用户可以创建和运行动态的交互式 Web 服务器应用程序,如交互式的动态网页,上传与下载等等。

'如果用户选择“学生成绩”则执行下面的代码If button="学生成绩 " Then source=“select * from 学生课程成绩表 sc" ActiveConnection="dsn=sql" rs.Open source,ActiveConnection,CursorType,LockTypeEnd if

Page 173: 9.3.1 ASP 概述 1.ASP 简介 ASP 是位于服务器端的脚本运行环境,通过这种环境,用户可以创建和运行动态的交互式 Web 服务器应用程序,如交互式的动态网页,上传与下载等等。

‘查询结果以表格的形式输出Response.Write "<table border=3>"Response.Write "<tr>" For i=0 to rs.Fields.Count-1 Response.Write"<td>"&Ucase(rs(i).Name)&"</td>" NextResponse.Write "</tr>"

返回字符串(表中字段)的大写形式返回字符串(表中字段)的大写形式

Page 174: 9.3.1 ASP 概述 1.ASP 简介 ASP 是位于服务器端的脚本运行环境,通过这种环境,用户可以创建和运行动态的交互式 Web 服务器应用程序,如交互式的动态网页,上传与下载等等。

'输出表格内容While NOT rs.EOF Response.Write "<tr>" For i=0 to rs.Fields.Count-1 Response.Write "<td>"&rs(i).Value&"</td>" Next rs.MoveNextWendResponse.Write "</table>"'取消连接 Set rs=nothing%>

Page 175: 9.3.1 ASP 概述 1.ASP 简介 ASP 是位于服务器端的脚本运行环境,通过这种环境,用户可以创建和运行动态的交互式 Web 服务器应用程序,如交互式的动态网页,上传与下载等等。

运行结果如下图所示

Page 176: 9.3.1 ASP 概述 1.ASP 简介 ASP 是位于服务器端的脚本运行环境,通过这种环境,用户可以创建和运行动态的交互式 Web 服务器应用程序,如交互式的动态网页,上传与下载等等。

运行结果如下图所示

Page 177: 9.3.1 ASP 概述 1.ASP 简介 ASP 是位于服务器端的脚本运行环境,通过这种环境,用户可以创建和运行动态的交互式 Web 服务器应用程序,如交互式的动态网页,上传与下载等等。

例例 9.28 Recordset9.28 Recordset 访问数据库,文件名为访问数据库,文件名为 9-28.asp9-28.asp ,,数据库为数据库为 SQLK.mdbSQLK.mdb 。。<%Set conn=_ Server.CreateObject("ADODB.Connection") conn.Open _ "DBQ=" & Server.MapPath("SQLK.mdb") & "; _ Driver={Microsoft Access Driver (*.mdb)};_ DriverId=25;FIL=MS Access;" Set rs=Server.CreateObject("ADODB.Recordset") SqlStr="SELECT Avg(SG) As 平均 From _ 学生课程成绩表 SC"

Page 178: 9.3.1 ASP 概述 1.ASP 简介 ASP 是位于服务器端的脚本运行环境,通过这种环境,用户可以创建和运行动态的交互式 Web 服务器应用程序,如交互式的动态网页,上传与下载等等。

rs.Open SqlStr,conn,1,1 Response.Write "<BR>Avg: " & rs("平均 ") rs.Close SqlStr = "SELECT Count(SG) From _ 学生课程成绩表 SC " rs.Open SqlStr,conn,1,1 Response.Write "<BR>Count(SG): " & rs(0) rs.Close SqlStr = "SELECT Count(*) From _ 学生课程成绩表 SC " rs.Open SqlStr,conn,1,1 Response.Write "<BR>Count(*): " & rs(0) rs.Close

Page 179: 9.3.1 ASP 概述 1.ASP 简介 ASP 是位于服务器端的脚本运行环境,通过这种环境,用户可以创建和运行动态的交互式 Web 服务器应用程序,如交互式的动态网页,上传与下载等等。

SqlStr = "SELECT Sum(SG) From _ 学生课程成绩表 SC " rs.Open SqlStr,conn,1,1 Response.Write "<BR>Sum: " & rs(0) rs.Close SqlStr = "SELECT Min(SG) From _ 学生课程成绩表 SC " rs.Open SqlStr,conn,1,1 Response.Write "<BR>Min: " & rs(0) rs.Close

Page 180: 9.3.1 ASP 概述 1.ASP 简介 ASP 是位于服务器端的脚本运行环境,通过这种环境,用户可以创建和运行动态的交互式 Web 服务器应用程序,如交互式的动态网页,上传与下载等等。

SqlStr = "SELECT Max(SG) From _ 学生课程成绩表 SC " rs.Open SqlStr,conn,1,1 Response.Write "<BR>Max: " & rs(0) rs.Close SqlStr = "SELECT First(SG) From _ 学生课程成绩表 SC " rs.Open SqlStr,conn,1,1 Response.Write "<BR>First(SG): " & rs(0) rs.Close

Page 181: 9.3.1 ASP 概述 1.ASP 简介 ASP 是位于服务器端的脚本运行环境,通过这种环境,用户可以创建和运行动态的交互式 Web 服务器应用程序,如交互式的动态网页,上传与下载等等。

SqlStr = "SELECT Last(SG) From _ 学生课程成绩表 SC " rs.Open SqlStr,conn,1,1 Response.Write "<BR>Last(SG): " & rs(0) rs.Close SqlStr = "SELECT First(SN) From _ 学生情况表 S" rs.Open SqlStr,conn,1,1 Response.Write "<BR>First(SN): " & rs(0) rs.Close

Page 182: 9.3.1 ASP 概述 1.ASP 简介 ASP 是位于服务器端的脚本运行环境,通过这种环境,用户可以创建和运行动态的交互式 Web 服务器应用程序,如交互式的动态网页,上传与下载等等。

SqlStr = "SELECT Last(SN) From _ 学生情况表 S " rs.Open SqlStr,conn,1,1 Response.Write "<BR>Last(SN): " & rs(0) rs.Close SqlStr = "SELECT StDev(SG) From _ 学生课程成绩表 SC " rs.Open SqlStr,conn,1,1 Response.Write "<BR>StDev: " & rs(0) rs.Close conn.Close %> 计算指定字段的标准偏差 计算指定字段的标准偏差

Page 183: 9.3.1 ASP 概述 1.ASP 简介 ASP 是位于服务器端的脚本运行环境,通过这种环境,用户可以创建和运行动态的交互式 Web 服务器应用程序,如交互式的动态网页,上传与下载等等。

运行结果如下图所示:

Page 184: 9.3.1 ASP 概述 1.ASP 简介 ASP 是位于服务器端的脚本运行环境,通过这种环境,用户可以创建和运行动态的交互式 Web 服务器应用程序,如交互式的动态网页,上传与下载等等。

例 9.29 用户登录验证,文件名为用户登录验证,文件名为 9-29.htm9-29.htm 和和 9-29.9-29.aspasp 。。 使用的数据库为使用的数据库为 SQLK.mdbSQLK.mdb ,其中学生情况表:包,其中学生情况表:包含含 snsn 、、 snamesname 、、 sdsd 、、 sasa字段。字段。9-29.htm9-29.htm的内容如下:的内容如下:<html><html><body><body><form name="form1" meth<form name="form1" meth <p><p>用户名用户名<input name="userid" type="text"<input name="userid" type="text" id="userid">id="userid"></p></p>

Page 185: 9.3.1 ASP 概述 1.ASP 简介 ASP 是位于服务器端的脚本运行环境,通过这种环境,用户可以创建和运行动态的交互式 Web 服务器应用程序,如交互式的动态网页,上传与下载等等。

<p> <p> 口令 口令 <input name="psw" type="password" id="psw"><input name="psw" type="password" id="psw"></p></p><p><p><input type="submit" name="Submit" value="<input type="submit" name="Submit" value="提交提交 ">"><input type="reset" name="Submit2" value="<input type="reset" name="Submit2" value=" 重置重置 ">"></p></p></form></form></body></body></html></html>

Page 186: 9.3.1 ASP 概述 1.ASP 简介 ASP 是位于服务器端的脚本运行环境,通过这种环境,用户可以创建和运行动态的交互式 Web 服务器应用程序,如交互式的动态网页,上传与下载等等。

9-29.asp9-29.asp 的内容如下:的内容如下:<html><body><%username=trim(request.Form("userid"))password=trim(request.Form("psw"))dim connSet conn = _ Server.CreateObject("ADODB.Connection") conn.Open"DBQ="&Server.MapPath("SQLK.mdb")&";_ Driver={Microsoft Access Driver (*.mdb)};_ DriverId=25;FILe=MS Access;"

Page 187: 9.3.1 ASP 概述 1.ASP 简介 ASP 是位于服务器端的脚本运行环境,通过这种环境,用户可以创建和运行动态的交互式 Web 服务器应用程序,如交互式的动态网页,上传与下载等等。

Set TmpRs = _ Server.CreateObject("ADODB.Recordset") TmpRs.open "select * from 学生情况表 S Where_ userid='"&username&"';",conn,3,3%><% if tmprs.EOF then %><script language="vbscript"> MsgBox " 该用户不存在,请先注册 !!!!"location.href="javascript:history.back()"</script><%else if password<>tmprs("psw") then %>

Page 188: 9.3.1 ASP 概述 1.ASP 简介 ASP 是位于服务器端的脚本运行环境,通过这种环境,用户可以创建和运行动态的交互式 Web 服务器应用程序,如交互式的动态网页,上传与下载等等。

<script language="vbscript">MsgBox "口令错误 , 请重新输入密码 !!!!!"location.href="javascript:history.back()"</script><% elsesession("username")=usernametmprs("logins")=tmprs("logins")+1tmprs.updateresponse.Write tmprs("logins") tmprs.closeset tmprs=nothingconn.close

Page 189: 9.3.1 ASP 概述 1.ASP 简介 ASP 是位于服务器端的脚本运行环境,通过这种环境,用户可以创建和运行动态的交互式 Web 服务器应用程序,如交互式的动态网页,上传与下载等等。

set conn=nothingend ifend if%></body></html>运行结果如图所示

Page 190: 9.3.1 ASP 概述 1.ASP 简介 ASP 是位于服务器端的脚本运行环境,通过这种环境,用户可以创建和运行动态的交互式 Web 服务器应用程序,如交互式的动态网页,上传与下载等等。

(4) 数据库的添加及修改数据库的添加及修改例例 9.30 9.30 添加及修改数据库记录添加及修改数据库记录 ,, 文件名为文件名为 9-30.as9-30.aspp 和和 9-30.asp9-30.asp 。使用的数据库是。使用的数据库是 sqlk.mdb,sqlk.mdb,其中其中学生情况表学生情况表 ss (( sn,sname,sd,sasn,sname,sd,sa ))学生课程成绩表学生课程成绩表 sc(sn,cn,sg)sc(sn,cn,sg)<html><body><form name="form1" method="post" _ action="9-30.asp"> <p>学号 <input name="topic" type="text" id="学号 "> </p>

Page 191: 9.3.1 ASP 概述 1.ASP 简介 ASP 是位于服务器端的脚本运行环境,通过这种环境,用户可以创建和运行动态的交互式 Web 服务器应用程序,如交互式的动态网页,上传与下载等等。

<p><p>姓名 姓名 <input name="owner" type="text" id="<input name="owner" type="text" id="姓名姓名 ">"> </p></p> <p><p>申请理由申请理由 <textarea name="text" id="text"></textarea><textarea name="text" id="text"></textarea> </p></p> <p> <p> <input type="submit" name="Submit" value="<input type="submit" name="Submit" value=" 提提交交 ">"><input type="reset" name="Submit2" value="<input type="reset" name="Submit2" value=" 重重置置 ">"></p></p></form></form></body></body></html></html>

Page 192: 9.3.1 ASP 概述 1.ASP 简介 ASP 是位于服务器端的脚本运行环境,通过这种环境,用户可以创建和运行动态的交互式 Web 服务器应用程序,如交互式的动态网页,上传与下载等等。

9-30.asp 的内容:<% if request("topic")="" then %><script language="vbscript">MsgBox "学号不能为空! "</script><%elseif request("text")="" then %><script language="vbscript"> MsgBox "需填写申请理由! "</script><% elseowner=request("owner") set cn=server.CreateObject("ADODB.connection")

Page 193: 9.3.1 ASP 概述 1.ASP 简介 ASP 是位于服务器端的脚本运行环境,通过这种环境,用户可以创建和运行动态的交互式 Web 服务器应用程序,如交互式的动态网页,上传与下载等等。

DBPath=server.MapPath("sqlk.mdb") cn.open "driver={Microsoft Access Driver (*.mdb)};dbq="& DBPath set com_rs=server.CreateObject("ADODB.recordset") com_rs.open "Select * from 学生情况表 s;",_ cn,2,3com_rs.AddNewcom_rs("sn")=request("学号 ")com_rs("sd")=request("text")com_rs("sa")=len(trim(request("text")))com_rs("sname")=request("姓名 ")

Page 194: 9.3.1 ASP 概述 1.ASP 简介 ASP 是位于服务器端的脚本运行环境,通过这种环境,用户可以创建和运行动态的交互式 Web 服务器应用程序,如交互式的动态网页,上传与下载等等。

com_rs.updatecom_rs.closeresponse.Write "申请内容已存入数据库中 "set com_rs=nothingend if%>

Page 195: 9.3.1 ASP 概述 1.ASP 简介 ASP 是位于服务器端的脚本运行环境,通过这种环境,用户可以创建和运行动态的交互式 Web 服务器应用程序,如交互式的动态网页,上传与下载等等。

(5) ASP实现分页显示 ASP实现分页显示方法主要有两种: 第一种方法 : 将数据库中所有符合查询条件的记录一次性的都读入 recordset 中,存放在内存中,然后通过 ADO Recordset对象所提供的几个专门支持分页处理的属性: PageSize( 页大小 ) 、 PageCount( 页数目 ) 以及 AbsolutePage( 绝对页 )来管理分页处理。

第二种方法是根据客户的指示,每次分别从符合查询条件的记录中将规定数目的记录数读取出来并显示。

     

Page 196: 9.3.1 ASP 概述 1.ASP 简介 ASP 是位于服务器端的脚本运行环境,通过这种环境,用户可以创建和运行动态的交互式 Web 服务器应用程序,如交互式的动态网页,上传与下载等等。

很明显,当数据库中的记录数达到上万或更多时,第一种方法的执行效率将明显低于第二种方法,因为当每一个客户查询页面时都要将所有符合条件的记录存放在服务器内存中,然后在进行分页等处理,如果同时有超过 100 个的客户在线查询,那么 ASP 应用程序的执行效率将大受影响。

当服务器上数据库的记录数以及同时在线的人数并不是很多时,两者在执行效率上是相差无几的,此时一般就采用第一种方法,因为第一种方法的 ASP 程序编写相对第二种方法要简单明了得多。

Page 197: 9.3.1 ASP 概述 1.ASP 简介 ASP 是位于服务器端的脚本运行环境,通过这种环境,用户可以创建和运行动态的交互式 Web 服务器应用程序,如交互式的动态网页,上传与下载等等。

(6)Reordset 对象的属性和方法:    BOF 属性:游标指到 RecordSet 的第一项之前。 EOF 属性:游标指到 RecordSet 的最后一项之后。 Move方法:移动指标到 RecordSet 中的某一条记录。

AbsolutePage属性:设定当前记录的位置位于哪页 AbsolutePosition 属性:游标在 RecordSet 中的位置。

PageCount 属性:显示 Recordset 对象包括多少“页”的数据。

PageSize属性:显示 Recordset 对象每一页显示的记录数。

RecordCount 属性:显示 Recordset 对象记录总数。

Page 198: 9.3.1 ASP 概述 1.ASP 简介 ASP 是位于服务器端的脚本运行环境,通过这种环境,用户可以创建和运行动态的交互式 Web 服务器应用程序,如交互式的动态网页,上传与下载等等。

① BOF 与 EOF 属性 通常使用 BOF 与 EOF 属性,得知一个 Recordset 对象是否包含有记录或者得知移动记录行是否已经超出该 Recordset对象的范围。

如: < % if not rs.eof then ... %> < % if not (rs.bof and rs.eof) %> 若当前记录的位置是在一个 Recordset 对象第一行记录之前时, BOF 属性返回 true ,反之则返回 false 。

若当前记录的位置是在一个 Recordset 对象最后一行记录之后时, EOF 属性返回 true ,反之则返回 false 。

BOF 与 EOF 都为 False:表示指标位于 RecordSet 当中。

Page 199: 9.3.1 ASP 概述 1.ASP 简介 ASP 是位于服务器端的脚本运行环境,通过这种环境,用户可以创建和运行动态的交互式 Web 服务器应用程序,如交互式的动态网页,上传与下载等等。

② Move 方法 移动游标到 RecordSet 中的某一项记录,语法如下:    rs.Move NumRecords,Start 这里 rs表示一个想要移动当前记录位置的 Recordset对象;“ NumRecords” 是一个正负数运算式,设定当前记录位置的移动数目;“ start” 是一个可选的项目,用来指定记录起始的标签。

如果 NumRecords 参数大于零,当前记录位置向末尾的方向移动;如果其小于零,则当前记录位置向开头的方向移动。

Page 200: 9.3.1 ASP 概述 1.ASP 简介 ASP 是位于服务器端的脚本运行环境,通过这种环境,用户可以创建和运行动态的交互式 Web 服务器应用程序,如交互式的动态网页,上传与下载等等。

MoveFirst方法:将当前记录位置移至第一项记录。

MoveLast 方法 : 将当前记录位置移至最后一项记录。

MoveNext方法:将当前记录位置移至下一项记录。 MovePrevious 方法:将当前记录位置移至上一项记录。

Move[n]方法:移动指标到第 n项记录, n由 0 算起。。

Page 201: 9.3.1 ASP 概述 1.ASP 简介 ASP 是位于服务器端的脚本运行环境,通过这种环境,用户可以创建和运行动态的交互式 Web 服务器应用程序,如交互式的动态网页,上传与下载等等。

③ AbsolutePage 属性 AbsolutePage 属性设定当前记录的位置是位于哪一页的页数编号;使用 PageSize 属性将 Recordset 对象分割为逻辑上的页数,每一页的记录数为 PageSize( 除了最后一页可能会有少于 PageSize 的记录数 )。

与 AbsolutePosition 属性相同, AbsolutePage 属性是以 1 为起始的,若当前记录为 Recordset 的第一行记录, AbsolutePage 为 1 。

可以设定 AbsolutePage 属性,以移动到一个指定页的第一行记录位置。

Page 202: 9.3.1 ASP 概述 1.ASP 简介 ASP 是位于服务器端的脚本运行环境,通过这种环境,用户可以创建和运行动态的交互式 Web 服务器应用程序,如交互式的动态网页,上传与下载等等。

④AbsolutePosition 属性 确定目前游标在 RecordSet 中的位置 AbsolutePosition 属性的数值为目前游标相对于第一项的位置。第一项的 AbsolutePosition 为 1 。

在存取 RecordSet 时,无法保证 RecordSet 每次都以同样的顺序出现。

若要使用 AbsolutePosition ,必须先设定为使用用户端 cursor(游标 ):    rs2.CursorLocation = 3

Page 203: 9.3.1 ASP 概述 1.ASP 简介 ASP 是位于服务器端的脚本运行环境,通过这种环境,用户可以创建和运行动态的交互式 Web 服务器应用程序,如交互式的动态网页,上传与下载等等。

⑤PageCount 属性 PageCount 属性,决定 Recordset 对象包括多少“页”的数据。

这里的“页”是数据记录的集合,大小等于 PageSize 属性的设定,即使最后一页的记录数比 PageSize 的值少,最后一页也算是 PageCount 的一页。必须注意也并不是所有的数据提供者都支持此项属性。

Page 204: 9.3.1 ASP 概述 1.ASP 简介 ASP 是位于服务器端的脚本运行环境,通过这种环境,用户可以创建和运行动态的交互式 Web 服务器应用程序,如交互式的动态网页,上传与下载等等。

⑥PageSize 属性 决定多少记录组成一个逻辑上的“一页”。 PageSize 属性是决定 ADO 存取数据库时如何分页显示的关键,设定并建立一个页的大小,从而允许使用 AbsolutePage 属性移到其它逻辑页的第一条记录。能随时设定 PageSize属⑦RecordCount 属性 用 RecordCount 属性来找出一个 Recordset 对象包括多少条记录。如:

< % totle=RS.RecordCount %>

Page 205: 9.3.1 ASP 概述 1.ASP 简介 ASP 是位于服务器端的脚本运行环境,通过这种环境,用户可以创建和运行动态的交互式 Web 服务器应用程序,如交互式的动态网页,上传与下载等等。

运用上述 7 个属性分页显示的步骤如下:首先,我们可以为 PageSize 属性设置一个值,从而指定从记录组中取出的构成一个页的行数;

然后通过 RecordCount 属性来确定记录的总数;再用记录总数除以 PageSize 就可得到所显示的页面总数;

最后通过 AbsolutePage 属性就能完成对指定页的访问。

Page 206: 9.3.1 ASP 概述 1.ASP 简介 ASP 是位于服务器端的脚本运行环境,通过这种环境,用户可以创建和运行动态的交互式 Web 服务器应用程序,如交互式的动态网页,上传与下载等等。

例 9.31 一个简单的 BBS 应用程序,文件名为 bbs.asp 。 它的数据库 bbs.mdb 中的表“ meggase”分别有以下五个字段:“ID”,每个帖子的自动编号;“subject”,每个帖子的主题;“name”,加帖用户的姓名;“email”,用户的电子邮件地址;“postdate”,加帖的时间。数据库的 DSN 为“ bbs”。显示帖子分页的所有步骤放在一个名为“ ShowList()”的过程中,方便调用。程序如下:

Page 207: 9.3.1 ASP 概述 1.ASP 简介 ASP 是位于服务器端的脚本运行环境,通过这种环境,用户可以创建和运行动态的交互式 Web 服务器应用程序,如交互式的动态网页,上传与下载等等。

<html><head><title>bbs</title><body><% Sub ShowList() %><%' 设定开关,指定每一页显示的帖子数目,默认为 3PgSz=3 Set Conn =_ Server.CreateObject("ADODB.Connection")Set RS = Server.CreateObject("ADODB.RecordSet")sql = "SELECT * FROM message order by ID DESC"

Page 208: 9.3.1 ASP 概述 1.ASP 简介 ASP 是位于服务器端的脚本运行环境,通过这种环境,用户可以创建和运行动态的交互式 Web 服务器应用程序,如交互式的动态网页,上传与下载等等。

' 查询所有帖子,并按帖子的 ID倒序排列Conn.Open "bbs"RS.open sql,Conn,1,1If RS.RecordCount=0 thenresponse.write "<P><center> 对不起,数据库中没有相关信息! </center></P>"elseRS.PageSize = Cint(PgSz) ‘ 设定 PageSize属性的值' 计算可显示的页面的总数Total=INT(RS.recordcount / PgSz * -1)*-1PageNo=Request("pageno")

Page 209: 9.3.1 ASP 概述 1.ASP 简介 ASP 是位于服务器端的脚本运行环境,通过这种环境,用户可以创建和运行动态的交互式 Web 服务器应用程序,如交互式的动态网页,上传与下载等等。

if PageNo="" ThenPageNo = 1elsePageNo=PageNo+1PageNo=PageNo-1end ifScrollAction = Request("ScrollAction")if ScrollAction = "上一页 " ThenPageNo=PageNo-1end ifif ScrollAction = "下一页 " ThenPageNo=PageNo+1end if

Page 210: 9.3.1 ASP 概述 1.ASP 简介 ASP 是位于服务器端的脚本运行环境,通过这种环境,用户可以创建和运行动态的交互式 Web 服务器应用程序,如交互式的动态网页,上传与下载等等。

if PageNo < 1 Then PageNo = 1end ifn=1RS.AbsolutePage = PageNoResponse.Write "<CENTER>"position=RS.PageSize*PageNopagebegin=position-RS.PageSize+1if position < RS.RecordCount thenpagend=positionelse pagend= RS.RecordCountend if

Page 211: 9.3.1 ASP 概述 1.ASP 简介 ASP 是位于服务器端的脚本运行环境,通过这种环境,用户可以创建和运行动态的交互式 Web 服务器应用程序,如交互式的动态网页,上传与下载等等。

Response.Write "<P><font color='Navy'>_ <B>数据库查询结果: </B>"Response.Write "( 共有 ” & RS.RecordCount & "条符合条件的信息,显示 " & pagebegin&"-" & pagend&")</font></p>"Response.Write "<TABLE WIDTH=600 BORDER=1_ CELLPADDING=4 CELLSPACING=0_ BGCOLOR=#FFFFFF>"Response.Write "<TR BGCOLOR=#5FB5E2>_ <FONT SIZE=2><TD><B> 主题 </B></TD>_ <TD><B>用户 </B></TD>_ <TD><B>Email</B></TD>_ <TD><B>发布日期 </B></TD>_ </FONT><TR BGCOLOR=#FFFFFF>"

Page 212: 9.3.1 ASP 概述 1.ASP 简介 ASP 是位于服务器端的脚本运行环境,通过这种环境,用户可以创建和运行动态的交互式 Web 服务器应用程序,如交互式的动态网页,上传与下载等等。

Do while not (RS is nothing) RowCount = RS.PageSizeDo While Not RS.EOF and rowcount > 0 If n=1 thenResponse.Write "<TR BGCOLOR=#FFFFFF>"ELSEResponse.Write "<TR BGCOLOR=#EEEEEE>"End Ifn=1-n %>

Page 213: 9.3.1 ASP 概述 1.ASP 简介 ASP 是位于服务器端的脚本运行环境,通过这种环境,用户可以创建和运行动态的交互式 Web 服务器应用程序,如交互式的动态网页,上传与下载等等。

<TD><span style="font-size:9pt">_ <A href='view.asp?key=<% =RS("ID")%>'>_ <% =RS("subject")%></A></span></td> <TD><span style="font-size:9pt">_ <% =RS("name")%></A></span></td>_ <TD><span style="font-size:9pt">_ <a href="mailto:<% =RS("email")%>">_ <% =RS("email")%></a></span> </TD><TD><span style="font-size:9pt">_ <% =RS("postdate")%></span> </TD></TR>

Page 214: 9.3.1 ASP 概述 1.ASP 简介 ASP 是位于服务器端的脚本运行环境,通过这种环境,用户可以创建和运行动态的交互式 Web 服务器应用程序,如交互式的动态网页,上传与下载等等。

<%RowCount = RowCount - 1RS.MoveNextLoopset RS = RS.NextRecordSetLoopConn.Closeset rs = nothingset Conn = nothing%>

Page 215: 9.3.1 ASP 概述 1.ASP 简介 ASP 是位于服务器端的脚本运行环境,通过这种环境,用户可以创建和运行动态的交互式 Web 服务器应用程序,如交互式的动态网页,上传与下载等等。

</TABLE><FORM METHOD=GET ACTION="bbs.asp"><INPUT TYPE="HIDDEN" NAME="pageno“_ VALUE="<% =PageNo %>"><% if PageNo > 1 Then response.write "<INPUT TYPE=SUBMIT_ NAME='ScrollAction' VALUE='上一页 '>"end if if RowCount = 0 and PageNo <>Total then response.write "<INPUT TYPE=SUBMIT_ NAME='ScrollAction' VALUE='下一页 '>"end if

Page 216: 9.3.1 ASP 概述 1.ASP 简介 ASP 是位于服务器端的脚本运行环境,通过这种环境,用户可以创建和运行动态的交互式 Web 服务器应用程序,如交互式的动态网页,上传与下载等等。

response.write "</FORM>"End if%><% 'End Sub %></body></html>运行结果如图:

Page 217: 9.3.1 ASP 概述 1.ASP 简介 ASP 是位于服务器端的脚本运行环境,通过这种环境,用户可以创建和运行动态的交互式 Web 服务器应用程序,如交互式的动态网页,上传与下载等等。
Page 218: 9.3.1 ASP 概述 1.ASP 简介 ASP 是位于服务器端的脚本运行环境,通过这种环境,用户可以创建和运行动态的交互式 Web 服务器应用程序,如交互式的动态网页,上传与下载等等。

1 ) JSP 的运行环境和技术特点 执行 JSP时需要在 Web 服务器上架设一个编译 JS

P 网页的引擎。配置 JSP 环境可以有多种途径,但主要工作就是安装和配置 Web 服务器和 JSP引擎。下面以 Tomcat 作为 JSP引擎,配合 Tomcat 、Apache 、 IIS 这三种 Web 服务器来讲述 3种搭建JSP 运行环境的方案。

建立 JSP 运行环境需要的相关软件包括: Java2的软件开发工具 J2SDK; Apache 服务器;

Apache 组织开发的 JSP引擎 Tomcat 服务器,使Apache支持 Tomcat 的插件 mod_jk.dll;使 IIS支持 Tomcat 的插件 tc4ntiis.zip 。

9.4 JSP9.4 JSP 技术概述技术概述

9.1 JSP9.1 JSP 技术概述技术概述

Page 219: 9.3.1 ASP 概述 1.ASP 简介 ASP 是位于服务器端的脚本运行环境,通过这种环境,用户可以创建和运行动态的交互式 Web 服务器应用程序,如交互式的动态网页,上传与下载等等。

( 1)安装 J2SDK 在 Windows 下,直接运行下载的 j2sdk-1_4_1_0

1-windows-i586.exe 文件,根据安装向导安装到一个目录,例如安装到 f:\j2sdk 1.4.1;

( 2)添加环境变量 在 Win2000 环境下配置环境变量。右键单击“我

的电脑”,在弹出菜单中选择“属性”→“系统特性” →“高级” →“环境变量”, 弹出环境变量对话框,就可以编辑系统的环境变量了。添加 PATH 、 JAVA_HOME和 CLASSPATH 三个变量,变量值为:

9.1 9.1 网络编程概述网络编程概述

9.1 9.1 网络编程概述网络编程概述

Page 220: 9.3.1 ASP 概述 1.ASP 简介 ASP 是位于服务器端的脚本运行环境,通过这种环境,用户可以创建和运行动态的交互式 Web 服务器应用程序,如交互式的动态网页,上传与下载等等。

PATH= % PATH%;f:\j2sdk1.4.1\bin SET JAVA_HOME=f:\j2sdk1.4.1 SET CLASSPATH=f:\j2sdk1.4.1\lib\tools.jar 。( 3) JSP 环境的配置方案 JSP 环境的配置方案有多种,方案一, J2SDK+ Tomcat 。 在这种方案里 Tomcat既作为 JSP引擎又作为 We

b 服务器,配置比较简单。

9.1 9.1 网络编程概述网络编程概述

9.1 9.1 网络编程概述网络编程概述

Page 221: 9.3.1 ASP 概述 1.ASP 简介 ASP 是位于服务器端的脚本运行环境,通过这种环境,用户可以创建和运行动态的交互式 Web 服务器应用程序,如交互式的动态网页,上传与下载等等。

方案二, J2SDK+ Apache+ Tomcat 。 虽然 Tomcat也可以作 Web 服务器 ,但其处理静态 HTML 的速度比不上 Apache ,且其作为 Web 服务器的功能远不如 Apache ,因此把 Apache 和 Tomcat集成起来,用 Apache 充当 Web服务器,而 Tomcat 作为专用的 JSP引擎。这种方案的配置比较复杂,但是能让 Apache 和Tomcat 完美整合,实现强大的功能。

9.1 9.1 网络编程概述网络编程概述

9.1 9.1 网络编程概述网络编程概述

Page 222: 9.3.1 ASP 概述 1.ASP 简介 ASP 是位于服务器端的脚本运行环境,通过这种环境,用户可以创建和运行动态的交互式 Web 服务器应用程序,如交互式的动态网页,上传与下载等等。

方案三: J2SDK+ IIS+ Tomcat 。 Windows 平台下最常用的 Web 服务器无疑是

IIS ,正常情况下 IIS 不支持 JSP ,我们可以通过使用一个 IIS 到 Tomcat重定向插件,使 IIS 能够将所有的 JSP请求发送到 Tomcat 执行,可以使 IIS 增加处理 JSP 的功能。如果你已经习惯了使用 IIS ,那么可以尝试这种配置。配置所需的软件均可从网上下载。

9.1 9.1 网络编程概述网络编程概述

9.1 9.1 网络编程概述网络编程概述

Page 223: 9.3.1 ASP 概述 1.ASP 简介 ASP 是位于服务器端的脚本运行环境,通过这种环境,用户可以创建和运行动态的交互式 Web 服务器应用程序,如交互式的动态网页,上传与下载等等。

方案四 ·J2SDK+ Tomcat配置方案 安装 Tomcat 可直接运行下载的 jakarta-tomca

t-4.0.1.exe ,安装时它会自动寻找 J2SDK 的位置。例如安装到 f:\tomcat4 。 Tomcat 安装后,还要配置环境变量,添加一个新的环境变量 TOMCAT_HOME,变量值为 f:\tomcat4,添加方法同J2SDK 环境变量的配置方法。设置完毕后就可以运行 Tomcat 服务器了。

用 f:\tomcat4\bin\startup.exe 启动 Tomcat ,用 f:\tomcat4\bin\shutdown.exe 关闭 Tomcat 。

启动 Tomcat 后,打开浏览器,在地址栏中输 http://localhost:8080 ( Tomcat 默认端口为 8080 )。

9.1 9.1 网络编程概述网络编程概述

9.1 9.1 网络编程概述网络编程概述

Page 224: 9.3.1 ASP 概述 1.ASP 简介 ASP 是位于服务器端的脚本运行环境,通过这种环境,用户可以创建和运行动态的交互式 Web 服务器应用程序,如交互式的动态网页,上传与下载等等。

如果在浏览器中看到 Tomcat 的欢迎界面,表示 Tomcat工作正常。将编写的 *.jsp 放在 f:\Tomcat\webapps\examples\jsp目录下 , 在地址栏中输入http://localhost:8080/examples/jsp/*.jsp则可实现信息发布。

9.1 9.1 网络编程概述网络编程概述

9.1 9.1 网络编程概述网络编程概述

Page 225: 9.3.1 ASP 概述 1.ASP 简介 ASP 是位于服务器端的脚本运行环境,通过这种环境,用户可以创建和运行动态的交互式 Web 服务器应用程序,如交互式的动态网页,上传与下载等等。

在网页中使用 JavaScript 的方法 在网页中使用脚本的方法有三种: ( 1)使用 SCRIPT标记符插入脚本 方法是:把脚本标记符 <SCRIPT></ SCRIPT> 置于网页上的 HEAD 部分或 BODY部分,然后在其中加入脚本程序。

语法如下:<SCRIPT language=“JavaScript”,type="text/javascript"><!--在此编写 JavaScript 代码。//--></ SCRIPT>

Page 226: 9.3.1 ASP 概述 1.ASP 简介 ASP 是位于服务器端的脚本运行环境,通过这种环境,用户可以创建和运行动态的交互式 Web 服务器应用程序,如交互式的动态网页,上传与下载等等。

( 2 )直接添加脚本 ( 3 )链接脚本文件