您的位置: 首页 > 技术文档 > 网络编程 > ASP编程入门进阶
ASP 指南 回到列表 asp 中对 ip 进行过滤限制函数
 ASP编程入门进阶

作者:cnbruce 时间: 2004-03-13 文档类型:原创 来自:蓝色理想

第 1 页 ASP编程入门进阶(一):安装服务器
第 2 页 ASP编程入门进阶(二):认识表单
第 3 页 ASP编程入门进阶(三):接触脚本程序
第 4 页 ASP编程入门进阶(四):内置对象Request
第 5 页 ASP编程入门进阶(五):内置对象Response
第 6 页 ASP编程入门进阶(六):Cookies讲座
第 7 页 ASP编程入门进阶(七):一些简单的ASP练习
第 8 页 ASP编程入门进阶(八):内置对象Session

系统学习ASP,就是先从ASP的几大内置对象开始的.
一般称五大对象:Request、Response、Server、Session、Application
今天先来看看Request对象。

当然一直还没有提到的就是,ASP到底是什么样?我看代码怎么知道是ASP代码?
很简单,当看到“<%”和“%>”就表明是ASP,并且两者之间的就是ASP源码。

那为什么要学对象,对象的作用又是如何的?
其实ASP所提供的这些可在脚本中使用的内建对象,使用户更容易收集通过浏览器请求发送的信息、响应浏览器以及存储用户信息,从而使对象开发者摆脱了很多烦琐的工作。

而Request对象的主要作用就是:在服务器端接受并得到从客户端浏览器提交或上传的信息。Request 对象可以访问任何基于 HTTP 请求传递的所有信息,包括从Form表单用 POST 方法或 GET 方法传递的参数、cookie 等。

一,Request.form("name")

这是接受上一页的信息时,常会用到的一种接受方式。Request是ASP对象,form则是Request对象所包含的对象集合(这要有区别与HTML页中的form表单,是不一样的),name也就是上一页表单中的某个文本框、密码框,或者隐藏域等的名称。并且还有一点非常重要:上一页Form表单的递交方法一定要为Post方法。
说不如做,看下面两个页面程序。

1,test1.html(本页是HTML的,主要提供输入信息的平台,以将信息提交到再下面的ASP页进行接受处理)

运行代码框

[Ctrl+A 全部选择 提示:你可先修改部分代码,再按运行]

2,submit1.asp(ASP页面,进行从test1.html接受name="yourname"和name="yourpwd"的两个值)

your name is:<%=request.form("yourname")%><br>
your pwd is:<%=request.form("yourpwd")%>


通过IIS进行HTTP协议的页面调试,你会发现两个页面进行了关联:test1.html中动态输入的name和pwd,在submit1.asp也则进行相应的动态显示。
这就是接收、提取并显示信息的全过程。

3,改进的submit1.asp

<% for each i in request.form%>
<%=i%>:
<%=request.form(i)%>
<br>
<%next%>


采用了for循环语句,将上页所有的form标签信息进行接受、并显示。这在上表单页有很多项目时,非常快捷地出来结果。
首先仍然是request.form,只是后面的("yourname")或("yourpwd")变成了变量 i
通过for循环对该form集合进行遍历提取,这是一种不同于机械地“有几个就提取几个”的编程思想,注意掌握。

二,Request.querystring("name")

此时由Request.form变为Request.querystring,最主要的还是上页表单递交时,采用的什么方法。当采用post就用Request.form,否则当采用get时就采用Request.querystring了。

那Request.querystring最大特色在哪里呢?Request.querystring能检索并接受 HTTP 查询字符串中变量的值,而HTTP 查询字符串则是由问号 (?) 后的值指定的。说了大半天,继续看一个程序。

1,test2.html(本页同是HTML的,主要提供输入信息的平台,以将信息提交到再下面的ASP页进行接受处理,注意提交方法是get)
运行代码框

[Ctrl+A 全部选择 提示:你可先修改部分代码,再按运行]


和test1.html最大区别也就是method="get"

2,submit2.asp(ASP页面,进行从test1.html接受name="yourname"和name="yourpwd"的两个值)


your name is:<%=request.querystring("yourname")%><br>
your pwd is:<%=request.querystring("yourpwd")%>


注意此时的浏览器地址栏,文件后面多出了?号,?号后面附有变量名及所被赋的值,当然多个变量名之间是用&号进行连接的。
而Request.querystring最大的功能就是能将?号后面的这些变量名分开,并且所对应的值也一一取出。

刚才说到不同的变量名之间是用&号进行连接,但如果是相同的变量名时,request.querystring到底是提取前一个?后一个?还是两个一起?
用例子说话。
3,query.asp(名称是query.asp,因为在该页程序中是反馈给自己。)


<a href="query.asp?bookname=《asp教程》">《asp教程》</a><br>
<a href="query.asp?bookname=《jsp教程》">《jsp教程》</a><br>
<a href="query.asp?bookname=《xsp教程》&bookname=《xml》">《xsp教程》</a><br>
you chosed <%=request.querystring("bookname")%>


很明显当点《xsp教程》时,显示的是“《xsp教程》,《xml》”,中间自动加了“,”号。
 
最后仍需要说明的是:request.querystring在分页程序里面是经常用到的。象http://www.cnbruce.com/database/

三,Request.ServerVariables("xxx")
其中ServerVariables就是服务器的环境变量了,该变量包含的内容比较多,我们同样先采用for循环进行遍历查看下。
1,server1.asp


<%for each i in request.servervariables%> 
<%=i%>:
<%=request.servervariables(i)%>
<hr> 
<%Next%>

可以看到一大堆环境变量,其中还有没有值的,下面摘取几个比较常用的。


http_user_agent(客户端机器的相关环境):<%=request.servervariables("http_user_agent")%><br>

http_accept_language(浏览语言):<%=request.servervariables("http_accept_language")%><br>

CONTENT_LENGTH(客户端发出内容的长度):<%=request.servervariables("CONTENT_LENGTH")%><br>

CONTENT_TYPE(内容的数据类型。如“text/html”。同附加信息 的查询一起使用,如 HTTP 查询 GET、POST 和 PUT):<%=request.servervariables("CONTENT_TYPE")%><br>

LOCAL_ADDR(返回接受请求的服务器地址。如果在绑定多个IP地址的多宿主机器上查找请求所使用的地址时,这条变量非常重要):<%=request.servervariables("LOCAL_ADDR")%><br>

REMOTE_ADDR(发出请求的远程主机client的 IP 地址):<%=request.servervariables("REMOTE_ADDR")%><br>

SERVER_NAME(出现在自引用 URL 中的服务器主机名、DNS 化名 或 IP 地址):<%=request.servervariables("SERVER_NAME")%><br>

SCRIPT_NAME(主机名后面的虚拟地址):<%=request.servervariables("SCRIPT_NAME")%><br>

LOGON_USER(用户登录 Windows NT 的帐号):<%=request.servervariables("LOGON_USER")%><br>

SERVER_PORT(发送请求的端口号):<%=request.servervariables("SERVER_PORT")%>


根据以上的SERVER_NAME是提取的服务器主机名,SCRIPT_NAME是提取的虚拟地址,则两者的结合再加上 http:// 是不是就是个完整的网址呢。
2,server2.asp


<%a=request.servervariables("server_name")%>
<%b=request.servervariables("script_name")%>
<%="http://"&a&b%>

其中 http:// 用引号引起,表示是一字符串,a和b分别是对应了具体值的变量,在ASP中进行这样的连接就是采用&号。

根据这个结果,我们是不是就可以随时提取动态的URL地址了。

再来看看query.asp,要求一定要保存为query.asp的,因为如果不是该文件名,程序指向就会出错。
但现在的这个文件就随便你保存为什么文件,都一样执行。
3,xxx.asp(随便你保存成什么文件)


<%filepath=request.servervariables("script_name")%>
<a href="<%=filepath%>?bookname=《asp教程》">《asp教程》</a><br>
<a href="<%=filepath%>?bookname=《jsp教程》">《jsp教程》</a><br>
<a href="<%=filepath%>?bookname=《xsp教程》&bookname=《xml》">《xsp教程》</a><br>
you chosed <%=request.querystring("bookname")%>

先将当前文件的地址取出并赋值给变量filepath
然后所有的链接地址开头都只要直接引用该变量就OK了。
是不是很有用,有点万能的感觉。

四,Request.Cookies("name")
不用我说,Cookie是个很重要的东西,究竟如何,等我们学完了下面的对象Response后,会有个特别Cookie的专题讲座。
就先搁着吧。

以上四则运用,属于Request对象的所包含的四个对象集合:form、querystring、servervarivables、cookies。当然还有个ClientCertificate就不说啦

一个ASP内置对象除了对象集合外还有对象属性对象方法

Request对象的对象属性只有一个就是TotalBytes(接受的字节数),你可将


<%=request.totalbytes%>

该语句加入到任何一个接受数据的ASP页面中进行显示了。

Request对象的对象方法也还是一个:BinaryRead 。
说实话,这东东不常用,我也没用过,呵呵。

OK~!有关Request对象的学习就差不多了,最主要是先好好理解三个对象集合,cookies不着急,下节继续学习对象Response。

出处:蓝色理想
责任编辑:cnbruce

上一页 ASP编程入门进阶(三):接触脚本程序 下一页 ASP编程入门进阶(五):内置对象Response

◎进入论坛网络编程版块参加讨论

相关文章 更多相关链接
[ASP]利用 xmlhttp 分块上传文件
ASP 中健壮的页结构的异常处理
改进 ASP 的字符串处理性能
ASP 指南
UBB 转换函数演示
作者文章 更多作者文章
Dreamweaver 限制访问的BUG
DW2004 中文乱码解决方案
ASP应用之模板采用
ASP TO HTML WITH TEMPLATE
处理较长文章,添加 …… 效果
热门搜索:CSS Fireworks 设计比赛 网页制作 Dreamweaver Studio8 Flash
站点最新 站点最新列表
疯狂的程序员 第五十回
疯狂的程序员 第四十九回
疯狂的程序员 第四十八回
疯狂的程序员 第四十七回
疯狂的程序员 第四十六回
疯狂的程序员 第四十五回
疯狂的程序员 第四十四回
疯狂的程序员 第四十三回
疯狂的程序员 第四十二回
疯狂的程序员 第四十一回
栏目最新 栏目最新列表
火星人的耳机
公司正式宣布创业失败
用corelDEAW 12打造唇膏
二行代码解决全部网页木马
一行代码解决iframe挂马
Photoshop制作星空爆炸效果
CorelDraw 12打造休闲裤
Firework如何画特殊的切角图形
Firework打造韩式风格的手提袋
flash实例:打造佛光效果
>> 分页 首页 前页 后页 尾页 页次:4/81个记录/页 转到 页 共8个记录

蓝色理想版权申明:除部分特别声明不要转载,或者授权我站独家播发的文章外,大家可以自由转载我站点的原创文章,但原作者和来自我站的链接必须保留(非我站原创的,按照原来自一节,自行链接)。文章版权归我站和作者共有。

转载要求:转载之图片、文件,链接请不要盗链到本站,且不准打上各自站点的水印,亦不能抹去我站点水印。

特别注意:本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有,文章若有侵犯作者版权,请与我们联系,我们将立即删除修改。

本文总共有 109 条评论,现在显示最新的 5 条。评分:- llllllllllllllllllll + 评分人数: 10 ,平均分: 4.50


webpdf Publish at 2008-7-10 13:58:23
不错!
我的一个站fzlbar.com

webpdf Publish at 2008-7-10 13:57:56
不错!
我的一个站www.fzlbar.com

nosec Publish at 2008-7-9 16:17:07
<form name="form1" action="xxx.asp" method="post">
<input type="text" name="yourname">
<select name="selectwhat">
<option>aaa</option>
<option>aaa</option>
</select>
<textarea name="textinit" rows=5 cols=10></textarea>
</form>

nosec Publish at 2008-7-9 16:14:46
[table]
ss[/table]
nosec Publish at 2008-7-9 16:13:59

dd

查看全部评论

您的评论
用户名:  口令:
说明:输入正确的用户名和密码才能参与评论。如果您不是本站会员,你可以注册 为本站会员。
注意:文章中的链接、内容等需要修改的错误,请用报告错误,以利文档及时修改。
不评分 1 2 3 4 5
注意:请不要在评论中含与内容无关的广告链接,违者封ID
请您注意:
·不良评论请用报告管理员,以利管理员及时删除。
·尊重网上道德,遵守中华人民共和国的各项有关法律法规
·承担一切因您的行为而直接或间接导致的民事或刑事法律责任
·本站评论管理人员有权保留或删除其管辖评论中的任意内容
·您在本站发表的作品,本站有权在网站内转载或引用
·参与本评论即表明您已经阅读并接受上述条款
推荐文档 | 打印文档 | 评论文档 | 报告错误  
专业书推荐 更多内容
大师之路--Photoshop 完全解析
《超越CSS》新书上市
Don't Make Me Think 第2版
HTML与CSS入门经典(第7版)
《FLASH MX2004网站开发精粹》
《CSS入门经典》
《设计师谈网页设计思维》
作品集 更多内容

封面 HP&#45;Mini START&nbsp;BAR&nbsp;VIS goi&#45;kart 绿城集团 30for杂志的一些页面 Video&nbsp;is&nbsp;coming&nbsp;soon... 西班牙瑞贝里斯俱乐部