こんちゃ(´・ω・)ノ
今回はServletで使用する、フォワードとリダイレクトについて。
◆フォワード
【書き方】
RequestDispatcher dispatch = request.getRequestDispatcher({ページ});
dispatch.forward(request, response);
【順序】
①クライアントからサーバにリクエストを送信
[クライアント]→(リクエスト)→[サーバ]
②サーバ内部で別のページ処理に転送する。
[サーバ.ページ1→ページ2]
③別のページ処理からページ結果が返ってくる。
[クライアント]←(ページ結果)←[サーバ.ページ2]
【レスポンス】
速い(サーバ内でリクエストを引き継いでページ遷移)
【リクエスト情報】
引き継げる
【URL】
最初のリクエストしたURLから変わらない
◆リダイレクト
【書き方】
rsponse.sendRedirect({ページ});
【順序】
①クライアントからサーバにリクエストを送信する。
[クライアント]→(リクエスト)→[サーバ]
②リダイレクト先の情報をレスポンスでクライアントに返す。
[クライアント]←(リダイレクト先情報)←[サーバ]
③クライアントは受け取ったリダイレクト先情報から新たにリクエストを送信する。
[クライアント]→(リダイレクト先へのリクエスト)→[サーバ]
④サーバは受け取ったリクエストからページ結果を返す。
[クライアント]←(ページ結果)←[サーバ]
【レスポンス】
遅い(クライアントに再度リクエストを送信させてページ遷移)
通信が多くなるため、フォワードより遅くなる。
【リクエスト情報】
引き継げない
【URL】
リダイレクトしたページのURLに変わる。
◆まとめ
フォワードは内部でページ遷移のやり取りを行う。
リダイレクトはクライアントに違うページにアクセスするように指示する。
とまぁこんな感じ。
なかなか書いていくと表現が難しい。
まだまだ努力が必要みたい。
[0回]
PR
COMMENT