今回はJSPを使用したWeb画面の表示をしていきたいと思います。
そもそもJSPとはJavaServer Pageの略で、簡単に説明するとHTMLでJavaを使用できるようにしたものです。詳しく知りたい方は調べてみてください。
それでは早速、JSPを表示させるプロジェクト作成からしていきましょう。
[ファイル]-[新規]-[動的 Web プロジェクト]から、プロジェクト名を「WebJspProject」として作成します。手順は前回と同様で「web.xml デプロイメント記述詩の生成」はチェックしてください。

次にクラスを作成です。クラス名は「JspTest」として作成しましょう。
クラスを作成したら以下のようにコードを修正してください。
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 JspTest extends HttpServlet {
/**
* デフォルトコンストラクタ
*/
public JspTest() {
}
/**
* Http通信のGet用メソッド
*
* @param request Httpリクエスト
* @param response Httpレスポンス
* @throws ServletException サーブレット例外
* @throws IOException 入出力例外
*/
protected void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
ServletContext sc = getServletContext();
sc.getRequestDispatcher("/WEB-INF/Hello.jsp").forward(request, response);
}
}
お察しの方もいるかと思いますが、29行目に記載した(””)の中に書いたJSPファイルを表示するというプログラムになっています。まだ記載した「/WEB-INF/Hello.jsp」が存在しないの作成しましょう。
プロジェクトの[src]-[main]-[webapp]-[WEB-INF]と辿って右クリックし、[新規」-[ファイル]を押下します。

新規ファイル作成の画面が表示されたらファイル名に先ほど表示させる記述をした「Hello.jsp」と入力し、完了を押下してください。

完了するとWEB-INF配下にHello.jspが作成されます。
ファイルが作成されたら以下のようにコードを入力してください。
<%@ page contentType="text/html; charset=UTF-8"%>
<!DOCTYPE HTML>
<html lang="ja">
<head>
<meta charset="UTF-8">
</head>
<body>
<p>Hello JSP</p>
</body>
</html>
まだJavaの記載はありませんが、今回は取り敢えずJSPを表示することを目指します。
次に同じくWEB-INF配下にある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>WebJspProject</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>HelloJsp</servlet-name>
<servlet-class>JspTest</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>HelloJsp</servlet-name>
<url-pattern>/Hello</url-pattern>
</servlet-mapping>
</web-app>
今回は少しweb.xmlの解説も含めていきます。デフォルトで記載されている11行目(</welcome-file-list>)までの説明は今回は省いて追加で記載した<servlet>からの記載の説明をします。
<servlet>タグ内の記載について
<servlet>タグの中には<servlet-name>、<servlet-class>タグの定義を行っています。
servlet-nameのタグは、servlet-classに入力されたクラスを別の名前として名前つけすることができます。(同名でも大丈夫です)別の名前を付ける理由は後々説明しますので、今回は名前を付けられる程度で覚えておけば十分です。
<servlet-mapping>タグ内の記載について
<servlet-mapping>タグの中には<servlet-name>、<url-pattern>のタグを記載しています。
servlet-mappingは上記の<servlet>タグ内に記載した名前で、url-patternについてはそのサーブレットを表示するためのurlはこのパスになりますという記載となります。
今回はHelloJspと名前つけされた(JspTest)のページを表示するには「/Hello」というURLにアクセスすればよいということになります。
※ただし今回は説明しませんが、実際に表示するためのURLはプロジェクト名等が/の前になり、正確には「http://localhost:8080/WebJspProject/Hello」となります。
説明が長くなってしまいました。本題のJSPのページの表示に戻りましょう。
前回同様に実行するクラス(JspTest.java)を右クリックして[実行]-[サーバーで実行]から「Tomcat10_Java17」を選択して完了を押下しましょう。

上記のようにHello.jspに記載した「Hello JSP」の文言が表示されたら成功です!
今回はここまで。次回はJSPにJavaで設定した値を表示してましょう。
前回:Webプログラミング入門① 環境構築~画面出力
次回:Webプログラミング入門③ JSP-Javaの連携
コメント