[PR]上記の広告は3ヶ月以上新規記事投稿のないブログに表示されています。新しい記事を書く事で広告が消えます。
Servlet による WEB アプリケーションでは画面遷移の方法に redirect(リダイレクト) と forward(フォワード) があります。それぞれの動作の違いとメリット、デメリットについてまとめておきます。
redirect | forward | |
---|---|---|
ソース |
response.sendRedirect("[ページ2]"); |
request.getRequestDispatcher("[ページ2]") |
処理の流れ |
クライアント [ページ1] を要求 ↓ サーバ [ページ2] に redirect 命令を返却 ↓ クライアント [ページ2] を要求 ↓ サーバ [ページ2] を返却 |
クライアント [ページ1] を要求 ↓ サーバ [ページ2] を返却 |
パフォーマンス | 悪い (リクエストを 2 回送信する必要がある) | 良い (通常通り 1 回のリクエストで良い) |
リクエスト情報 | 引き継がない (全く別の 2 つのリクエストの為) | 引き継ぐ (同一の 1 つのリクエストの為) |
転送可能範囲 | 外部サーバも OK | 同一サーバ内のみ |
同一サーバー内の処理には出来るだけ forward を使用する事。 別サーバーに転送したい時だけ redirect を使用するように心がける