Servletでのページ遷移(リダイレクト)
この節では、Servletを使ってページ遷移をする方法を見てみましょう。違うページにリダイレクトするには、HttpServletResponseインタフェースの「sendRedirect()」メソッドを利用します。引数にリダイレクトするページのパスを指定します。
例
response.sendRedirect(“test.html”);
○ ファイル
プロジェクトに次のようなServletを追加してください。
パッケージ名 |
test.servlet |
クラス名 |
RedirectTest |
スーパークラス名 |
javax.servlet.http.HttpServlet |
サンプルダウンロード
○ プログラム
doGetメソッドを追加して、次のようにプログラムを入力してください。
- protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
- //違うページにリダイレクトする
- resp.sendRedirect("JSPTest.jsp");
- }
〇 Webアプリケーション設定ファイルの編集
web.xmlに次の内容を追加してください。
- <?xml version="1.0" encoding="UTF-8"?>
- <web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee"
- xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
- xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee
- http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd"
- version="3.1">
(そのほかの記述…)
- <servlet>
- <servlet-name>RedirectTest</servlet-name>
- <servlet-class>test.servlet.RedirectTest</servlet-class>
- </servlet>
- <servlet-mapping>
- <servlet-name>RedirectTest</servlet-name>
- <url-pattern>/redirecttest</url-pattern>
- </servlet-mapping>
- </web-app>
○ 実行結果
http://localhost:8080/WebApp/redirecttest
実行結果
○ 解説
15行目で、sendRedirectメソッドが記述されているため、サーブレットを呼び出すと自動的に指定したページに遷移します。
リダイレクトは次の手順で遷移します。
リダイレクトの仕組み
この手順ではページを遷移するときに、表示したいページのURLをWebブラウザーに応答として送信し、Webブラウザーはその応答を受け取って、遷移先のURLを要求のアドレスとしてセットします。そのため、WebブラウザーのURLの表示が変わります。その後、セットしたURLを要求して、その結果を受け取り表示します。
前へ 次へ