您的位置:首页精文荟萃软件资讯 → ASP知识讲座二

ASP知识讲座二

时间:2004/10/7 18:20:00来源:本站整理作者:蓝点我要评论(0)

 学习ASP,最重要的就是要掌握ASP内置的六大对象。事实上,在上一讲中,我们已经了解了
 
Response对象(是吗?有没有搞错!),及Response对象中最常用的Write方法、Redirect方
 
法和Expires属性。看到对象、方法、属性、集合、事件这些概念(俺一个都不识!),如果以
 
前没接触过,聪明的您就不要管这些概念了,知道怎么用就行了,我的观点是刚开始关键在于临
 
摹。下面我们继续通过实例学习Request对象,为了加深理解,务请运行这些程序看看输出结果
 
一、 使用Request.ServerVariables获取环境变量,这部分内容很简单,但获取的内容却很重
 
要,如何获取?请看下例:
 
<%@ Language=VBScript %>
 
 
 
<% 'wuf8.asp
 
Response.Write "运行ASP文件的路径: " &_
 
Request.ServerVariables("Script_Name") & "
"
 
Response.Write "返回content的数据长度: " &_
 
Request.ServerVariables("Content_Length") & "
"
 
Response.Write "返回客户的IP地址: " &_
 
Request.ServerVariables("Remote_Addr") & "
"
 
Response.Write "浏览器名: " &_
 
Request.ServerVariables("HTTP_USER_AGENT") & "
"
 
Response.Write "返回主页实际物理路径: " &_
 
Request.ServerVariables("APPL_PHYSICAL_PATH") & "
"
 
%>
 
  
 
  
 color="#ffffff" size="2">环境变量名 
 color="#ffffff" size="2">内容 
 
  
   
result1 
  
  
result2 
 
 
 
Now,你应该发现上一讲中的例程wuf2.asp原来是多么的easy! 
注意:该程序的后面一部分HTML标记纯是为下面的例子作准备的,所以不要觉得奇怪。那么,还 
有哪些环境变量呢?运行下面的例子就知道了(本程序删除了部分代码,最好去我站点下载源程 
序便于理解)。 
<%@ Language=VBScript %> 
<% 'wuf9.asp 
Option Explicit 
Dim Sv 
%> 
  
 
  
 color="#ffffff" size="2">环境变量名 
 color="#ffffff" size="2">结果 
 
<% 
for each Sv In Request.ServerVariables 
Response.Write ""  
Response.Write " size='2'>" 
Response.Write Sv 
Response.Write "" 
Response.Write " size='2'>" 
Response.Write Request.ServerVariables(Sv) 
Response.Write "" 
next 
%> 
  
 
这里使用了For…Each循环,用来列举一个集合中的所有元素。如果后半部分看不懂,请对照 
wuf8.asp,再瞧瞧运行结果,仔细体会一下(什么态度?)。  
二、 通过表单向服务器传送数据(也可这样理解,服务器端如何读取客户端发送的数据)做过 
主页,应该知道很多主页通常都使用Form表单让用户输入数据,然后通过"submit(提交)"按 
钮发送数据。From表单中的"method"有两种主要方法:POST和GET,而"action"后一般都是指 
定一个.cgi、.pl或.asp文件,今天我们要学习的就是如果编写这个.asp文件。 
(一) 如果使用POST方法传送数据,则用Request.Form来读取数据。先编辑如下一个 
wuf10.htm文件,供用户输入数据: 
 
 
 
姓名: 
 
性别:  
 
 
 
 
留言: 您好! 
注意多行文本的处理 
 
爱好(按住Ctrl键可多选):  
 
 
 
 
 
 
 
 
 
 
 
 
再编写一个wuf10.htm需用到的文件wuf11.asp收集数据: 
<%@ Language=VBScript %> 
<% 'wuf11.asp 
Option Explicit 
Response.Expires=0 
Dim StrName, StrGender, StrM, StrMsg  
StrName = Trim(Request.Form("yourname")) 'Trim函数用来除首尾空格 
StrGender = Trim(Request.Form("gender")) 
StrM = Trim(Request.Form("message")) 
StrMsg = Replace(StrM,vbcrlf,"
" & vbcrlf)  
' vbcrlf相当于回车符和换行符的组合。至于Replace函数,其作用就是将字符串StrM中的 
vbcrlf替换为"
" & vbcrlf(请思考这个vbcrlf有什么用?查看输出文件的HTML源码就明 
白了),详细请参考VBScript帮助。 
%> 
 
姓名: <%= StrName%>

 
性别: <%= StrGender%>

 
留言: 

 
<%= StrM%>

 
<%= StrMsg%>

 
实际上, "提交"按钮的值也被传递: 
 
<%= Request.Form("Submit")%>

  
<% '先把上面看懂, 有兴趣再看看如何读取多个选项 
Response.Write "共选择爱好项数:" & Request.Form("hobby").Count & "

Dim I  
For I = 1 to Request.Form("hobby").Count 
Response.Write Request.Form("hobby")(I) & "

Next 
%> 
 
在这个的例子中,为了便于理解,我们使用了两个程序,实际上只使用一个程序也可以,如果有 
兴趣请看下面的例程wuf12.asp,有助于加深对环境变量的理解。 
<%@ Language=VBScript %> 
<% 'wuf12.asp 
Option Explicit 
Response.Expires=0 
Dim StrName, StrGender, StrM, StrMsg  
If Request.ServerVariables("Content_Length") <> 0 Then
 
'提交数据后,这个长度就不会是 0, 因此执行下面的语句, 将结果显示出来
 
'下面一部分实际上是照搬 wuf11.asp 
 
StrName = Trim(Request.Form("yourname")) 
 
StrGender = Trim(Request.Form("gender"))
 
StrM = Trim(Request.Form("message"))
 
StrMsg = Replace(StrM,vbcrlf,"
" & vbcrlf) 
 
%>
 

 
姓名: <%= StrName%>


 
性别: <%= StrGender%>


 
留言: 


 
<%= StrM%>


 
<%= StrMsg%>


 
<%  
Response.Write "共选择爱好项数:" & Request.Form("hobby").Count & "

Dim I  
For I = 1 to Request.Form("hobby").Count 
Response.Write Request.Form("hobby")(I) & "

Next 
%> 
  
<% 
Else 
'当第一次加载页面时,没有提交任何数据,故前面一部分并不执行,而是从这里开始 
'这也就是为什么会有两对  的原因 
'下面照搬 wuf10.htm 就行了 
' 给用环境变量替换掉了, 其实完全一样 
Response.Write "看看结果: " & Request.ServerVariables("Script_name") & "

%> 
 
"> 
姓名: 
 
性别:  
 
 
 
 
留言: 您好! 
注意多行文本的处理 
 
爱好(按住Ctrl键可多选):  
 
 
 
 
 
 
 
 
 
 
 
<%End If%> 
(二)如果使用GET方法传送数据,则用Request.Querystring来读取数据。先编辑如下一个 
wuf13.htm文件,供用户输入数据 
 
 
 
英文姓名:  
 
中文姓名: 
 
性别:  
 
 
 
 
 
 
 
 
 
再编写一个wuf13.htm需用到的文件wuf14.asp收集数据: 
<%@ Language=VBScript %> 
<% 'wuf14.asp 
Option Explicit 
Response.Expires=0 
Dim StrCname, StrEname, StrGender  
StrEname = Trim(Request.QueryString("Ename")) 'Trim函数用来除首尾空格 
StrCname = Trim(Request.QueryString("Cname"))  
StrGender = Trim(Request.QueryString("gender")) 
%> 
 
英文姓名: <%= StrEname%>

 
中文姓名: <%= StrCname%>

 
性别: <%= StrGender%>

 
看看提交的字符串: 
 
<%= Request.ServerVariables("Query_String")%> 
 
为了更好地理解这个程序,你最好先在浏览器中试试例程wuf13.htm的效果,看看输出的结果, 
你会发现地址栏中长长的字符串似曾相识,如同在Yahoo搜索时看到的差不多。这时,你试着在 
地址栏中直接输入"http://localhost/wuf14.asp?Ename=Rose&Cname=李二&gender=女" 居 
然也得到了同样的结果。所以你可以这样看,wuf13.htm的结果就是得到了类似这样的一个带参 
数的链接。而Request.QueryString则是从http:// 地址的附加参数中读取各个数据。 
实际上当按"提交"按钮后,查询字符串(输入的数据)会以参数的形式附加到URL地址后(各参 
数间以"&"分隔),达到传递数据的目的。同时,注意浏览器中显示的查询字符串中没有中文, 
而是不认识的含百分号的乱码,这是因为进行了编码的缘故。最后,与前面一样,这两个程序也 
可合并为一个程序(例程wuf15.asp,需去我站点下载)。 
几点说明: 
1. 若使用POST方法提交数据,则Request.ServerVariables("Content_Length")>0。 
若使用GET方法提交数据,则Request.ServerVariables("Query_String") <> ""。 
2.弄懂原理后你完全可以在同一个ASP文件中混合使用Request.Form和Request.QueryString 
3. 如果在一个Form表单中,有几个按钮,你如何确定用户按了哪个按钮?如果留意的话,会发 
现例程wuf11.asp中有一句,"提交"按钮的值也被传送,而wuf13.htm中生成的查询字符串最后 
也可以找到类似的值。请注意:只有被按按钮的值被传送,而其他按钮的值为"",这就是判断依 
据(《中计报》InfoWeb网站有一篇类似文章)。 

相关阅读 Mac访问Windows共享文件夹Windows 7正版系统验证方法windows 8.1系统版本号查看方法Windows 8.1系统电话激活时无法输入微软返回代码解决方法Windows 8如何调整屏幕分辨率windows8.1磁盘占用100%解决方法Mac双系统如何删除Boot Camp安装的Windows分区Apple教你如何在Mac 上运行 Windows

文章评论
发表评论

热门文章 360快剪辑怎么使用 36金山词霸如何屏幕取词百度收购PPS已敲定!3

最新文章 微信3.6.0测试版更新了微信支付漏洞会造成哪 360快剪辑怎么使用 360快剪辑软件使用方法介酷骑单车是什么 酷骑单车有什么用Apple pay与支付宝有什么区别 Apple pay与贝贝特卖是正品吗 贝贝特卖网可靠吗

人气排行 xp系统停止服务怎么办?xp系统升级win7系统方电脑闹钟怎么设置 win7电脑闹钟怎么设置office2013安装教程图解:手把手教你安装与qq影音闪退怎么办 QQ影音闪退解决方法VeryCD镜像网站逐个数,电驴资料库全集同步推是什么?同步推使用方法介绍QQ2012什么时候出 最新版下载EDiary——一款好用的电子日记本