QueryString コレクションは、HTTP のクエリー文字列内の各変数の値、つまり、HTTP 要求の中の疑問符 (?) の後にあるコード値を取得します。たとえば、GET メソッドによるフォームから送られた値を解析します。
Request.QueryString(variable)[(index)|.Count]
variable
HTTP クエリー文字列内にある、取得する変数の名前を指定します。
index
variable の複数の値のうちの 1 つを取得できるようにするための省略可能なパラメータです。1 から Request.QueryString(variable).Count までの整数値を指定できます。
QueryString コレクションは、ServerVariables コレクション内の変数 QUERY_STRING が解析されたものであり、QUERY_STRING の各変数を名前で参照することができます。Request.QueryString(parameter) の値は、QUERY_STRING に出現するすべての parameter の値の配列になります。パラメータの値の数は Request.QueryString(parameter).Count を呼び出して調べることができます。変数に関連付けられているデータ セットが複数でない場合は、個数は 1 になります。変数が見つからない場合には、個数は 0 になります。
複数のデータ セットのうちの 1 つにある QueryString 変数を参照するには、値をインデックスで指定します。パラメータ index には 1 から Request.QueryString(variable).Count までの値を指定できます。index を指定せずに複数の QueryString 変数の 1 つを参照した場合には、データはカンマで区切られた文字列として返されます。
Request.QueryString でパラメータを使うと、サーバーはその要求で送られたパラメータを解析して、指定されたデータを返します。アプリケーションで未解析の QueryString データが必要な場合は、パラメータを指定せずに Request.QueryString を呼び出すことにより取得できます。
ループを使うとクエリー文字列内のすべてのデータ値を解析できます。たとえば、次のような要求が送られたとします。
http://NAMES.ASP?Q=Fred&Q=Sally
そして、Names.asp に次のスクリプトが記述されているとします。
---NAMES.ASP--- <% For Each item In Request.QueryString("Q") Response.Write item & "<BR>" Next %>
すると、Names.asp には次のように表示されます。
Fred Sally
上のスクリプトは、次のように Count を使って記述することも可能です。
<% For I = 1 To Request.QueryString("Q").Count Response.Write Request.QueryString("Q")(I) & "<BR>" Next %>
次のようなクライアント要求があったとします。
/scripts/directory-lookup.asp?name=fred&age=22
QUERY_STRING の値は次のようになります。
name=fred&age=22.
QueryString コレクションには、name および age の 2 つのメンバが格納されます。ここで次のようなスクリプトを使います。
<%= Request.QueryString("name") %> さん、ようこそ。
あなたは <%= Request.QueryString("age") %> 齢ですね。
すると、次の出力が得られます。
Fred さん、ようこそ。あなたは 22 齢ですね。
ClientCertificate、Cookies、 Form、 ServerVariables