欢迎光临
我们一直在努力

ASP编程入门进阶(四):内置对象Request-ASP教程,ASP应用

建站超值云服务器,限时71元/月

系统学习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页进行接受处理)

<form action="submit1.asp" method="post">

your name:<input tpye="text" name="yourname"><br>

your pwd: <input type="password" name="yourpwd"><br>

<input type="submit" value="submit">

</form>

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

注意method就是post,且提交的页面action为submit1.asp。

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)

<form action="submit2.asp" method="get">

your name:<input tpye="text" name="yourname"><br>

your pwd: <input type="password" name="yourpwd"><br>

<input type="submit" value="submit">

</form>

[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。

赞(0)
版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com 特别注意:本站所有转载文章言论不代表本站观点! 本站所提供的图片等素材,版权归原作者所有,如需使用,请与原作者联系。未经允许不得转载:IDC资讯中心 » ASP编程入门进阶(四):内置对象Request-ASP教程,ASP应用
分享到: 更多 (0)