Servletでのページ遷移(リダイレクト)

この節では、Servletを使ってページ遷移をする方法を見てみましょう。違うページにリダイレクトするには、HttpServletResponseインタフェースのsendRedirectメソッドを利用します。引数にリダイレクトするページのパスを指定します。

resp.sendRedirect("test.html");

○ ファイル

プロジェクトに次のようなServletを追加してください。

パッケージ名 test.servlet
クラス名 RedirectTest
スーパークラス名 javax.servlet.http.HttpServlet

サンプルダウンロード

○ プログラム

doGetメソッドを追加して、次のようにプログラムを入力してください。

RedirectTest.java

  1. package test.servlet;
  2. import java.io.IOException;
  3. import javax.servlet.ServletException;
  4. import javax.servlet.annotation.WebServlet;
  5. import javax.servlet.http.HttpServlet;
  6. import javax.servlet.http.HttpServletRequest;
  7. import javax.servlet.http.HttpServletResponse;
  8. @WebServlet("/redirecttest")
  9. public class RedirectTest extends HttpServlet {
  10.     @Override
  11.     protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
  12.         //違うページにリダイレクトする
  13.         resp.sendRedirect("JSPTest.jsp");
  14.     }
  15. }

○ 実行結果

次のURLを入力して実行してみましょう。

http://localhost:8080/WebApp/redirecttest

実行結果
実行結果

○ 解説

17行目で、sendRedirectメソッドが記述されているため、サーブレットを呼び出すと自動的に指定したページに遷移します。

リダイレクトは次の手順で遷移します。

リダイレクトの仕組み
リダイレクトの仕組み

この手順ではページを遷移するときに、表示したいページのURLをWebブラウザーに応答として送信し、Webブラウザーはその応答を受け取って、遷移先のURLを要求のアドレスとしてセットします。そのため、WebブラウザーのURLの表示が変わります。その後、セットしたURLを要求して、その結果を受け取り表示します。

前へ   次へ