- PR -

POSTリクエストでQueryString

1
投稿者投稿内容
mm
会議室デビュー日: 2003/09/03
投稿数: 16
投稿日時: 2003-09-07 23:57
こんばんは。
もしかするとすごく簡単なことなのかもしれませんが。
リクエストでGETの場合、getQueryStringで?以降のものを
順番をそのままに取得できます。

http://www.localhost.jp?name=a&name2=b
getQueryString=name=a&name2=b

POSTの場合はgetQueryStringにはnullがかえります。
これはポストだと?以降がないので当たり前ですが。
いろいろとドキュメントを調べては見たのですが
これに対応するものが見つかりませんでした。

ご教授いただければと思います。
よろしくお願いします。
mm
会議室デビュー日: 2003/09/03
投稿数: 16
投稿日時: 2003-09-08 00:01
すみません。
内容がよくわからない感じになってしましました。

知りたいことはPOSTリクエストにて
行われた場合にQueryStringと同じ内容の
Stringを取得するには何か方法はないものかと
思っています。

今は並びをみてgetParameterで取得して
並べている状況です。
何かいい方法がないものかと思いまして書かせていただきました。

よろしくお願いします。


uk
ぬし
会議室デビュー日: 2003/05/20
投稿数: 1155
お住まい・勤務地: 東京都
投稿日時: 2003-09-08 00:03
引用:

mmさんの書き込み (2003-09-08 00:01) より:
知りたいことはPOSTリクエストにて
行われた場合にQueryStringと同じ内容の
Stringを取得するには何か方法はないものかと
思っています。

今は並びをみてgetParameterで取得して
並べている状況です。



それしか方法はないと思います。
raystar
ぬし
会議室デビュー日: 2003/01/16
投稿数: 251
お住まい・勤務地: Tokyo/Japan
投稿日時: 2003-09-08 00:56
引用:

知りたいことはPOSTリクエストにて
行われた場合にQueryStringと同じ内容の
Stringを取得するには何か方法はないものかと
思っています。

今は並びをみてgetParameterで取得して
並べている状況です。
何かいい方法がないものかと思いまして書かせていただきました。

よろしくお願いします。



getを無効化したいのでしょうか?
ならば、 doGet()を記述せずに doPost() に
getParameter()メソッドを記述すればよいはず。
mm
会議室デビュー日: 2003/09/03
投稿数: 16
投稿日時: 2003-09-08 09:09
uk様、raystar様
返信ありがとうございます。

GETリクエストを無効にしたいという意味になります。
しかし、Queryの並びはそのまま取得したいと考えて
おり、その部分でPOSTの際にgetQueryStringと同じ内容を
取得できないかと思っておりました。

やはり並びを見てgetParameter()にて取得するしか
方法はないようですね。

もっとうまくできる方法がありそうな気がしたのですが。



taku
ぬし
会議室デビュー日: 2002/11/12
投稿数: 918
お住まい・勤務地: 墨田区→中野区
投稿日時: 2003-09-08 09:36
引用:

mmさんの書き込み (2003-09-08 09:09) より:
uk様、raystar様
返信ありがとうございます。

GETリクエストを無効にしたいという意味になります。
しかし、Queryの並びはそのまま取得したいと考えて
おり、その部分でPOSTの際にgetQueryStringと同じ内容を
取得できないかと思っておりました。

やはり並びを見てgetParameter()にて取得するしか
方法はないようですね。

もっとうまくできる方法がありそうな気がしたのですが。


 javax.servlet.ServletRequest#getParameterNames()を使用すれば、
リクエストに含まれる全パラメーターの名前を取得することができます。
http://java.sun.com/j2ee/sdk_1.3/ja/techdocs/api/javax/servlet/ServletRequest.html#getParameterNames()
ろろ
会議室デビュー日: 2003/06/11
投稿数: 1
投稿日時: 2003-09-18 00:01
BufferedReader br = new BufferedReader(new InputStreamReader(request.getInputStream()));
String query = br.readLine();
br.close();

というように、HttpServletRequest#getInputStream()を
使えば取得できると思います。
昔使ったコードなのでたぶん大丈夫だとは思います。

ただ、2年間ほとんどJavaにさわっておらず、久しぶりの
Javaでの開発のため、たまたまこの会議室を見ていて思い
出した程度で、すっかりなまくらになっているもので、
本当に大丈夫かどうか心配ですが(汗)
mm
会議室デビュー日: 2003/09/03
投稿数: 16
投稿日時: 2003-09-25 01:23
ろろ様

ご返信ありがとうございます。
しばらく会議室に来ていなかったので
返信がおくれてすみません。

早速試してみます。

ありがとうございました。

1

スキルアップ/キャリアアップ(JOB@IT)