サーブレットで処理をしたあと、特定のページに飛ばしたかったりする場合、リダイレクトを行います。
例えば、ログイン・ログアウトした後にトップページに遷移したりする場合に使います。
応用編では、PRG(Post/Redirect/Get)パターンのような使い方もありますが、まずは基本からw
リダイレクトとは?
リダイレクトは、ブラウザに別URLへ飛ぶように指示することです。
よって、リダイレクトされると、ブラウザに表示されるURLも、リダイレクト先に変わります。
※フォワードは、ブラウザへ応答することなく、内部的に次のサーブレット等に処理を引き継ぎますが、リダイレクトでは、一度処理を終わらせてブラウザに制御を戻したうえで、再度別URLへ自動で遷移します。
サーブレットから別のサーブレットやJSPへリダイレクトするサンプル
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | import java.io.IOException; import javax.servlet.ServletException; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; public class ForwardTestServlet extends HttpServlet { @Override protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { //ログイン・ログアウト等の処理 //・・・ //リダイレクト response.sendRedirect("http://www.example.com"); } } |
実行結果
サーブレットで、何らかの処理(例:ログイン・ログアウト等の処理)を行ったあとに、自動でhttp://www.example.comへリダイレクトします。
サンプルの解説
HttpServletResponse#sendRedirect(String)を使って、リダイレクトを行います。
飛ばしたいURLを引数にセットすることで、ブラウザにリダイレクトを行うよう指示します。
サーブレットからJSPへフォワードするする方法は・・?
サーブレットからJSPへフォワードするする方法は、こちらを見てください。