プログラミング逆引き辞典

~ 多言語対応のプログラミングレシピ ~

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 サーブレット(基礎編③ フォーム)