質問: Webプログラミング初心者です。 本当に初歩的な質問で失礼します。 以下のようにname属性を配列で合わせることによってGET送信で全て送信できますが ``` ``` イメージは、こんなURIになると思っていました。 http://sample/xxx?data[] ですが実際のURIがはこんな風になりました。 http://sample/xxx?data[]=a&data[]=b&data[]=c 上記のようなURIになるのは、正しいのでしょうか? 正しいとした場合、「クエリ文字列部分は単なる文字列でしかないため」でしょうか?? 配列の数だけURIがどんどん長くなるため少し嫌だなぁと思いました・・・。
回答: > > http://sample/xxx?data[]=a&data[]=b&data[]=c > > > 正しい挙動です。 同一form内で同名でRequestParameterを送信された場合、サーバサイドで受け取るときに配列として扱われます。 javaの場合だと、Request#getParameterValues([パラメータ名])でString(文字列)の配列として受け取れますね。 > > 配列の数だけURIがどんどん長くなるため少し嫌だなぁと思いました・・・。 > > > 「?」から後ろの部分はURLの「クエリ」と呼ばれる部分です。 formのmethod指定を「Get」で送る場合はこの部分がだらだらと長くなりますが、サーバによって文字数の上限があるので注意が必要です。 「Post」だとURLの文字列としては見えなくなりますが、この文字数制限から解放されます。