Request.Form为什么不能获取html传递来的数据?

//只有form method="get"时才可用Request.QueryString["one"]方法
        //string one = Request.QueryString["one"];
        //string two = Request.QueryString["two"];

//只有form method="post"时才可用Request.Form方法,否则出错, action="Response_2.aspx"
        //string one = Request.Form["one"];
        //string two = Request.Form["two"];

//只有它,才不被post,get方式限制呢。
        string one = Request.Params["one"];
        string two = Request.Params["two"];
        //它也不被post,get方式限制呢。
        //string one = Request["one"];
        //string two = Request["two"];

详细:

asp中获取传递的参数,一般用request或者用request成员函数request.form,两种方式都可以获取页面表单传递过来的参数值,一直没留意两种方法有什么区别,我一般喜欢用request("abc")这样的形式,简单明了嘛。

最近修改了一些kingcms的代码,其中有一段代码是用request.form("abc")这样的形式获取传递的参数,可我在地址栏输入传递的参数无论如何也无法通过这段代码获取,仔细看了一下,才发现,是由于request和request.form的不同机制造成的。

首先request本身是一个系统的静态对象,本身也可以作为数组调用,比如request("abc")就是获取request数组中键值"abc"对应的值,而这个数组又不是固定的,而是多个数组的集合,其中包含了(QueryString ,Form ,Cookies ,ClientCertificate,ServerVariables )这几个服务器变量数组的值,也就是说,通过request可以依次遍历这几个数组并返回对应的值,使用起来很是方便,一劳永逸。

而request.form这个request的成员函数就不是那么宽泛的取值了,仅仅是从form数组中取值,也就是页面表单<form>标签的输入单元(比如<input type=text >传递过来的值。那么通过form就无法获取链接字符串中以index.asp?abc=123这样的形式传递过来的参数了。

还有一种方法是request.QueryString("abc")这种形式,可以获取QueryString 链接字符串传递的参数了。

以http的几种传递数据机制来说,这三种方法可以这样区分。request.form可以获取以post方式提交的数据,requst.querystring可以获取以get方法提交的数据,而request则是可以同时获取两种方法传递的数据。

按照传递数据量来说,request.form可以传递不限大小的数据,而request.querystring只能传递2k的数据量。

按照速度来说,request.qeurystring 会略快于request.form

最方便最好用的嘛,哈哈,就是request本身来的直接了,不管怎么传递的数据都能获取,性能嘛,略有下降,不过对于现在的网络和计算机来说,可以忽略不计,所以我最喜欢用request("abc")这样的写法

总结;

1.Request.form方法,它是用来接收表单变量的(post 方法)

2.Request.QueryString方法, 它是接收URL参数的 (get 方法)

3.Request对象也可以不指明具体使用QueryString或是form方法,如request("变量"),因为它能自动识别,不过还是指明为好,否则,要它自己判断也得花些微时间,影响程序执行效率。Request:包含以上两种方式(优先获取GET方式提交的数据),它会在QueryString、Form、ServerVariable中都搜寻一遍。

两者除了接收方法不同外,还有传递数据量大小的问题,request.form方法能接收的数据没有限制,而request.QueryString只能接收数据量小于2KB数据,当然后者的执行速度要比前者快。一般往数据库请求查询时用request.QueryString方法,因为查询时只不过那么几个关键词,没有必要用request.form方法而导致查询速度变慢。另外,request.QueryString方法还会把数据信息显示在客户端浏览器地址栏中,安全性较差。 request.form方法不存在上述问题,因此大量被应用在多个文本域提交数据和用户登陆的场合

Request.Form为什么不能获取html传递来的数据?

时间: 2024-10-12 15:57:02

Request.Form为什么不能获取html传递来的数据?的相关文章

ajax获取后台传递的json数据

最近在使用JQuery的ajax方法时,需要返回的数据为json数据,在success返回中数据处理会根据返回方式不同会采用不同的方式来生成json数据.在$.ajax方法中应该是如何来处理的,简单进行说明. 首先给出要传的json数据:[{"demoData":"This Is The JSON Data"}] 1,使用普通的aspx页面来处理 Js代码   $.ajax({ type: "post", url: "Default.a

控制层action获取jsp传递过来的参数有哪几种:

1.通过request获取: HttpServletRequest request = ServletActionContext.getRequest(); String pid = request.getParater("Pid");2.在action中分别定义表单的属性,然后set,get方法,即可获取jsp传递过来的数据: private String pid ; private String pname; //省略set,get方法... private Log log = L

Request.params,Request.form,Request.querystring区别(转)

自己总结:---大致意思是: 1.传参的方式分为:get方式传参,post方式传参,request.cookies和request.servervariables 2.这几种获取参数方式获取的都是一个集合 1)Request.QueryString[id] 只获取get方式传递的参数 2)Request.Form["id"] 只获取post方式传递的参数 3)Request.Params["id"] 获取以上四种传参方式的参数,依次在 QueryString.For

6.Request的三种获取数据的方法

其实一共有4种,不过form这种专门获取以post方式提交数据的方式目前还没学.所以就不太演示了 另外需要注意的是,Request.params 这种获取方式能不用就不要用了,有时候会出问题 那么代码如下: 第一个页面是index.aspx的代码: 第一个页面的index.aspx.cs的代码: 这里要说一下,上面这行语句,我在问号后面多打了一个空格,结果运行的时候就报错了!!!说没找到页面! 第二个页面的test.aspx.cs的代码: 原文地址:https://www.cnblogs.com

Android剪切板传递数据传递序列化对象数据

一.剪切板的使用介绍 1. 剪切板对象的创建 使用剪切板会用到,ClipboardManager对象,这个对像的创建不可以使用构造方法,主要是由于没有提供public的构造函数(单例模式),需要使用Activity.getSystemService(Context.CLIPBOARD_SERVICE)获取该对象.  2. 对象调用的主要方法介绍 在Android-11(Android 3.0)版本之前,利用剪切板传递数据使用setText()和getText()方法,但是在此版本之后,这两个方法

form中action属性后面?传递参数 获取不到

1 $p_id = $_REQUEST['p_id']; 2 3 echo "<h1>您将更新商品编号为<span>$p_id</span>的商品信息 <a href='listproduct.php'>查看所有</a></h1> 4 <form action='updateproduct.do.php?p_id=$p_id' method='get'> 5 商品名称:<input type='text'

Nancy获取Request.Form的所有参数

Nancy是一个轻量级的webapi框架,在用Nancy框架的时候,我们经常要获取到接口的所有动态参数值, 但是Nancy的Request.Form不能够直接转成NameValueCollection. 在这里,我先将Request.Form序列化成json格式字符串,在反序列化成List集合,来进行获取所有的key, 从而用key获取到所有的参数的值,存入字典类中. 下面插入方法代码: public Dictionary<string, string> GetRequestPost() {

request和request.form和request.querystring的区别

Request.Form是获取以POST方式提交的表单数据: Request.QueryString主要是获取地址栏参数或者以Get方式提交的数据 而Request则包含以上两种方式,会在Request.QueryString和Request.Form中都查询一遍变量.但是优先获取GET方式提交的数据,即Request.QueryString Request:包含以上两种方式(优先获取GET方式提交的数据),它会在QueryString.Form.ServerVariable中都搜寻一遍. 而且

Request、Request.Form和Request.QueryString的区别

request本身是一个系统的静态对象,本身也可以作为数组调用,比如request("abc")就是获取request数组中键值"abc"对应的值,而这个数组又不是固定的,而是多个数组的集合,其中包含了(QueryString ,Form ,Cookies ,ClientCertificate,ServerVariables )这几个服务器变量数组的值,也就是说,通过request可以依次遍历这几个数组并返回对应的值,使用起来很是方便,一劳永逸.  而request