■リダイレクト
フォワード(*)と同様に、MVCモデルで開発する場合、コントローラが処理結果の表示をWebブラウザに表示する際に、サーブレットからJSPファイルを実行するための実現方式である。
(*)フォワードの参照先。
▼リダイレクトの特徴
・同じアプリケーション内だけではなく、ブラウザに別のサーブレットクラスやJSPファイルをリクエストさせ、実行し直す。
・リクエスト/レスポンスは2往復
・リクエスト先のURLで表示される。
■実装するプログラムの概要
サーブレットクラスを直接リクエストして、JSPファイルを表示させる。
▼フローチャート
▼プログラム仕様
インプット | 処理内容 | アウトプット |
---|---|---|
【URL】(※1) | WEB-INF配下のJSPファイルを実行する。 | 【画面表示】 リダイレクトアウトプットページ |
(※1)URLは以下の指定する。
http://localhost:8080/JspServletSample/output_redirect.jsp
注意!!
リダイレクトの場合はリクエスト先のURLになるため、WEB-INF配下のjspファイルを直接参照できない。(404 – エラーになる)
▼画面仕様
▼サンプルコード
・RedirectServlet.java
package 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("/RedirectServlet")
public class RedirectServlet extends HttpServlet {
private static final long serialVersionUID = 1L;
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
// リダイレクト
response.sendRedirect("http://localhost:8080/JspServletSample/output_redirect.jsp");
}
}
・output_redirect.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>リダイレクト</title>
</head>
<body>
<h1>リダイレクトアウトプットページ</h1>
<p>リダイレクトサーブレットクラスから呼び出されたページです。</p>
</body>
</html>
コメント