【JSP】【Servlet】ページ遷移の種類

ページ遷移の種類

1) フォワード(RequestDispatcher#forward)
2) インクルード(RequestDispatcher#include)
3) リダイレクト(HttpServletResponse#sendRedirect)

比較

`フォワード`インクルードリダイレクト
転送スピード(*1)速い速い遅い
リクエスト情報引き継ぐ引き継ぐ引き継がない
転送範囲内部サーバのみ内部サーバのみ内部・外部サーバ
転送後に処理が処理元に戻るか処理元に戻らない処理元に戻る

*1:転送スピードについて

フォワード/インクルード

* 1 回のリクエストでいい
1) クライアント [ページX] を要求
2) サーバ  [ページY] を返却

リダイレクト

* リクエストを 2 回送信する必要があるため、パフォーマンスが悪い
1) クライアント [ページX] を要求
2) サーバ [ページY] に リダイレクトするようにクライアントに指示
3) クライアント [ページY] を要求
4) サーバ  [ページY] を返却

構文

1) フォワード

RequestDispatcher dispatcher
  = request.getRequestDispatcher("/Sample.jsp");
dispatcher.forward(request, response);

2) インクルード

RequestDispatcher dispatcher
  = request.getRequestDispatcher("/Sample.jsp");
dispatcher.include(request, response);

3) リダイレクト

response.sendRedirect(request.getContextPath() + "/Sample.jsp");


関連記事

ページ遷移およびパラメータの受け取り ~クエリ文字列編~

http://blogs.yahoo.co.jp/dk521123/32776759.html

ページ遷移およびパラメータの受け取り ~セッション編~

http://blogs.yahoo.co.jp/dk521123/33118263.html