在不同页面之间传值,asp request.form对象中form集合和querystring集合的区别。

12、asp系列课程--使用request对象的QueryString集合
作者:杨凡
来自:杨凡博客
地址:.cn/aboutshisan
我们花了11节课的时间把response对象说完了,这节课开始说request对象。
我想,玩过日站的人对这个request对象肯定非常眼熟,特别是一句话木马。
那么,这个神奇的request对象到底神奇在哪里呢?请容我一点一点的说。
我们前边讲的response对象是一个输出型的对象,用于向客户端输出各种信息,而我们这里要介绍的request对象,则是一个输入型的对象,用于从客户端获取用户输入的信息。
request对象在获取完用户输入的信息后,会将这些信息保存在asp内置的几个集合中,我们可以访问这些集合从而得到用户输入的信息。
这里说的集合,其实跟数组差不多。
这里说的用户输入的信息,比如获取用户提交的表单里的内容,比如获取用户的cookie信息。
另外,这个request也兼职获取服务器的相关信息,使用request对象的ServerVariables集合可以获得所有的服务器变量值,而我们的一句话木马,之所以可以获得服务器那么多的信息,就是用的这个集合。
那么,说了集合又说了集合,说明集合对于request对象很重要,事实上确实如此,request对象拥有5个内置的集合,但是它只拥有一个属性和一个方法,我们先来介绍它的5个集合,分别为:
form,这个集合里包含了所有使用post方法从表单里传递来的表单元素的值
QueryString,这个集合里包含了所有使用get方法从表单里或URL里传递来的变量的值
cookies,这个集合包含了HTTP请求中发送的所有cookie值
ClientCertificate,这个集合包含了存储于客户证书中的域值(field values)
ServerVariables,这个集合包含了所有的服务器变量值
访问这些集合的语法格式为:
request.集合名("成员名")
request.form("username")
这句代码将通过访问request对象的form集合中的username成员来获得其值。
我们这节课先来介绍一下QueryString集合。
其访问方法为:
request.QueryString("成员名")
下面我们来实例演示一下。
---------------------------asp_12.htm---------------------------
&title&用户登陆表单--get方式&/title&
&form name="form1" action="asp_12.asp"
method="get"&
用户名:&input type="text"
name="txt_name"&
密码:&input type="text"
name="txt_pass"&
&input type="submit" name="btn_sub"
value="登陆"&
&input type="reset" name="btn_reset"
value="重写"&
效果如图:
-------------------------------asp_12.asp---------------------------------
&% @ language="vbscript" %&
&% response.buffer=true %&
response.write("欢迎你," &
request.querystring("txt_name") & "!")
response.write("你的密码是:" &
request.querystring("txt_pass") & ",请记好。")
在asp_12.htm中输入用户名和密码,页面自动跳转到asp_12.asp,如图:
asp_12.htm中的表单提交后,URL变成了这样:
/asp_12.asp?txt_name=yangfan&txt_pass=123456&btn_sub=��½
这就是我们说的get方式的传输。
其实,所谓的get方式传输,只不过是将用户输入的变量的名字和值直接附加到了正常的URL后面,多个变量名之间以“&”连接,URL和参数之间以“?”连接,如上图。
相对于get方式的直接把数据附加到URL后面的做法来说,post方式的传输则是先将要传输的数据封包,然后再将封好的包发送出去,这样的话,安全性就相对比较安全,并且可以传递的数据量也是弱弱的get方式所无法比拟的。
但是,因为get传输的时候,所有的信息都是在地址栏可以直接看到的,所以,如果要传输用户名、密码等敏感信息的话,那最好使用post方式传递,因为get方式是不安全的。
并且因为URL的长度是有长度限制的,所以我们只是常使用get方式来传递一些无关紧要的、数据量较小的数据,对于敏感信息(比如密码)、数据量大的数据(比如文章),都是使用post方式传递的。
另外,如果我们将两个不同的值同时赋给了同一个变量的话,那么,使用上面的语句:
request.QueryString("变量名")
这样来返回变量的值的话,那么返回的值将是以逗号分开的两个值。
/woaini.asp?id=521&name=xusushu&name=yangfan
这时,我们就将两个不同的值赋给了同一个变量name,这时,使用:
request.querystring("name")
这句代码来获得变量name的值的时候,会返回这样的结果:
xusushu,yangfan
两个值中间是以逗号分开的。
但是,如果我们只想返回其中的一个值,这时该怎么办呢?
不用担心,有办法,request对象的QueryString集合是有一个Index参数的,我们通过指定index的值,可以达到获得多个值中的一个值的目的。
语法格式为:
request.QueryString("变量名")(index值)
比如,对于上边的这个地址来说,我可以使用这行代码来获得name变量的第一个值:
request.QueryString("name")(1)
返回结果为:
那么相应的,如果我需要取得name变量的第二个值,则只需要使用这行代码即可:
request.QueryString("name")(2)
可以看到,我们只需要改变index的值,就可以获得不同的值了。
当然,这个index的值必须是存在的,什么意思呢?
就是说,假使我们传递来的变量name的值有2个,而我却将index的值写为了3,那么,这个值明显是不存在的,那么页面就会出错。
我们可以使用这行语句来确定一个变量有多少值:
request.QueryString("变量名").count
比如,我执行
&% response.write(request.QueryString("name").count)
这句代码就可以显示出name变量的值的个数。
如果你愿意,你可以使用下面这段代码来逐行显示QueryString集合中的所有变量的值:
for i=1 to request.QueryString.Count
response.write(request.QueryString(i) &
我上边说了,QueryString是一个集合,这个集合其实就相当于一个数组,所以我们甚至可以用for
each循环来逐行显示出QueryString中所有的变量名及变量的值:
for bianliang in request.QueryString
response.write bianliang & "=" &
request.QueryString(bianliang) &
OK,关于QueryString集合,我就说这么多了,完毕。
已投稿到:
以上网友发言只代表其个人观点,不代表新浪网的观点或立场。ASP.NET--&&Get和Post的接收参数:Request.QueryString,Request.Form,Request.Params异同
表单提交中,ASP.NET的Get和Post方式的区别有如下几点:
get是从服务器上获取数据,post是向服务器传送数据。
get是把参数数据队列加到提交表单的ACTION属性所指的URL中,值和表单内各个字段一一对应,在URL中可以看到。post是通过HTTP
post机制,将表单内各个字段与其内容放置在HTML
HEADER内一起传送到ACTION属性所指的URL地址。用户看不到这个过程。
对于get方式,服务器端用Request.QueryString获取变量的值,对于post方式,服务器端用Request.Form获取提交的数
get传送的数据量较小,不能大于2KB。post传送的数据量较大,一般被默认为不受限制。但理论上,IIS4中最大量为80KB,IIS5中为
get安全性非常低,post安全性较高。但是执行效率却比Post方法好。
1、get方式的安全性较Post方式要差些,包含机密信息的话,
建议用Post数据提交方式;
2、在做数据查询时,建议用Get方式;而在做数据添加、修改或删
除时,建议用Post方式。
params、Request、Request.querystring、Request.Form
具体区别!&
Request.Form:获取以POST方式提交的数据(接收Form提交来的数 据);
Request.QueryString:获取地址栏参数(以GET方式提交的数据)
Request: 包含以上两种方式(优先获取
GET方式提交的数据),它会在QueryString、Form、ServerVariable中都按先后顺序搜寻一遍。而且有时候也会得到不同的结
果。如果你仅仅是需要Form中的一个数据,但是你使用了Request而不是Request.Form,那么程序将在QueryString、
ServerVariable中也搜寻一遍。如果正好你的QueryString或者ServerVariable里面也有同名的项,你得到的就不是你原
本想要的值了。
Request.Params是所有post和get传过来的值的集合,request.params其实是一个集合,它依次包 括
request.QueryString、request.Form、request.cookies和request.ServerVariable。
默認虽然是POST Form,但是只是自己post自己,不能POST到其他页面
如果非要提交到令一个页面的 话 用HTML元素 把runat="server" 去掉 用submit提交
用Request.Form["xxx"] 可以取值
已投稿到:
以上网友发言只代表其个人观点,不代表新浪网的观点或立场。项目05_使用Request内置对象获取表单信息_百度文库
两大类热门资源免费畅读
续费一年阅读会员,立省24元!
文档贡献者贡献于
评价文档:
6页免费31页免费12页免费14页免费8页免费 30页1下载券3页免费6页1下载券4页免费1页免费
喜欢此文档的还喜欢34页免费16页1下载券6页免费25页7下载券12页免费
项目05_使用Request内置对象获取表单信息|使​用​F​o​r​m​集​合​获​取​信​息​。​
​
​使​用​R​e​q​u​e​s​t​集​合​获​取​信​息
把文档贴到Blog、BBS或个人站等:
普通尺寸(450*500pix)
较大尺寸(630*500pix)
大小:781.00KB
登录百度文库,专享文档复制特权,财富值每天免费拿!
你可能喜欢?&欢迎光临驿站网!&&
| | | | | |
| | | | | | | |
| | | | | |
| | | | | | | | |
| | | | | | | |
您的位置:
本文网址:
共有:条评论信息评论信息
版权所有:驿站网 ASP Request 对象
ASP Request 对象
ASP Request 对象用于从用户那里取得信息。
QueryString 集合 实例
本例演示如何在链接中向页面发送一些额外的查询信息,并在目标页面中取回这些信息(在本例中是同一页面)。
本例演示 QueryString 集合如何从表单取回值。此表单使用 GET 方法,这意外着所发送的信息对用户来说是可见的(在地址中)。GET 方法还会限制所发送信息的数量。
本例演示如何使用从表单取回的值。我们会使用 QueryString 集合。此表单使用 GET 方法。
本例演示假如输入字段包含若干相同的名称的话,QueryString 会包含什么内容。它将展示如何把这些相同的名称分隔开来。它也会展示如何使用 count 关键词来对 &name& 属性进行计数。此表单使用 GET 方法。
Form 集合 实例
本例演示 Form 集合如何从表单取回值。此表单使用 POST 方法,这意味着发送的信息对用户来说是不可见的,并且对所发送信息的量没有限制(可发送大量的信息)。
本例演示如何使用从表单取回的信息。我们使用了 Form 集合。表单使用了 POST 方法。
本例演示假如若干的输入域使用了相同的名称,Form 集合会包含什么信息。它将展示如何把这些相同的名称分割开来。它也会展示如何使用 count 关键词来对 &name& 属性进行计数。此表单使用 POST 方法。
本例演示如何使用 Form 集合通过单选按钮与用户进行交互。此表单使用 POST 方法。
本例演示如何使用 Form 集合通过复选按钮与用户进行交互。此表单使用 POST 方法。
如何查明访问者的浏览器类型、IP 地址等信息。
本例演示如何使用 ServerVariables 集合取得访问者的浏览器类型、IP 地址等信息。
本例演示如何使用 Cookies 集合创建一个欢迎 cookie。
本例演示如何使用 TotalBytes 属性来取得用户在 Request 对象中发送的字节总数。
Request 对象
当浏览器向服务器请求页面时,这个行为就被称为一个 request(请求)。
ASP Request 对象用于从用户那里获取信息。它的集合、属性和方法描述如下:
ClientCertificate
包含了在客户证书中存储的字段值
包含了 HTTP 请求中发送的所有 cookie 值
包含了使用 post 方法由表单发送的所有的表单(输入)值
包含了 HTTP 查询字符串中所有的变量值
包含了所有的服务器变量值
返回在请求正文中客户端所发送的字节总数
取回作为 post 请求的一部分而从客户端送往服务器的数据,并把它存放到一个安全的数组之中。

我要回帖

更多关于 asp request.form 的文章

 

随机推荐