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

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

response.sendRedirect(“test.html”);

○ ファイル

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

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

サンプルダウンロード

○ プログラム

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

  1. protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
  2.  //違うページにリダイレクトする
  3.  resp.sendRedirect("JSPTest.jsp");
  4. }

〇 Webアプリケーション設定ファイルの編集

 web.xmlに次の内容を追加してください。

  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee"
  3.   xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  4.   xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee
  5.   http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd"
  6.   version="3.1">
(そのほかの記述…)
  1.  <servlet>
  2.   <servlet-name>RedirectTest</servlet-name>
  3.   <servlet-class>test.servlet.RedirectTest</servlet-class>
  4.  </servlet>
  5.  <servlet-mapping>
  6.   <servlet-name>RedirectTest</servlet-name>
  7.   <url-pattern>/redirecttest</url-pattern>
  8.  </servlet-mapping>
  9. </web-app>

○ 実行結果

http://localhost:8080/WebApp/redirecttest

実行結果
実行結果

○ 解説

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

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

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

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

前へ   次へ