3 - 3 - 3 : forward と redirect

JSPの forward と redirect の動作の違いをはっきり覚えておく必要がある。なぜか自分はよく混同してしまう。

まずは forward のサンプルを。

[JspForwardRedirect1.jsp]

JspForwardRedirect1.jsp にアクセスするとサーバ内で top.html へのリクエストし、そのレスポンスを JspForwardRedirect1.jsp へのアクセス結果として返す。
そのためブラウザのURLは JspForwardRedirect1.jsp にアクセスしたままになる。

そしてredirectのサンプル。

[JspForwardRedirect2.jsp]

<% response.sendRedirect("top.html"); %>

JspForwardRedirect2.jsp にアクセスするとブラウザに対して「top.html へリダイレクトしなさい」というHTTPステータスコードが返され、ブラウザが再度 top.html を読みにいく。

この動作と、ネットワーク環境(PCか携帯電話か?)を考慮すればどちらを利用すればいいか判断できる。

ちなみに redirect の方は他のサイトへ飛ばすことができるが、 forward ではできない。

可能
<% response.sendRedirect("http://msn.co.jp"); %>
不可

この二つをはっきり区別してイメージ的に覚える方法はないか?...
redirect はブラウザにHTTPコードを返すので、「ブラーリ」(ブラウザにリダイレクト)と覚えようか。