必威体育Betway必威体育官网
当前位置:首页 > IT技术

Request、Request.Form、Request.QueryString用法的区别

时间:2019-10-05 06:10:54来源:IT技术作者:seo实验室小编阅读:57次「手机版」
 

request.form

request.Form:获取以POST方式提交的数据

request.querystring:获取地址栏参数(以GET方式提交的数据)。

Request:包含以上两种方式(优先获取GET方式提交的数据),它会在QueryString、Form、ServerVariable中都搜寻一遍。

有时候会得到不同的结果。如果仅仅需要Form中的数据,但是使用了Request而不是Request.Form,那么程序将在QueryString、ServerVariable中也搜寻一遍。如果其中有同名的项,就得到不一样的结果。

在asp.net编程中,QueryString、Form、Cookie是三种比较常见的接收客户端参数的方式。QueryString:接收包含在url中的参数。Form:接收表单数据。Cookie可以获取会话状态中保存的信息(大部分情况下用来存储用户信息)。除了这些外,HttpRequest还提供了ServerVariables来让我们获取一些来自web服务器变量。

Request.params是NameValueCollection键值对类型的只读属性,在FillInParamsCollection方法中,将QueryString,Form,Cookies,ServerVariables加入到了字段中。Params[key]会取到QueryString和cookie里面的值了。

可以看到Request[key]的实现方式,查找顺序是QueryString,Form,Cookies,ServerVariables,直到找到然后直接返回。

Params的实现

// Params collection - combination of query string, form, server vars
        //    Gets a combined collection of QueryString+Form+ ServerVariable+Cookies.
        public NameValueCollection Params {
            get {
                if (Httpruntime.HasAspNetHostingpermission(AspNetHostingPermissionLevel.Low))
                    return GetParams();
                else
                    return GetParamsWithDemand();
            }
        }

private NameValueCollection GetParams() {
            if (_params == null) {
                _params = new HttpValueCollection(64);
                FillInParamsCollection();
                _params.MakeReadOnly();
            }
            return _params;
        }

        [AspNetHostingPermission(SecurityAction.Demand, Level=AspNetHostingPermissionLevel.Low)]
        private NameValueCollection GetParamsWithDemand()
        {
            return GetParams();
        }

// Params collection support
        private void FillInParamsCollection() {
            _params.Add(this.QueryString);
            _params.Add(this.Form);
            _params.Add(this.Cookies);
            _params.Add(this.ServerVariables);
        }
equest[key]的实现

// Default property that goes through the collections
        //      QueryString, Form, Cookies, ClientCertificate and ServerVariables
        public String this[String key] {
            get {
                String s;

                s = QueryString[key];
                if (s != null)
                    return s;

                s = Form[key];
                if (s != null)
                    return s;

                HttpCookie c = Cookies[key];
                if (c != null)
                    return c.Value;

                s = ServerVariables[key];
                if (s != null)
                    return s;

                return null;
            }
        }

相关阅读

DecimalFormat格式化小数0,#

public static final DecimalFormat DFORMAT1 = new DecimalFormat("0.00");//小数位多于2位时四舍五入,最多保留两位小数,第二

Informatica参考

近日在做informatica项目时,要求参照informatica中原有的mapping方式实现。那么当知道源表或者目标表或者是映射时,如何快速的找出

String.Format( )用法

String.Format用法名称 说明 Format(String, Object)  将指定的 String 中的格式项替换为指定的 Object 实例的值的文本等效项

java.lang.NumberFormatException: null原因

分享一个bug,java.lang.NumberFormatException: null从网上看的很多解决方案说是:类型转换错误parseInt转换会触发NumberFormatExce

respondsToSelector:与performSelector:区别

第一个方法是获取当前类的所有的实例方法名,跟提供的方法名做比较 第二个方法则是采用OC的另一种调用方法的实现NSInvocation,把

分享到:

栏目导航

推荐阅读

热门阅读