今回は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の画面遷移
コメント