Javaに関する様々な情報をご紹介します。

Javaに関する様々な情報をご紹介します。
評価

0

POSTとREDIRECTの違い

Aサーバから、BサーバのBサーブレットを呼び出す際に、
AサーバのA.jspからaction="http://B/BServlet"のpostでsubmit()を行うのと、
AサーバのA.javaからsendRedirect("http://B/BServlet")を行うのではなにが違うのでしょうか?

ちなみに、Bサーバから再びAサーバに戻ってくる予定です。

実装するにはどちらが、適正なのでしょうか?

よろしくお願い致します。

6

回答

11329

閲覧

6件の回答

評価

0

ぜんぜん違う。
そもそもpostとredirectは同列にあるものじゃない。

前者はブラウザの表示後にpostでBServletへ飛ぶ。
後者はブラウザがレスポンスを受け取った時点で表示まで行かずにgetでBServletへ飛ぶ。

どっちが適正かなんてそのページによるとしか言えない。

評価

0

ご回答ありがとうございます。

教えていただいたような動きをしていることは
理解できました。

値の受け渡しなども、hiddenでパラメータを持つかURLの後ろに?〜でパラメータ設定することもわかります。

その後の処理のことも考えて、requestやsessionなどの違いはあるのでしょうか?


簡単なプログラムを作成した感じでは、違いが見受けられなかったため、何かご教授いただけたらと思います。



よろしくお願いします。

評価

0

本当に読んだんだろうか…。

そもそも同列に並べられるものじゃないのに、「違いは何か」という質問自体がおかしい。

何を聞きたいのかが受け取れないけど、request/sessionについて知りたいのなら、requestは毎回の送信時に用意されるし、sessionはなんらかのID情報(Tomcat標準ならjsessionid cookie)を元に作られるのだから、それを元に考えてみたら。


>hiddenでパラメータを持つか
これはHTMLのフォームの書き方の話で、直接postを意味するものじゃないよ。
hiddenパラメータがgetになることもあるし。

評価

0

ありがとうございます。

まだ、別物ということはわかりますが、同列ではないと言う事自体が理解できていないと思います。

javaから別サーバのサーブレット(http://B/BServlet)を呼び出しているサーブレットクラスと、
一度jspを呼び出しonLoadにて別サーバのサーブレット(http://B/BServlet)を呼び出しているものが存在し、

何の意図があってこのパターンが存在しているかわからなかったのでお聞きしました。


評価

0

そんなの、作った人に聞くしかないんでわ。

評価

0

postと同列なのはgetで、これはリクエストの方式の話。
redirectはクライアントにリダイレクトを促す指示で、これはレスポンスの設定値の話。
そういう意味で同列でないと言っているんだけど…。

意図については不良社員氏の書かれているとおり。

質問から6ヶ月以上経過しているので、回答を書き込むことはできません。