Servletでのページ遷移(リダイレクト)
この節では、Servletを使ってページ遷移をする方法を見てみましょう。違うページにリダイレクトするには、HttpServletResponseインタフェースのsendRedirectメソッドを利用します。引数にリダイレクトするページのパスを指定します。
例
resp.sendRedirect("test.html");
○ ファイル
プロジェクトに次のようなServletを追加してください。
パッケージ名 | test.servlet |
---|---|
クラス名 | RedirectTest |
スーパークラス名 | javax.servlet.http.HttpServlet |
○ プログラム
doGetメソッドを追加して、次のようにプログラムを入力してください。
RedirectTest.java
- package test.servlet;
- import java.io.IOException;
- import javax.servlet.ServletException;
- import javax.servlet.annotation.WebServlet;
- import javax.servlet.http.HttpServlet;
- import javax.servlet.http.HttpServletRequest;
- import javax.servlet.http.HttpServletResponse;
- @WebServlet("/redirecttest")
- public class RedirectTest extends HttpServlet {
- @Override
- protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
- //違うページにリダイレクトする
- resp.sendRedirect("JSPTest.jsp");
- }
- }
○ 実行結果
次のURLを入力して実行してみましょう。
http://localhost:8080/WebApp/redirecttest
○ 解説
17行目で、sendRedirectメソッドが記述されているため、サーブレットを呼び出すと自動的に指定したページに遷移します。
リダイレクトは次の手順で遷移します。
この手順ではページを遷移するときに、表示したいページのURLをWebブラウザーに応答として送信し、Webブラウザーはその応答を受け取って、遷移先のURLを要求のアドレスとしてセットします。そのため、WebブラウザーのURLの表示が変わります。その後、セットしたURLを要求して、その結果を受け取り表示します。