学习ASP最重要的就是要掌握ASP内置的六大对象下面我们继续通过实例学习Request对象为了加深理解务请运行这些程序看看输出结果
一 使用RequestServerVariables获取环境变量
这部分内容很简单但获取的内容却很重要如何获取?请看下例
<%@ Language=VBScript %>
<HTML><BODY>
<%wufasp
ResponseWrite 运行ASP文件的路径: &_
RequestServerVariables(Script_Name) & <Br>
ResponseWrite 返回content的数据长度: &_
RequestServerVariables(Content_Length) & <Br>
ResponseWrite 返回客户的IP地址: &_
RequestServerVariables(Remote_Addr) & <Br>
ResponseWrite 浏览器名: &_
RequestServerVariables(HTTP_USER_AGENT) & <Br>
ResponseWrite 返回主页实际物理路径: &_
RequestServerVariables(APPL_PHYSICAL_PATH) & <Br>
%>
<table colspan= cellpadding= border=>
<tr>
<td align=CENTER bgcolor=# width=> <font color=#ffffff size=>环境变量名</font></td>
<td align=CENTER width= bgcolor=#> <font color=#ffffff size=>内容</font></td>
</tr>
<tr>
<td bgcolor=fefde align=CENTER> <font size=>
result
</font></td>
<td bgcolor=fefde align=CENTER> <font size=>
result
</font></td></tr>
</table>
</BODY></HTML>
Now你应该发现上一讲中的例程wufasp原来是多么的easy!
注意该程序的后面一部分HTML标记纯是为下面的例子作准备的所以不要觉得奇怪那么还有哪些环境变量呢?运行下面的例子就知道了(本程序删除了部分代码最好去我站点下载源程序便于理解)
<%@ Language=VBScript %>
<% wufasp
Option Explicit
Dim Sv
%>
<HTML><BODY>
<table colspan= cellpadding= border=>
<tr>
<td align=CENTER bgcolor=# width=> <font color=#ffffff size=>环境变量名</font></td>
<td align=CENTER width= bgcolor=#> <font color=#ffffff size=>结果</font></td>
</tr>
<%
for each Sv In RequestServerVariables
ResponseWrite <tr>
ResponseWrite <td bgcolor=fefde align=CENTER> <font style=ARIAL NARROW size=>
ResponseWrite Sv
ResponseWrite </font></td>
ResponseWrite <td bgcolor=fefde align=CENTER> <font style=ARIAL NARROW size=>
ResponseWrite RequestServerVariables(Sv)
ResponseWrite </font></td></tr>
next
%>
</table>
</BODY></HTML>
这里使用了For…Each循环用来列举一个集合中的所有元素如果后半部分看不懂请对照wufasp再瞧瞧运行结果仔细体会一下(什么态度?)
二 通过表单向服务器传送数据(也可这样理解服务器端如何读取客户端发送的数据)
做过主页应该知道很多主页通常都使用Form表单让用户输入数据然后通过submit(提交)按钮发送数据From表单中的method有两种主要方法POST和GET而action后一般都是指定一个cgipl或asp文件今天我们要学习的就是如果编写这个asp文件
(一) 如果使用POST方法传送数据则用RequestForm来读取数据
先编辑如下一个文件供用户输入数据
<html>
<body bgcolor=#FFFFFF>
<form method=post action=wufasp>
姓名 <input type=text name=yourname><br>
性别 <select name=gender>
<option>男</option>
<option>女</option>
</select> <br>
留言 <textarea name=message>您好!
注意多行文本的处理</textarea><br>
爱好(按住Ctrl键可多选)
<select name=hobby multiple size=>
<option>电脑</option>
<option>购物</option>
<option>电影</option>
<option>读书</option>
</select> <br>
<input type=submit name=Submit value=提交>
<input type=reset name=Submit value=Reset>
</form>
</body>
</html>
再编写一个需用到的文件wufasp收集数据
<%@ Language=VBScript %>
<% wufasp
Option Explicit
ResponseExpires=
Dim StrName StrGender StrM StrMsg
StrName = Trim(RequestForm(yourname)) Trim函数用来除首尾空格
StrGender = Trim(RequestForm(gender))
StrM = Trim(RequestForm(message))
StrMsg = Replace(StrMvbcrlf<Br> & vbcrlf)
vbcrlf相当于回车符和换行符的组合至于Replace函数其作用就是将字符串StrM中的vbcrlf替换为<Br> & vbcrlf(请思考这个vbcrlf有什么用?查看输出文件的HTML源码就明白了)详细请参考VBScript帮助
%>
<HTML><BODY>
姓名: <%= StrName%><Br><Br>
性别: <%= StrGender%><Br><Br>
留言: <Br><Br>
<%= StrM%><Br><Br>
<%= StrMsg%><Br><Br>
实际上 提交按钮的值也被传递: <Br>
<%= RequestForm(Submit)%><Br><Br>
<%先把上面看懂 有兴趣再看看如何读取多个选项
ResponseWrite 共选择爱好项数: & RequestForm(hobby)Count & <Br>
Dim I
For I = to RequestForm(hobby)Count
ResponseWrite RequestForm(hobby)(I) & <Br>
Next
%>
</BODY></HTML>
在这个的例子中为了便于理解我们使用了两个程序实际上只使用一个程序也可以如果有兴趣请看下面的例程wufasp有助于加深对环境变量的理解
<%@ Language=VBScript %>
<% wufasp
Option Explicit
ResponseExpires=
Dim StrName StrGender StrM StrMsg
If RequestServerVariables(Content_Length) <> Then
提交数据后这个长度就不会是 因此执行下面的语句 将结果显示出来
下面一部分实际上是照搬 wufasp
StrName = Trim(RequestForm(yourname))
StrGender = Trim(RequestForm(gender))
StrM = Trim(RequestForm(message))
StrMsg = Replace(StrMvbcrlf<Br> & vbcrlf)
%>
<HTML><BODY>
姓名: <%= StrName%><Br><Br>
性别: <%= StrGender%><Br><Br>
留言: <Br><Br>
<%= StrM%><Br><Br>
<%= StrMsg%><Br><Br>
<%
ResponseWrite 共选择爱好项数: & RequestForm(hobby)Count & <Br>
Dim I
For I = to RequestForm(hobby)Count
ResponseWrite RequestForm(hobby)(I) & <Br>
Next
%>
</BODY></HTML>
<%
Else
当第一次加载页面时没有提交任何数据故前面一部分并不执行而是从这里开始
这也就是为什么会有两对 <HTML></HTML> 的原因
下面照搬 就行了
<form method=post action=wufasp> 给用环境变量替换掉了 其实完全一样
ResponseWrite 看看结果: & RequestServerVariables(Script_name) & <Br>
%>
<HTML><BODY>
<form method=post action=<%= RequestServerVariables(Script_name)%>>
姓名 <input type=text name=yourname><br>
性别 <select name=gender>
<option>男</option>
<option>女</option>
</select> <br>
留言 <textarea name=message>您好!
注意多行文本的处理</textarea><br>
爱好(按住Ctrl键可多选)
<select name=hobby multiple size=>
<option>电脑</option>
<option>购物</option>
<option>电影</option>
<option>读书</option>
</select> <br>
<input type=submit name=Submit value=提交>
<input type=reset name=Submit value=Reset>
</form>
</BO