zoukankan      html  css  js  c++  java
  • R​e​q​u​e​s​t​、​R​e​q​u​e​s​t​.​F​o​r​m​和​R​e​q​u​e​s​t​.​Q​u​e​r​y​S​t​r​i​n​g​的​区​别

    Request

    Request.Form

    Request.QueryString

    的区别

     

     

    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")

    这样的写法。

     

     

    Request.Form

    :获取以

    POST

    方式提交的数据(接收

    Form

    提交来的数据);

     

    Request.QueryString

    :获取地址栏参数

    (

    GET

    方式提交的数据

    Request

    :包含以上两种方式

    (

    优先获取

    GET

    方式提交的数据

    )

    ,它会在

    Query

    String

    Form

    ServerVariable

    中都搜寻一遍。

     

           

    而且有时候也会得到不同的结果。

    如果你仅仅是需要

    Form

    中的一个数据,

    但是你使用了

    Request

    而不是

    Request.Form

    ,那么程序将在

    QueryString

    ServerVariable

    中也搜寻一遍。

    如果正好你的

    QueryString

    或者

    ServerVari

    able

    里面也有同名的项,你得到的就不是你原本想要的值了。

     

    使用

    Request

    ASP

    是以如下顺序进行搜索

         

    1.QueryString 

         

    2.Form 

         

    3.Cookies 

         

    4.ClientCertificate 

         

    5.ServerVariables 

    如果在

    QueryString

    里也存在一个同

    Form

    里相同的变量名,

    则不会返回

    Form

    里的值,而是

    QueryString

    的。

     

          

    Request.form:

    获取前台

    form

    表单以

    POST

    方式提交的数据

     

          

    Request.QueryString :

    获取地址栏参数

    (

    GET

    方式提交的数据

          

    Request:

    包含以上两种方式

    (

    优先获取

    GET

    方式提交的数据

    两者除了接收方法不同外,还有传递数据量大小的问题

    :

     

    Request.form

    方法能接收的数据没有限制,

    Request.QueryString

    只能接

    收数据量小于

    2KB

    数据,当然后者的执行速度要比前者快。

     

    一般向数据库请求查询时用

    request.QueryString

    方法,

    因为查询时只不过那

    么几个关键词,没有必要用

    request.form

    方法而导致查询速度变慢。

     

    另外,

    request.QueryString

    方法还会把数据信息显示在客户端浏览器地址栏

    中,安全性较差。

     

    request.form

    方法不存在上述问题,

    因此大量被应用在多个文本域提交数据和

    用户登陆的场合。

     

    request

    对象也可以不指明具体使用

    QueryString

    或是

    form

    方法,如

    request("

    变量

    ")

    ,因为它能自动识别,

     

    不过还是指明为好,

    否则,

    要它自己判断也得花些微小的访问时间,

    影响程序执

    行效率。

     

     

     

     

     

     

     

     

     

     

  • 相关阅读:
    Redis 笔记
    React Native
    docker run 命令
    vue 集成腾讯地图基础api Demo集合
    在uniapp H5项目中使用腾讯地图sdk
    基于UE4/Unity绘制地图
    腾讯位置服务打车乘客端小车平滑移动-安卓篇
    腾讯位置服务定位打卡功能实现
    腾讯位置服务GPS轨迹回放-安卓篇
    腾讯位置服务个性化图层创建及发布
  • 原文地址:https://www.cnblogs.com/lengv10/p/3783807.html
Copyright © 2011-2022 走看看