Servlet Redirect パラメーター 送信 方法について、
Webシステムの作成学習の補佐を行なっている時に、
たまに質問を頂くのでメモをしておこうと思います。
Redirect リダイレクトでパラメーターを送信する方法
Redirect(リダイレクト)は、文字列としてURLを渡す形でしか実装できないので、
以下のように、sendRedirectメソッドに渡すURLの文字列に、パラメーターも含めて渡します。
HttpServletResponse.sendRedirect(request.getContextPath() + “URL?パラメータ=” + 値);
例、
// HttpServletResponse response response.sendRedirect(request.getContextPath() + "/account/show?id=" + a.getId());
Redirect リダイレクト について
Redirect(リダイレクト)は、エラーページへ飛ばすとか、特定のページへ遷移させる場合に利用します。
また、Forward(フォワード)で行えない、別のサーバーも遷移先に指定する事ができます。
ただ、処理の流れで、リクエスト・レスポンスを2回行うので、
Forward(フォワード)よりも遅い事と、ブラウザに表示されるURLが変化します。
インタフェース HttpServletResponse sendRedirect
Forward フォワード について
Forward(フォワード)は、一般的な画面遷移の実装に利用します。
同一サーバー内の遷移しか実装できませんが、Redirect(リダイレクト)より、
処理がシンプルで、処理が早いですし、
実装上でも、paramを設定する場合に、URLに文字列で設定したりせずに、
HttpServletRequestで提供されている機能を利用できるので便利です。
インタフェース RequestDispatcher forward
以上が、Servlet Redirect パラメーターを送信する方法のメモになります。
細かな内容を抑えておらず、簡単な概要程度のメモになりますが、ご了承ください。