【Java】リダイレクト:サーブレットからJSPファイルを呼び出す

■リダイレクト

フォワード(*)と同様に、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>

▼実行結果

タイトルとURLをコピーしました