您的位置: 首页 > 技术文档 > 网络编程 > 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 设计比赛 网页制作 web标准 用户体验 UE photoshop Dreamweaver Studio8 Flash 手绘 CG
站点最新 站点最新列表
周大福“敬•自然”设计大赛开启
国际体验设计大会7月将在京举行
中国国防科技信息中心标志征集
云计算如何让安全问题可控
云计算是多数企业唯一拥抱互联网的机会
阿里行云
云手机年终巨献,送礼标配299起
阿里巴巴CTO王坚的"云和互联网观"
1499元买真八核 云OS双蛋大促
首届COCO桌面手机主题设计大赛
栏目最新 栏目最新列表
浅谈JavaScript编程语言的编码规范
如何在illustrator中绘制台历
Ps简单绘制一个可爱的铅笔图标
数据同步算法研究
用ps作简单的作品展示页面
CSS定位机制之一:普通流
25个最佳最闪亮的Eclipse开发项目
Illustrator中制作针线缝制文字效果
Photoshop制作印刷凹凸字体
VS2010中创建自定义SQL Rule
>> 分页 首页 前页 后页 尾页 页次:4/81个记录/页 转到 页 共8个记录

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

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

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

您的评论
用户名:  口令:
说明:输入正确的用户名和密码才能参与评论。如果您不是本站会员,你可以注册 为本站会员。
注意:文章中的链接、内容等需要修改的错误,请用报告错误,以利文档及时修改。
不评分 1 2 3 4 5
注意:请不要在评论中含与内容无关的广告链接,违者封ID
请您注意:
·不良评论请用报告管理员,以利管理员及时删除。
·尊重网上道德,遵守中华人民共和国的各项有关法律法规
·承担一切因您的行为而直接或间接导致的民事或刑事法律责任
·本站评论管理人员有权保留或删除其管辖评论中的任意内容
·您在本站发表的作品,本站有权在网站内转载或引用
·参与本评论即表明您已经阅读并接受上述条款
推荐文档 | 打印文档 | 评论文档 | 报告错误  
专业书推荐 更多内容
网站可用性测试及优化指南
《写给大家看的色彩书1》
《跟我去香港》
众妙之门—网站UI 设计之道
《Flex 4.0 RIA开发宝典》
《赢在设计》
犀利开发—jQuery内核详解与实践
作品集 更多内容

杂⑦杂⑧ Gold NORMANA V2