Java プログラムメモ


トップ

redirect と forward の違い

Servlet による WEB アプリケーションでは画面遷移の方法に redirect(リダイレクト)forward(フォワード) があります。それぞれの動作の違いとメリット、デメリットについてまとめておきます。

redirect forward
ソース response.sendRedirect("[ページ2]"); request.getRequestDispatcher("[ページ2]")
.forward(request, response);
処理の流れ
クライアント [ページ1] を要求
     ↓
サーバ  [ページ2] に redirect 命令を返却
     ↓
クライアント [ページ2] を要求
     ↓
サーバ  [ページ2] を返却
クライアント [ページ1] を要求
     ↓
サーバ  [ページ2] を返却
パフォーマンス 悪い (リクエストを 2 回送信する必要がある) 良い (通常通り 1 回のリクエストで良い)
リクエスト情報 引き継がない (全く別の 2 つのリクエストの為) 引き継ぐ (同一の 1 つのリクエストの為)
転送可能範囲 外部サーバも OK 同一サーバ内のみ

同一サーバー内の処理には出来るだけ forward を使用する事。 別サーバーに転送したい時だけ redirect を使用するように心がける


プログラムメモ アフリカ雑貨・珈琲豆・アールブリュット作品 マゴソスクール クラウドファンディング
SEO [PR] 爆速!無料ブログ 無料ホームページ開設 無料ライブ放送