17所示。
图5-17 单击图5-16中提交后的结果
也可以通过集合索引依次取得含有多个值的查询字符串变量的值,如将5-2.asp的代码更改为如下代码:
您的兴趣爱好有:
<% for i=1 to request.querystring("checkbox").count %>
<%=request.querystring("checkbox")(i)%>
<% next %>
则表单提交以后将显示如图5-18所示页面。
图5-18 修改5-2.asp代码后的提交结果
还可以通过重复遍历该变量值的集合中所有的值取得含有多个值的查询字符串变量的值,如将5-2.asp的代码更改为如下代码:
您的兴趣爱好有:
<% for each item in request.querystring("checkbox")%>
<%=item%>
<% next %>
上述代码也可以实现图5-18所示的页面效果。
2.Form集合
Form集合存储以Post方法传送到HTTP请求中的表单元素的值。使用Form集合的语法如下:
Request . Form ( element ) [ ( index ) | . Count ]
参数element指定集合要检索的表单元素的名称,可选参数index和count的意义和用法,与QueryString集合中相似,不再赘述。
【例5-6】设计Form集合使用页面文件5-3.asp和5-4.asp。
5-3.asp页面文件包含如下代码:
5-4.asp页面文件包含如下代码:
您的兴趣爱好有:
<% for i=1 to request.form("interest").count %>
<%=request.form("interest")(i)%>
<% next %>
当用户按图5-19所示选择自己的兴趣爱好提交表单后,在5-4.asp页面将显示如图5-20所示的结果。
图5-19 页面文件5-3.asp 运行结果 图5-20 单击图5-19中的提交后的结果
只有当表单的提交方式设置为Post时,才能通过Form集合获取表单元素的值。
在ASP动态网站的建立过程中,利用Request对象的Form集合获取用户提交信息的方法经常会被用到。本章引例"Web教程网站"的制作中就大量用到了Form集合。例如在用户登录网站时,要求用户在如图5-21所示的"login.htm"页面中填写用户名及登录密码表单,表单处理页面login.asp就是通过Request对象的Form集合获取用户填写的信息,然后根据用户提交信息在数据库中查询,验证用户登录信息是否正确。各页面有关代码如下:(详细代码见光盘)
图5-21 登录页面效果
login.htm页面关键代码:
login.asp部分代码
<%
......
username = Request.form("username") '获取用户登录名,并赋给变量username
password = Request.form("password") '获取用户密码,并赋给变量password
str_sql = "select * from user where user_name='" & username & "' and password='" & password & "'"
'根据用户提供的用户名和密码查询后台数据库,验证用户是否为注册用户
......
%>
Request对象的属性只有一个,如表5-2所示:
表5-2 Request对象的属性
属性名
属性说明
TotalBytes
返回客户请求的总字节数,是一个只读属性。
Request对象的方法也只有一个,如表5-3所示:
表5-3 Request对象的方法
方法名
方法说明
BinaryRead(count)
当数据作为Post请求的一部分发往服务器时,从客户请求中获得count字节的数据,返回一个Variant数组(或者SafeArray )。如果ASP代码已经引用了Request.Form集合,这个方法就不能用。同样,如果用了BinaryRead方法,就不能访问Request.Form集合。
Request对象的上述属性和方法并不常用,在此不作介绍。
5.2.2 Response对象
Response对象用于向客户端浏览器发送数据,用户可以使用该对象将服务器的数据以HTML的格式发送到客户端的浏览器,包括直接发送信息给浏览器、重定向浏览器到另一个 URL 或设置 cookie 的值。它与Request组成了一对接收、发送数据的对象。Response对象也是实现动态的基础。
Response对象的集合只有一个,如表5-4所示。该集合用于设置存放于客户机系统上的cookie值,它和Request.cookies集合是等同的。
表5-4 Response对象的集合
集合名
集合说明
Cookies
在当前HTTP响应中,服务器发回给客户端的所有Cookie值。
Response对象也提供一系列的属性,可以读取和修改,使响应能够适应请求。常用属性如表5-5所示。
表5-5 Response对象的属性
属性名
属性说明
Buffer
表明由一个ASP页所创建的输出是否一直存放在IIS缓冲区,直到当前页面的所有服务器脚本处理完毕或Flush、End方法被调用。在任何输出(包括HTTP报头信息)送往IIS之前这个属性必须设置。因此在.asp文件中,这个设置应该在<%@language=......%>语句后面的第一行。ASP 3.0缺省设置缓冲为开(True ),而在早期版本中缺省为关(False )。
Expires
读/写,数值型,指明页面有效的以分钟计算的时间长度,假如用户请求其有效期满之前的相同页面,将直接读取显示缓冲中的内容,这个有效期间过后,页面将不再保留在私有(用户)或公用(代理服务器)缓冲中。
ExpiresAbsolute
读/写,日期/时间型,指明当一个页面过期和不再有效时的绝对日期和时间
PICS
只写,字符型,创建一个PICS报头并将之加到响应中的HTTP报头中,
PICS报头定义页面内容中的词汇等级,如暴力、性、不良语言等
Status
读/写,字符型,指明发回客户的响应的HTTP报头中表明错误或页面处理是否成功的状态值和信息。例如"200 OK "和"404 Not Found"
表5-6 Response对象的方法
方法名
方法说明
BinaryWrite(data)
在当前的HTTP输出流中写入Variant类型的SafeArray,而不经过任何字符转换。对于写入非字符串的信息,例如定制的应用程序请求的二进制数据或组成图像文件的二进制字节,是非常有用的
Clear()
当Response.Buffer为True时,从IIS响应缓冲中删除现存的缓冲页面内容。但不删除HTTP响应的报头,可用来放弃部分完成的页面
End( )
让ASP结束处理页面的脚本,并返回当前已创建的内容,然后放弃页面的任何进一步处理
Flush( )
发送IIS缓冲中所有当前缓冲页给客户端。当Response.Buffer为True时,可以用来发送较大页面的部分内容给个别的用户
Redirect ( url )
通过在响应中发送一个" 302 Object Moved"HTTP报头,指示浏览器根据字符串url下载相应地址的页面
Write ( string )
在当前的HTTP响应信息流和IIS缓冲区写入指定的字符,使之成为返回页面的一部分
Response对象的属性和方法虽然很多,但常用的只有下面几个:
1.Write方法
Response.Write方法用于将指定的字符串写入客户端浏览器。语法如下:
Response . Write( variant )
参数variant指定将要写入客户端浏览器内容,可以是字符、字符串或数值等类型的常量或变量。
【例5-7】Write方法应用示例页面5-5.asp。
<%
Dim str1,str2
str1="Hello "
str2="World!"
Response.Write ( "Response对象Write方法用法举例: " )
Response.Write ( str1 )
Response.Write ( str2 )
%>
页面效果如图5-22所示:
图5-22 例5-5的运行结果
也可以将HTML标记通过Response.Write方法写入客户端,这样就可以通过ASP控制浏览器中网页元素显示的格式。
【例5-7】ASP控制浏览器中网页元素显示格式示例页面5-6.asp。
<%
response.write("")
for i=1 to 5
s="第" & i & "级标题样式"
response.write ( s )
next
%>
页面效果如图5-23所示:
图5-23 5-6.asp页面显示效果
在浏览器里面查看页面5-6.asp的源文件,可以看出页面经过服务器处理后发送到客户端变成了
上一篇:asp个人博客系统毕业设计论文(word文档)
下一篇:基于JSP邮件收发系统论文