request.querystring("id")与request("id")区别

本文详细解释了ASP中Request对象如何从QueryString、Form和ServerVariables集合中按顺序获取数据的过程。并通过实例展示了不同请求方式(GET与POST)下变量检索的具体实现。
Request从几个集合取数据是有顺序的,从前到后的顺序依次是 QueryString,Form,最后是ServerVariables。Request对象按照这样的顺序依次搜索这几个集合中的变量,如果有符合的就中止,后面的就不管了。
现在我们来分析下你得问题.
假设有个页面 test.asp?id=111
这里我们的页面是用GET的方法.这时用request.querystring("id")与request("id")是一样得,应该如果不指定REQUEST得集合,首先就会从Querystring搜索.
而如果我们的页面是用的是POST的方法发送数据给test.asp,那么用request.querystring("id")是不行的了(他只能取GET),而要用request.from("id"),而如果还用request("id")他也能取到数据,但先检测QUERYSTRING的值,显然速度就慢了.
下面是个检测的例子你可以看看:
<%
If Request("submit")<>"" then
Response.Write "直接取:"& Request("username") & "<br>"
Response.Write "取Get:" & Request.QueryString("username") & "<br>"
Response.Write "取Post:" & Request.Form("username") & "<br>"
End if
%>
<form name=form1 action="" method=post>
<input type=test name="username" value="postuser">
<input type=submit name="submit" value="test">
</form>
### 关于 ASP 中 `Request.QueryString` 使用整数作为键的合法性 在 ASP 或经典 VBScript 中,`Request.QueryString` 是一个集合,用于接收通过 GET 方法传递的查询字符串参数。根据引用内容[^2],`Request.QueryString` 的键通常是一个字符串名称,表示查询字符串中的参数名。然而,当尝试使用整数作为键时,其行为需要进一步分析。 #### 1. 整数作为键的行为 在 ASP 中,`Request.QueryString` 的键实际上是基于字符串匹配的。如果直接使用整数作为键(例如 `Request.QueryString[1]`),系统会将该整数隐式转换为字符串,并尝试匹配查询字符串中是否存在名为 `"1"` 的参数。因此,从技术上讲,这种用法是合法的,但并不推荐,因为这可能会导致混淆和潜在的错误[^2]。 #### 2. 示例代码 以下代码展示了如何验证 `Request.QueryString` 是否支持整数作为键: ```asp <% Dim intValue, stringValue intValue = Request.QueryString(1) ' 使用整数作为键 stringValue = Request.QueryString("1") ' 使用字符串作为键 If intValue = stringValue Then Response.Write "整数作为键字符串作为键的行为一致。" Else Response.Write "整数作为键的行为字符串不同。" End If %> ``` #### 3. 推荐实践 尽管整数可以作为键使用,但为了代码的可读性和一致性,建议始终使用字符串作为键。例如,如果查询字符串为 `?id=123`,则应使用 `Request.QueryString("id")` 而非 `Request.QueryString(0)` 或其他形式[^2]。 #### 4. 验证请求数据的合法性 无论使用何种键类型,都应验证请求数据的合法性。例如,确保 `id` 参数确实是整数,可以通过以下方式实现: ```asp <% Dim idValue idValue = Request.QueryString("id") If IsNumeric(idValue) Then Response.Write "ID 是一个有效的数字:" & CInt(idValue) Else Response.Write "ID 不是有效数字。" End If %> ``` 上述代码利用了检查函数 `IsNumeric` 来验证 `id` 是否为数字[^4]。 ### 结论 在 ASP 或经典 VBScript 中,`Request.QueryString` 支持整数作为键,但实际操作中会将其转换为字符串进行匹配。因此,虽然合法,但不推荐使用整数作为键,以避免潜在的混淆和错误。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值