別のURLにリダイレクトする

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

例:

100.20.3.45:8085/myproject/index.jsp

に行く

100.20.3.45.8085/myproject/process.jsp

処理後は 100.20.3.46 になります。

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

2

1 答え

これは「リダイレクト」と呼ばれています。これは HttpServletResponse#sendRedirect() をクリックします。

response.sendRedirect(url);

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

Alternatively, you can also just let the <form> action URL point to that different host directly without the need for an intermediate JSP. As another alternative, you could also play for proxy yourself with help of for example URLConnection.


Unrelated to the concrete problem: having controller/business logic in JSPs is a bad practice. I suggest to take some time to learn about servlets.

5
追加された
別のホスト/ドメインに転送することはできません。あなたは最高の状態で別の状況に進むことができます。実際のリダイレクトがあなたの最善の策です。
追加された 著者 BalusC,
具体的な機能要件が不明確である限り、それは不可能です。しかし、間違った方向で解決策を探しているだけで、実際にはかなり良い可能性があります。将来、問題を解決する方法ではなく、問題を解決する方法を尋ねてみてください。実際の問題に対する正しい解決策であると思っています。
追加された 著者 BalusC,
回答(更新された答えを確認しましたか?)、リクエストパラメータとして渡してください。
追加された 著者 BalusC,
はい、私はそれを理解しました。しかし、なぜあなたはその異なるホストに直接提出していませんか?さらに、異なるホストがまったく処理に関与していない場合、異なるホストにデータが表示されるのはなぜですか?
追加された 著者 BalusC,
さて、あなたは単なるネットワーク問題です。これはJavaコードでは解決できません。それをネットワーク管理者に報告して、彼にそれを解決させてください。
追加された 著者 BalusC,
お返事ありがとうございますが、response.sendRedirect( "")によって、リダイレクトだけが表示されますが、これを試していますが、エラーが発生しています:String nextJSP = "/100.20.3.46/cy/process。 jsp "; RequestDispatcherディスパッチャ= getServletContext()。getRequestDispatcher(nextJSP); dispatcher.forward(リクエスト、レスポンス);
追加された 著者 sujit,
@BalusC .... ok ...どうすればいい?私はJavaのWebserviceでそれを達成することはできますか?
追加された 著者 sujit,
response.sendRedirect( "")私は別のページにリダイレクトしていますが、処理後にリダイレクトされたページに値を表示できますか?どのようにそれを行うことができますか?
追加された 著者 sujit,
ok私はここで私の問題を精緻化しています:私はindex.jspを持ってindex.jspコントロールからサーブレットに行き、index.jspページコントロールから得たデータを処理した後、別のページにリダイレクトさせてみましょう:response.sendRedirect "result.jsp");このprocess.jspにリダイレクトするのではなく、そのコントロールが別のホストにリダイレクトされ、そこにデータが表示されます。
追加された 著者 sujit,
ええ、お元気ですか?私はあなたに何か問題が起きたらどうなるか聞いてみましょう。
追加された 著者 sujit,
そのホストが私のLANにない場合、私は別のホストでどのように実行できますか?同じdnsサーバーとは別の場所にあるホストで、別のホストはどこか他の場所ですが、私のアクションで別のホストのURLを指定すると、そのホストに接続できないというエラーが発生しています。
追加された 著者 sujit,
OK ...私は解決しようとしています。
追加された 著者 sujit,