Webプログラミング入門③ JSP-Javaの連携

今回はJSPとJavaを連携してJavaで設定した値をJspの画面に表示をしていきたいと思います。

今回も新しく動的Webプロジェクトを作成していきましょう。今回のプロジェクト名は「JPrintProject」としましょう。

次にクラスを作成です。クラス名は「JPrintTest」として作成しましょう。
クラスを作成したら以下のようにコードを修正してください。

import java.io.IOException;

import jakarta.servlet.ServletContext;
import jakarta.servlet.ServletException;
import jakarta.servlet.http.HttpServlet;
import jakarta.servlet.http.HttpServletRequest;
import jakarta.servlet.http.HttpServletResponse;

public class JPrintTest extends HttpServlet {

	/**
	 * デフォルトコンストラクタ
	 */
	public JPrintTest() {
	}

	/**
	 * Http通信のGet用メソッド
	 * 
	 * @param request Httpリクエスト
	 * @param response Httpレスポンス
	 * @throws ServletException サーブレット例外
	 * @throws IOException 入出力例外
	 */
	protected void doGet(HttpServletRequest request, HttpServletResponse response)
			throws ServletException, IOException {

		request.setAttribute("JContent", "Hellow JPrint");
		ServletContext sc = getServletContext();
		sc.getRequestDispatcher("/WEB-INF/JPrint.jsp").forward(request, response);
	}
}

今回追加された箇所は「request.setAttribute(“JContent”, “Hellow JPrint”);」の箇所。
これは、”JContent”という名前で”Hellow JPrint”という文字を登録しますよというような意味です。
今回はこの設定した文字をJSPで受け取れるようにします。
JSPのファイル「JPrint.jsp」を前回と同様「WEB-INF」の配下に作成して以下のようなコードに修正しましょう。

<%@ page contentType="text/html; charset=UTF-8"%>
<!DOCTYPE HTML>
<html lang="ja">
	<head>
		<meta charset="UTF-8">
	</head>
	<body>
		<p>Hello JSP</p>
		<p>Javaで設定された内容:${JContent}</p>
	</body>
</html>

JSPの「${JContent}」${}の中にJava側で設定した名前を書くことで対応する値を取得します。
今回は”Hellow JPrint”という文字を設定したので、この場所にこの文字が出力されれば成功です。

次にweb.xmlの設定です。web.xmlを開いて以下のように設定しましょう。

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="https://jakarta.ee/xml/ns/jakartaee" xmlns:web="http://xmlns.jcp.org/xml/ns/javaee" xsi:schemaLocation="https://jakarta.ee/xml/ns/jakartaee https://jakarta.ee/xml/ns/jakartaee/web-app_5_0.xsd http://xmlns.jcp.org/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd" id="WebApp_ID" version="5.0">
  <display-name>JPrintProject</display-name>
  <welcome-file-list>
    <welcome-file>index.html</welcome-file>
    <welcome-file>index.jsp</welcome-file>
    <welcome-file>index.htm</welcome-file>
    <welcome-file>default.html</welcome-file>
    <welcome-file>default.jsp</welcome-file>
    <welcome-file>default.htm</welcome-file>
  </welcome-file-list>
  <servlet>
 	<servlet-name>Jprint</servlet-name>
 	<servlet-class>JPrintTest</servlet-class>
 </servlet>
 <servlet-mapping>
 	<servlet-name>Jprint</servlet-name>
 	<url-pattern>/</url-pattern>
 </servlet-mapping>
</web-app>

ここまででプログラムは完成ですので、早速実行していきましょう。
実行するクラスを右クリックして[実行]-[サーバーで実行]から「Tomcat10_Java17」を選択して完了を押下しましょう。

無事Java側で設定した文字列”Hellow JPrint”が表示されました。
これでJavaから設定した文字列をJSPに連携する方法がわかりました。

今回は少し短いので珍しく演習をしてみましょう。
上記画面で表示されている「Javaで設定された内容:Hellow JPrint」の下に新しく以下の文字列を追加で表示するようにしてください。
Java課題で設定された①:JPrint-Subject1
※「Java課題で設定された①:」はJSPで表示し、「JPrint-Subject1」はJavaのプログラムから連携するようにしてください。
答えはまた次回!

今回はここまで。次回はJSPの画面遷移について勉強しましょう。
前回:Webプログラミング入門② JSP画面の表示
次回:Webプログラミング入門④ JSPの画面遷移

コメント

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