2011-12-19 22 views
2

私はindex.jspから3つのJSPページがあり、コントロールはprocess.jspに行き、実行制御の後にresult.jspからデータを表示するアプリケーションが1つあります。しかし、私はresult.jspにデータを表示する代わりに、コントロールが別のURLに移動して、その受信者のURLが要求されたデータを取得するようにします。つまり:私のURLは100.20.3.45:8085/myproject/index.jspです。データを処理した後、結果は同じネットワークの別のURL、つまり100.20.3.46に送られます。要求されたデータをこの別のURLにどのように送信できますか?別のURLにリダイレクト

例:

100.20.3.45:8085/myproject/index.jsp 

は、処理制御後

100.20.3.45.8085/myproject/process.jsp 

に行く

100.20.3.46に行きます。

どうすればこのデータを別のURLに送信できますか?このメカニズムは何と呼ばれていますか?

答えて

3

「リダイレクト」と呼ばれています。それはHttpServletResponse#sendRedirect()によって達成されるはずです。

response.sendRedirect(url); 

あなたが一緒に追加のデータを送信する場合は、クエリ文字列でリクエストパラメータ(複数可)として送信する必要があると思いますが、彼らは、ブラウザのアドレスバーにURLに表示されます。それが手頃でない場合は、それを共有データストア(データベース?)に格納し、それに一意のキーだけを渡すことを検討してください。

また、中間のJSPを必要とせずに、アクションURLがその別のホストを直接指し示すようにすることもできます。また別の方法として、例えばURLConnectionの助けを借りて代理人のためにプレーすることもできます。具体的な問題に無関係


:JSPでコントローラ/ビジネス・ロジックを有するbad practiceあります。私はservletsについて学ぶ時間を取ることを提案します。

+0

返信ありがとうございますが、response.sendRedirect( "")ではリダイレクトだけですが表示する値はありませんが、これを試していますがエラーが発生しています:String nextJSP = "/100.20.3.46/cy /process.jsp "; RequestDispatcherディスパッチャ= getServletContext()。getRequestDispatcher(nextJSP); dispatcher.forward(request、response); – sujit

+0

別のホスト/ドメインに転送することはできません。あなたは最高の状態で別の状況に進むことができます。実際のリダイレクトがあなたの最善の策です。 – BalusC

+0

@BalusC .... ok ...どうすればいいですか?私はJavaのWebserviceでそれを達成することはできますか? – sujit

関連する問題