Java サーブレット(基礎編② サーブレットクラスからJSPファイル呼び出し)
■サーブレットクラスからJSPを呼び出し、ブラウザに出力する方法(フォワード・リダイレクト)
前回の内容はこちら→Java サーブレット(基礎編① doGet() ⇒ HTML)
事前準備
前回までに作成していたサーブレットクラス(Login.java)のdoGet()メソッドの内容を削除しておく
※ここから開始する場合は下記のようにdoGet()メソッドのみのサーブレットクラスを作成しておく
①JSPファイルを格納する為に「WebContent/WEB-INF」配下に「jsp」フォルダーを作成
②JSPファイルを作成して①で作成したフォルダーに格納
Ⅰ.「WEB-INF」を右クリックし、「新規」⇒「JSPファイル」を押下
Ⅱ.任意のファイル名を入力しつ「次へ」を押下
Ⅲ.新規JSPファイル(html 5)を選択し、「完了」を押下
③②で作成したJSPファイルに適当な内容を記述
今回は下記内容を記述
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>login</title>
</head>
<body>
<p>サーブレットの基礎</p>
<p>サーブレットクラスからJSPファイルを呼び出し</p>
<p>JSPファイルの内容をブラウザに出力</p>
</body>
</html>
④フォワードでサーブレットクラスからJSPを呼び出す
サーブレットクラスからJSPを呼び出す方法としてフォワードとリダイレクトがあり、まずはフォワードで呼び出してみる
・フォワードのポイント
ポイント1:アドレスバーに表示されるURLは変わらない
ポイント2:同じプロジェクト内でないとフォワードできない
・フォワードの構文
※「javax.servlet.RequestDispatcher;」のインポートが必要
import javax.servlet.RequestDispatcher;
.
.
.
RequestDispatcher dispatcher = request.getRequestDispatcher(<WebContentより後のパス>);
dispatcher.forward(request, response);
⑤サーバーを起動後、サーブレットクラス(Login.java)を実行して、JSPファイル(login.jsp)が呼び出されることを確認
⑥リダイレクトで呼び出す
※リダイレクト用のサーブレットクラスを新たに作成しておく(今回はRedirect.javaを作成している)
Ⅰ.リダイレクトで同一アプリケーションサーバーのサーブレットクラスを呼び出す構文
ポイント1:アドレスバーに表示されるURLはリダイレクト先のURL
response.sendRedirect(<プロジェクト名/URLパターン>);
「Redirect.java」を実行して確認
Ⅱ.リダイレクトで同一アプリケーションサーバーのJSPファイルを呼び出す構文
ポイント1:アドレスバーに表示されるURLはリダイレクト先のURL
※ブラウザから直接リクエストできるように、JSPファイルの格納場所をWEB-INF直下に変更する
response.sendRedirect(<プロジェクト名/WebContentより後のパス>);
「Redirect.java」を実行して確認
ちなみにリダイレクト先が同一アプリケーションサーバーでない場合はフルパスで記述する
response.sendRedirect(<フルパス>);
次回はフォーム画面で入力した値をサーブレットクラスで取得・表示する方法を解説する
⇒Java サーブレット(基礎編③ フォーム)