ASP教程动态网页设计技术(ASP)
换行元素
语法为: 用于开辟一个新行。
注意:元素和元素的作用都是另起
一行,不同在于元素有空行,而元
素无空行。
水平线分隔符元素
语法为: 单独出现,无结束标记,无作用域。用于在页面中插入一条水平线。
属性有size、align、width。
字符修饰符元素
成对出现,对作用域中的文字起修饰作用,常用的有:b黑体(加粗)i斜体 u下划线
列表元素
和两种,均要成对出现,作用域内为列表内容,表示一个列表结构。其中,
在列表项目前加符号“•”,在列表项目前加上序号1,2...
动态网页设计技术(ASP)
换行元素
语法为:
用于开辟一个新行。
注意:
元素和
元素的作用都是另起
一行,不同在于
元素有空行,而
元
素无空行。
水平线分隔符元素
语法为:
单独出现,无结束标记,无作用域。用于在页面中插入一条水平线。
属性有size、align、width。
字符修饰符元素
成对出现,对作用域中的文字起修饰作用,常用的有:b黑体(加粗)i斜体 u下划线
列表元素
和两种,均要成对出现,作用域内为列表内容,表示一个列表结构。其中,
在列表项目前加符号“•”,在列表项目前加上序号1,2,……。一般结构为:
其中- 元素用来引出列表项目。
表格元素
语法为:
其中
元素用于创建表格,元素用于构成表格标题,为行元素,用于生成一行,为列元素,用于生成一列。创建表格时,按照行优先的顺序从第一行开始创建,在每一行中,从左到右创建各个列。元素中常用的属性有border、bordercolor、width、height、align。
插入图片元素
语法为: 该元素无结束标记,无控制内容,用于插入一副图片。该元素的属
性有src、align、alt。
超链接元素
语法为:文本或图像 该元素的属性有href、target。如果是图片形式的超
链接,则语法为:
滚动字幕或图片元素
语法:该元素属性有direction、behavior。
框架集元素
用于创建框架结构,可以相互嵌套。
注意:该元素不能嵌套在body元素中,只能嵌套在html元素中,原因是其功能与body元
素类似,均是对页面主窗口内容进行标注。
语法为:属性:cols(按列划分)、rows(按行划分)。
在框架集元素中要嵌套框架元素,用来定义子框架。其属性有name、src、noresize。
表单元素
用于生成表单,如填写注册信息等,最终该表单要被提交处理。
语法为: 中间为表单成员。属性有name、action、method。
一个表单通常含有如下成员:文本框、密码框、单选框、复选框、下拉列表框、文
本域框和按钮。
动态网页设计技术(ASP)
2.1 ASP文件的基本组成和约定
一个简单的ASP程序可以包括以下3个部分:
(普通的HTML文件,也就是普通的Web页面内容。
(服务器端Script程序代码:位于<% … %>内的程序代码。
(客户端的Script程序代码:位于内的程序代码。
说明:① ASP约定,所有的Script程序代码都必须放在<% … %>或
一般情况下,都使用方法一,而方法二很少使用。有时为了某种需要,可能也会将VBScript代码放在客户端执行,此时的语法如下:
3.2 VBScript的数据类型
在Visual Basic、C++等高级语言中,有整数、字符、浮点数等不同的数据类型,但在VBScript中,只有一种数据类型,称为Variant,也叫做变体类型。Variant是一种特殊的数据类型,根据不同的使用方式,它可以包含不同的数据类别信息。Variant变量中保存的数据类型称为变量的子类型。例如:Variant=2001 ‘数据类型为整型 Variant=“2001” ‘数据类型为字符串
从例子中可以看出,VBScript会根据赋值自动确定数据变量的数据子类型。VBScript也会根据代码的上下文自动转换数据的子类型。例如:Variant_1=“1”,这里Variant_1作为一个字符串变量来处理,而如果下面有Variant_2=Variant_1+2,这时VBScript就会自动将Variant_1转换成整数变量处理,然后参与运算。但有些时候,也会遇到一些数据类型不匹配造成的错误,这时,可以使用VBScript的转换函数来强制转换数据的子类型。
3.3 VBScript常量
常量就是拥有一定名字的数值,常量可以代表字符串、数字等常数,常量一经声明,其值将不能再更改。声明常量的意义就在于可以在程序的任何部分使用该常量来代表特定的数值从而方便程序的编写。在VBScript中,通常使用关键字Const来声明常量。例如:
Const PI=3.1415926 ‘数值型常数
Const A=“100” ‘字符串型常数
Const B=#2001-1-12# ‘日期型常数
常量的命名规则:
可以使用字母、数字和下划线等字符来命名。
第一个字符必须是英文字母。
长度不能超过255个字符。
3.4 VBScript变量
所谓变量,就是存储在内存中的用来包含信息的地址的名字。
在VBScript中,使用变量之前可以不预先声明它,赋值后自动声明该变量,以后即可被引用。尽管如此,我们在编程的时候还要养成先声明后使用的习惯。声明变量用Dim语句,例如:
Dim name ‘声明一个名为name的变量
Dim age,tel,name ‘用同一个Dim语句可以声明多个变量,中间用逗号隔开
在VBScript中,可以使用Option Explicit语句来强制要求所有的变量都要进行声明,该语句必须要放在所有的Script语句的首行。例如:
<%Option Explicit ‘假设此处为Script语句的首行
Dim a,b,c
a=1
b=2
c=a+b %>
基本上是一样,所不同的是要定义数组中的项目数。下面是一个简单的例子:
<%
Dim a(2)
a(0)=10
a(1)=20
a(2)=30
Sum=a(0)+a(1)+a(2)
%>
VBScript中的数组从0开始计数,所以、上面的定义的数组a(2)包含3项。下面声明一个3行9列的多维数组:
<%
Dim a(2,8)
a(1,2)=100 ‘赋值
%>
还可以声明一个变长数组,或称为动态数组,声明时可以不确定数组项目数,使用时再确定,例如:
<%
Dim a( ) ‘定义一个变长数组
Redim a(3) ‘使用是需要重定义数组
a(3)=“北京” ‘赋值
Redim a(5) ‘可以多次重定义数组
a(5)=“上海” ‘赋值
%>
3.6 VBScript运算符
VBScript继承了Visual Basic的所有类别的运算符,包括算术运算符、比较运算符、逻辑运算符和连接运算符。
算术运算符用于连接运算表达式;比较运算符用于比较数值或对象,其返回值为True或False,比较运算常用于条件表达式中;逻辑运算符用于连接条件表达式,表示各个条件之间的关系,其返回值也是True或False;连接运算符&用于连接两个字符串。例如:
<%
Sum=a+b+c*2 ‘算术运算符
StrWelcome=“欢迎”&user_name ‘连接
运算符,连接两个字符串
%>
各种运算符及其说明见书P19表3-2。
当一个表达式中包含有多个运算符时,要先计算算术运算符,其次连接运算符,再次比较运算符,最后计算逻辑运算符。即它们之间的优先顺序为:算术运算符>连接运算符>比较运算符>逻辑运算符。在同一类运算符中,应按从左到右的顺序进行计算。在实际应用时,我们可以充分利用括号“( )”来改变各种运算符之间的运算顺序。
3.7 VBScript函数
VBScript继承了Visual Basic中的一些函数,下面介绍其中常用的6个函数。
3.7.1 转换函数
在3.3节中介绍了Variant变量一般会将其代表的数据子类型自动转换成合适的数据类型。但有时候,自动转换也会造成一些数据类型不匹配的错误,这时,可以
使用VBScript的转换函数来强制转换数据的子类型,例如:
<%
Num1=1000
StrWelcome=“欢迎第”&Cstr(Num1)&
“个来访者”
%>
在这里,Cstr就将Num1由整数子类型
强制转换为字符串子类型。
各种转换函数及其功能见书P20表3-3。
3.8.2 输入输出函数
输入、输出函数只能在客户端运行,不能在服务器端运行,因为这两个函数是要在客户端弹出窗口的。这两个函数的作用是很大的,因为有些信息验证之类的事务如果放在客户端进行,就能既快又减轻了服务器的负荷。
(1)MsgBox:输出函数
该函数告诉用户一些信息。语法如下:
MsgBox(prompt[,button][,title])
其中:
prompt—显示在窗口中的文字
button—可选项,用以指定窗口的外观和按钮类型
title—可选项,显示在窗口标题中的 文字
(2)InputBox:输入函数
该函数用于显示一个输入窗口,要求用户输入数据。语法如下:
String=InputBox(prompt[,title][,default])
其中:
String—文本框中的内容,即用户输入的内容
prompt—显示在窗口中的文字
title—可选项,显示在窗口标题中的文字
default—可选项,用于指定窗口中文本输入框内的默认字符串
下面是利用InputBox和MsgBox函数编写的一个小程序。
清单3-1 3-1.asp 显示金庸小说中你最
喜欢的两个人物
输入、输出函数示例
3.8.3 字符串函数
在通常的ASP程序开发中,用的最多的还是字符串。比如在用户注册时输入的用
户名、密码等选项,还有在留言板中的留言标题、内容等信息,都是被作为字符串
处理的。这样就经常需要用到字符串函数来对字符串进行截头去尾、大小写替换等
操作。常用字符串函数及功能见书P23表3-4。
3.7.4 日期和时间函数
在VBScript中,可以使用日期和时间函数来得到各种格式的日期和时间,比如在留言板里经常要用到Date函数来记载留言日期。常用的日期和时间函数见书P23表3-5。
下面举例说明该函数的用法。
清单3-2 3-2.asp 输出日期和时间
<% Option Explicit %>
日期和时间函数示例
<%
Dim Output1,Output2,Output3
Output1=“日期:”&Date()
Output2=“时间:”&Time()
Output3=“日期与时间:”&Now()
%>
<%=Output1%>
<%=Output2%>
<%=Output3%>
3.7.5 数学函数
VBScript提供的常用数学函数见书P25
表3-6。
3.7.6 检验函数
在登录某些ASP网页时,需要用户先注册,填写诸如用户名、密码等选项,这些选项的内容会被作为字符串读入到ASP程序中。在多数情况下,为了预防某些人有意地胡乱填写或无意的遗漏了某些选项,程序会对用户填写的内容进行检查,如某些必填项是否填写了,输入项的格式是否正确等等,此时,就会用到检验函数。常用的检验函数见书P25表3-7。
下面的例子将判断是否是数字类型。
<%
varTemp=“ASP”
If IsNumeric(varTemp) Then
Response.Write“这是数字类型”
Else
Response.Write“这不是数字类型”
End If
%>
3.8 VBScript过程
为了使程序可重复利用和简洁明了,要经常使用过程。在VBScript中,过程有两种,一种是Sub子程序,一种是Function函数。与许多高级语言相同,两者的区别在于:Sub子程序只执行程序而不返回值,而Function函数可以将执行代码后的结果返回给请求程序。子程序名和函数名的命名规则和常量名的命名规则相同。
3.8.1 Sub子程序
Sub子程序的语法如下:
Sub 子程序名(参数1,参数2,…)
……
End Sub
或
Sub 子程序名()
……
End Sub
其中,“参数1,参数2,…”是指由调用过程传递的常数、变量或表达式。利用这些参数,可以传递数据。如果Sub过程无任何参数,则Sub语句必须使用空括号。
Sub过程的调用有两种方式:
(使用Call语句
Call 子程序名(参数1,参数2,…)
(不使用Call语句
子程序名 参数1,参数2,…
下面是一个关于Sub子程序的具体例子。
清单3-3 3-3.asp 显示欢迎用户信息
<% Option Explicit %>
Sub子程序示例
<%
Dim user_name
user_name=“萌萌”
Call Welcome(user_name)
Sub Welcome(name)
Dim StrWelcome
StrWelcome=name&“:你好,欢迎光临寒舍!”
Response.Write StrWelcome
End Sub
%>
3.8.2 Function函数
Function函数的语法如下:
Function 函数名(参数1,参数2,…)
……
End Function
或
Function 函数名()
……
End Function
与Sub过程类似,其中“参数1,参数2,…”是指由调用过程传递的常数、变量或表达式。如果Function过程无任何参数,则 Function语句必须使用空括号。与Sub过程不同的是,Function过程通过函数名返回一个值,这个值是在过程的语句中赋给函数名的,Function返回值的数据类型是Variant。 Function过程的调用方式只有一种,即通过直接引用函数名来实现函数的调用,而且函数名必须用在变量赋值语句的右端或表达式中。
下面是一个具体的例子。
清单3-4 3-4.asp 计算两个数的立方和
<% Option Explicit %>
Function函数用法示例
<%
Function CountSum(a,b)
CountSum=a^3+b^3
End Function
Dim Result
Result=CountSum(5,9)
Response.Write“5和9的立方和等于”&C-
str(Result)
%>
3.9 使用条件语句
在ASP的程序中,常常需要对用户输入的信息进行判断,如用户注册登录时,判断用户填写的信息是否齐全、密码是否正确等等,此时就需要用到条件语句。像许多高级语言一样,在VBScript中也提供了两种条件语句。
3.9.1 If…Then…Else语句
If…Then…Else语句用于判断条件是True或False,并且根据判断结果指定要运行的语句.有以下几种形式。
(If…Then…End If
If 条件语句 Then
执行语句
End If
若条件语句为True,则执行下面的执行语句,否则跳出该条件语句。
(If…Then…Else…End If
→单条件时
If 条件语句 Then
执行语句1
Else
执行语句2
End If
若条件语句为True,则执行执行语句1,否则执行执行语句2。
→多条件时
If 条件语句1 Then
执行语句1
Else If 条件语句2 Then
执行语句2
……
Else
执行语句n+1
End If
若条件语句1为True,则执行执行语句1,然后跳出If语句;若条件语句2为True,则执行执行语句2,然后跳出If语句;……;若条件都不符合,则执行执行语句n+1。
下面是一个具体的例子。
清单3-5 3-5.asp 根据分数给出相应的
信息
<% Option Explicit %>
条件语句用法示例
<%
Dim Grade
Grade=86
If Grade>=85 Then
Response.Write “太不可思议了,你太厉害了”
Else If Grade>=70 and Grade<85 Then
Response.Write “不错啊,继续努力吧”
Else If Grade>=60 and Grade<70 Then
Response.Write “革命尚未成功,同
志还需努力”
Else
Response.Write “我无话可说”
End If
%>
3.10.2 Select Case语句
Select Case语句是If…Then…Else…End If语句多条件时的另外一种形式,适当使用,可以使程序更简洁方便。
Select Case语句的语法:
Select Case 表达式
Case 结果1
执行语句1
Case 结果2
执行语句2
……
Case 结果n
执行语句n
Case Else
执行语句n+1
End Select
首先对表达式进行计算,这个计算可以为数学运算或字符串运算。然后将运算结果依次与结果1到结果n作比较,当找到与计算结果相等的结果时就执行该执行语句,执行完毕就跳出Select Case条件式。而当运算结果与所有的结果都不相等时,就执行Case Else后面的执行语句n+1。
下面是一个具体的例子。
清单3-6 3-6.asp 根据分数给出相应的
信息(与3-5.asp比较一下异同)
<% Option Explicit %>
Select Case语句示例
<%
Dim Grade
Grade=“D”
Select Case Grade
Case “A”
Response.Write “太不可思议了,你太厉害了”
Case “B”
Response.Write “不错啊,继续努力吧”
Case “C”
Response.Write “革命尚未成功,同志还需努力”
Case Else
Response.Write “我无话可说”
End Select
%>
3.11 使用循环语句
VBScript中的循环语句是非常重要的语句,通常用于重复执行一组语句,比如累加或从数据库中依次读出多条记录。在VBscript中,常用的循环语句有:For…Next循环、Do…Loop循环等。
3.11.1 For…Next循环
For…Next循环是一种强制型的循环,用于将语句块运行指定的次数。在循环中使用计数器变量,该变量随每次循环增加或减少。
语法:
For counter=start To end [Step step]
执行语句
Next
各参数的说明如下表所示:
下面举例说明For…Next循环。
清单3-7 3-7.asp 计算从1到N的和
<% Option Explicit %>
For…Next循环示例
<%
Dim Sum,I,N
Sum=0
N=100
For I=1 to N
Sum=Sum+I
Next
Response.Write “1+2+3+……+”&Cstr(N)
&“=”&Cstr(Sum)
%>
3.11.2 Do…Loop循环
另一个常用的循环语句是Do…Loop,它是一种条件型的循环,当条件为True时或条件变为True之前,重复执行语句块。
语法一:
Do While 条件1
执行语句
Loop
或
Do
执行语句
Loop While 条件2
前者是入口型的循环,它先检查条件1是否为True,如果是True,才会进入循环中执行语句;而后者是出口型的循环,它先无条件的进入循环中执行一次之后,再判断条件2是否为真,如果为真,才会继续进入循环中执行语句。
语法二:
Do Until 条件3
执行语句
Loop
或
Do
执行语句
Loop Until 条件4
使用Until关键字,重复执行语句直到条件变为True。它的两种形式和上面的一样,也分别是入口型循环和出口型循环。
下面是一个具体的例子。
清单3-8 3-8.asp 计算从1到N的和(注意
与3-7.asp的异同)
<% Option Explicit %>
Do…Loop循环示例
<%
Dim Sum,I,N
Sum=0
N=100
I=1
Do While I<=N
Sum=Sum+I
I=I+1
Loop
Response.Write “1+2+3+…+”&Cstr(N)
&“=”&Cstr(Sum)
%>
3.10.3 While…Wend循环
在实际编程时,While…Wend语句是一个不太常用的循环语句。因为While…Wend循环能实现的功能,Do…Loop循环也能实现,所以通常情况下我们不用While…Wend循环。
语法:
While 条件
执行语句
Wend
当条件为True时,循环中的语句才会
执行,直到条件为False时,跳出循环。
例如:
<%
Dim I
I=1
While I<10
I=I+1
Wend
%>
3.10.4 For Each…In循环
这种循环方式是特有的,它的意思是:假如有一个集合,包括几个元素,那么利用这种循环方式就可以依次返回每个元素。因为在ASP中经常要返回一个数据集合,利用这种方法就可以方便的得到每一个值。
语法:
For Each 元素 In 集合
执行语句
Next
3.10.5 强行退出循环
一般情况下,都是根据条件判断退出循环,但有时候需要强行退出循环。在For…Next循环中,强行退出循环,跳出循环的指令是:Exit For。例如:
<%
Sum=0
N=1000
For I=1 to N
Sum=Sum+I
If Sum>10000 Then
Exit For
End If
Next
%>
在Do…Loop循环中,强行退出循环,跳出循环的指令是:Exit Do。
第四章 Request和Response对象
4.1 对象知识简介
所谓对象,就是把一些功能都给封装好了,至于它内部具体是怎么工作的,不要管它,只要会使用它就行了。 对象一般有方法、属性和事件。举一个简单的例子:一辆汽车就是一个对象,那么汽车的颜色就是它的一个属性;汽车可以运送旅客和货物,这就是它的一个方法;如果汽车不幸发生碰撞而损坏,这是事件。
4.2 利用Request对象从客户端获得信息
在网上,诸如留言板、BBS论坛、电子商城等都经常需要从客户端获得用户输入的信息(比如常见的注册),客户端通过浏览器在表单里输入留言后,怎样才能传到服务器的数据库里保存呢?过去采用的是CGI技术,很麻烦。而ASP提供了一个非常简单好用的内部对象Request,利用这个对象就可以使服务器轻松取得客户端的信息。
4.2.1 Request对象简介
Request对象用来获得客户端的信息,共有5种获取方法,分别是QueryString、
Form、Cookies、ServerVariables、ClientCertificate,这里只介绍最常用的Que-
ryString获取方法和Form获取方法。
语法:
Request.获取方法(参数)
例如:
<%
Request.Form(“user_name”)
%>
传入的参数是要得到该信息的变量名称。如果不想加入获取方法,也可以简写为Request(参数)方式,此时ASP将会依次在QueryString、Form、Cookies、ServerVariables、ClientCertificate这5种获取方法中检查是否有消息传入,如果有则会返回获得的变量信息。
4.2.2 使用Form获取方法
上网时经常会碰到填写注册信息一类的界面,这就是HTML提供的FORM表单实现的,通常包括文本框、按钮、单选框、复选框、下拉框等基本元素,填写完毕后,单击“确定”或“提交”按钮就可以将输入的信息传送到服务器上,然后可以调用相应的程序来处理该信息。
FORM的语法虽然很复杂,但最常用的也就是action、method和name。在ASP中,获取FORM表单中的信息就是用Form获取方法来实现的。在用Form获取方法获取信息时,method方法一定要用post,也可以不写,不写则默认为post。
FORM表单和Form获取方法的区别:前者是HTML提供的表单,并不是ASP特有的;后者是特指ASP的Request对象的获取信息的一种方法。两者的联系就是ASP用Form
获取方法来获取FORM表单中的信息。
清单4-1 4-1.asp 填写注册信息
Request的Form示例
请填写个人信息
用户填完信息,单击“确定”按钮后,就可以将输入的信息传给处理程序4-2.asp了,在4-2.asp中它把获取的信息显示如下。
清单4-2 4-2.asp 显示注册信息
<% Option Explicit %>
Request的用法示例
下面是您的个人
信息
<%
Dim user_name,password,sex,love,c-
arrer,introduction
user_name=Request.Form(“user_name”)
password=Request.Form(“password”)
sex=Request.Form(“sex”)
love=Request.Form(“love”)
career=Request.Form(“career”)
introduction=Request.Form(“introd-
uction”)
%>
姓名:<%=user name%>
密码:<%=password%>
性别:<%=sex%>
爱好:<%=love%>
职业:<%=career%>
简介:<%=introduction%>
从该例可以看出,可以将一个ASP文件或一个HTML文件内的表单信息传给一个ASP
文件,事实上,还可以将ASP文件内的表单信息传给自身。例如当客户端填写完数据并按下“提交”按钮后,浏览器会把该信息字符串返回至本身的ASP文件,处理完后再送回给客户端,可以马上把客户端填入的数据显现在同一页面下,而不是链接到另一个页面。很多留言板就是这么设计的。使用这种获取方法只要令FORM表单的action=“ ”,并且把ASP语句写在同一网页下即可。
4.2.3 使用QueryString获取方法
在从一个网页向另一个网页传递信息时,可以利用Form获取方法获取FORM表单的信息,还可以利用QueryString获取方法取回标识在URL后面的所有返回的变量及其值。
例如,当客户端送出如下的请求时,Request.QueryString将会得到name与age两个变量值。
?后面可以有多个参数,参数之间用&连接。
这个获取方法是非常有用的,当从一个网页向另一个网页传递数据时,都用FORM显然不方便,有时也不可行。下面举例说明QueryString的使用。
清单4-4 4-4.htm 准备传送信息
QueryString用法示例
显示
清单4-5 4-5.asp 显示得到的信息
QueryString用法示例
<%
Dim name,age
name=Request.QueryString(“name”)
age=Request.QueryString(“age”)
%>
您好,您的姓名是<%=name%>,您的年
龄是<%=age%>
4.3 利用Response对象向客户端输出信息
过去做的网页主是静态网页,对于静态网页向客户端输出信息很简单,直接用HTML
语言写就可以了。而ASP是要生成动态网页,根据客户端的不同请求输出相应的信息,这就要靠Response对象来实现了。前几章的示例已经多次用到了Response.Write方法,这里将更全面的介绍Response对象。
4.3.1 Response对象简介
ASP的内部对象Response用来控制送出给客户端的信息,Response对象可以使用的方法有下面3个:
Write—直接送出信息给客户端
Redirect—引导客户端至另一个URL位置
Cookies—设置Cookies值
可以使用的属性有两个:
Buffer—设置为缓冲信息
ContentType—控制送出的文件类型
这里只介绍最常用的Write和Redirect方法以及Buffer属性。
4.3.2 使用Write方法输出信息
在Response对象中,Write方法可以说是最普通、最常用的方法,它可以把信息从服务器端直接送给客户端,实际上就是在客户端动态显示内容。
语法:
Response.Write 变量数据或字符串
例如:
<%
Response.Write user_name&“您好,
欢迎您”
Response.Write “您的年龄是”&age
%>
前几章的例子里还用到类似于<%=name%>的输出信息用法,其实这是Write方
法的省略用法。
语法:
<%=变量数据或字符串%>
例如:
<%=user_name&“您好,欢迎您”%>
<%=“您的年龄是”&age%>
下面举一个详细的例子说明Write的这
两种用法。
清单4-6 4-6.asp 显示得到的信息
Response.Write示例
<%
Dim name,age
name=“赵芳”
age=20
Response.Write name&“您好,欢迎您”
Response.Write “,您的年龄是”&Cstr(
age)
%>
<%=name&“您好,欢迎您”%>
<%=“,您的年龄是”&Cstr(age)%>
4.3.3 使用Redirect方法引导客户端至另 一个URL位置
在普通网页中,可以利用超链接引导客户至另一个页面,但是必须要客户单击超链接才行。可是有时希望自动引导(也称重定向)客户至另一个页面,比如:进行网上考试时,当考试时间到时,应自动引导客户端至结束界面。
在ASP中,可使用Redirect方法引导客户至另一个页面。
语法:Response.Redirect 网址变量和字
符串
例如:
<%
Response.Redirect“http://www.edu.cn”
Response.Redirect“index.asp”
Response.Redirect theURL
%>
说明:该方法使用很简单,不过,如果不和Response的Buffer属性一起使用,则Redirect语句必须放到所有HTML元素的前面,简单地说,就是放到ASP文件的开头。如果希望在ASP文
件的任意地方使用Redirect语句,那就必须在ASP文件的开头加上<%Response.Buffer=Ture%>这一句话。
下面是一个具体的例子。
清单4-7 4-7.asp 根据客户的不同信息引导至相应的网页
<% Response.Buffer=True %>
Response.Redirect示例
<%
Dim user_type
user_type=“teacher”
If user_type=“teacher” Then
Response.Redirect“teacher.asp”
Else
Response.Redirect“student.asp”
End If
%>
4.3.4 Buffer属性
该属性的值为True或False,默认为False。
当Buffer为True时,它要把页面输出至缓冲区,当正在输出时,服务器端不响应客户端,除非所有服务器端文件被处理完毕。当Buffer为False时,服务器不再将页面输出至缓冲区,会直接将页面输出至客户端浏览器。
语法:
Response.Buffer=True或False如果在ASP文件中任意地方用到Redirect方法重定向页面,则必须在文件开头加上<% Response.Buffer=True %>这一句话,否则就会报错。这是因为:在默认情况下,服务器直接将页面输出至客户端,当输出HTML元素后,又想将网页引导到另一个页面,这是不允许的,而令Buffer等于True后,将把页面输出到缓冲区,在缓冲区不存在这个问题,可以随时将网页引导至其他页面。
第五章 Session和Application对象
5.1 利用Session对象记载特定客户信息
在WWW页面中,利用超链接,可以很方便地从一个页面到另一个页面。但是,这样也带来一个问题,怎样记载客户的信息呢?比如,在首页客户输入了自己的用户名和密码,在其他页面还需要使用该用户名,那么用什么记住用户信息呢?如果用Request的QueryString方法一页一页传递过去,那实在是太麻烦了。在ASP中,提供了一个Session内部对象,利用它则
可以实现上述要求。
5.1.1 Session对象简介
Session对象可以用来记载一位客户端信息,即使该客户从一个页面转到另一个页面,该Session信息仍然存在。比如:可以用Session信息记住客户输入的用户名信息,在其他页面中还可以用。特别需要强调的是:Session信息是对一个客户而言的,不同客户的信息用不同的Session信息记载。
是不是Session信息一直有效呢?不是的。Session信息有它的有效期,ASP服务器系统默认为20分钟,如果客户端超过20分钟不再向服务器提出请求或刷新Web页面,该Session信息就会自动结束。有时候程序执行错误,就是超过了有效期的问题。
我们可以修改有效期长度,或者在ASP的注册表中修改系统默认值,或者用Session对象的Timeout属性来更改,不过,用该属性更改的有效期长度不能低于默认值,否则还是以默认值为准。也可以用Session对象的Abandon方法随时强迫一个Session结束。
Session对象也有它的属性、方
本文档为【ASP教程】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑,
图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。
本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。
网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
|