- 締切済み
サーブレット GETからPOST送信
はじめまして。 JAVA初心者です。 現在、サーブレットにおいてGETメソッドで受け取ったリクエストを、POST送信で他のサーブレットにパラメータを渡してフォワードする、アプリケーションを考えています。 このような処理を行なった経験のある方、お手数ですが、方法又は参考サイトなど、ご教授いただけませんでしょうか。 ちなみに、パラメータをhiddenで持たすJSPを間に入れる方法では、上手くいくようですが、JSPなしで直接送ることはできないでしょうか。
- みんなの回答 (2)
- 専門家の回答
みんなの回答
- auty
- ベストアンサー率58% (284/486)
経験が少ない者ですが、質問者様の述べられている事の中の語句の使い方に混乱があるようなので説明させていただきます。 ・ データの受け渡しに関してですが、ここでは2種類が取り上げられていると思います。 1.サーブレットとサーブレット間(jspを含む。) 2.WebブラウザとWebサーバ間(HTTPプロトコルによるもの。) ・ 1.のサーブレット間の場合、javaサーブレットではフォワードとリダイレクトが準備されています。 フォワードは、すでに、anmochi様の述べられている通りでこの方法が最も早く良く使われている方法です。この場合、データはrequest属性に保存されます。 リダイレクトは、クライアントとの間を往復することになり(このときHTTPが使われると思いますが)余分なトラフィックが発生します。その結果クライアントからは。URLの遷移を見ることが出来ます。この場合、データはsession属性に保存出来ます。 ・ 2.の場合、POSTという語句は、HTTPプロトコルのメソッドの1つとして含まれるということです。 ・ したがって、何か新しいことをしようとしているのでなければ、 >>> サーブレットにおいてGETメソッドで受け取ったリクエストを、POST送信で他のサーブレットにパラメータを渡してフォワードする は、「POST送信で」をはずして、 >>> サーブレットにおいてGETメソッドで受け取ったリクエストを、他のサーブレットにパラメータを渡してフォワードする としたほうがよく、 >>> パラメータをhiddenで持たすJSPを間に入れる方法 は、1.の問題を わざわざ2.のHTTPプロトコルを使って解決しようとすることになると思います。 結局今回は、サーブレットにおけるフォワードの仕方を正確に知るということになるのでしょうか。
- anmochi
- ベストアンサー率65% (1332/2045)
フォワード「される」サーブレットはどこにあるのだろうか。もし、同じ場所(同一のサーブレットコンテナ内)にあるのなら、メソッドをPOSTに変更するまでもなくそのままRequestDispatcher経由でフォワードをすれば良いと思うけど。コンテキストをまたがるフォワードはコンテナの設定にもよるけど。 PROXYサーバのようなものを意図しているのであればURLクラスとHttpUrlConnectionクラスを調べてみると良いだろう。
お礼
早速のご返答ありがとうございます。 同一のサーブレット内で実現するつもりです。 もう一度良く、調べてみます。
お礼
回答、ありがとうございます。 そうなんです、そもそもサーブレットの知識自体が危ういものでした。 細かい説明、本当に感謝いたします。 自分でも、もう少し内容を整理し勉強をし直したいと思います。