JSPのpageディレクティブとimport属性の使い方を完全解説!Javaクラスの読み込み方法を初心者向けに紹介
生徒
「JSPでJavaのクラスを使おうとしたら、importというものが出てきました。これは何をするものですか?」
先生
「JSPでは、pageディレクティブのimport属性を使うことで、Javaのクラスを読み込んで利用しやすくできます。」
生徒
「普通のJavaプログラムで使うimportとは違うんですか?書く場所も知りたいです。」
先生
「役割はほとんど同じですが、JSPでは専用の書き方を使います。基本的な意味から、複数のクラスを読み込む方法やエラーの対処法まで順番に見ていきましょう。」
1. JSPのpageディレクティブとは?基本的な役割を理解しよう
JSPのpageディレクティブとは、JSPファイル全体に関する設定を指定するための仕組みです。JSPはJavaServer Pagesの略で、Javaを使って動的なWebページを作成するための技術です。動的なWebページとは、利用する人や処理の結果によって、表示する内容が変わるページのことです。
例えば、ログインしたユーザーの名前を表示したり、現在の日付を表示したりするWebページを作成できます。このような処理では、Javaのさまざまなクラスを利用することがあります。
JSPでは、ファイルの先頭付近にpageディレクティブを記述することで、文字コードや利用するJavaクラスなどの設定を指定できます。今回学習するimport属性も、このpageディレクティブで利用できる属性の1つです。
ディレクティブとは、JSPを処理するサーバーに対して設定や指示を伝えるための記述です。普段のHTMLタグとは異なり、ブラウザにそのまま表示するためのものではありません。
pageディレクティブは、JSPファイルを動かすための設定を書く場所です。import属性は、その中でJavaのクラスを利用しやすくするための設定だと覚えておきましょう。
Javaの初心者は、pageディレクティブをJSPファイルの準備をするための設定欄と考えると理解しやすくなります。実際のプログラムでは、ページを表示する処理とは別に、必要なクラスを指定しておくことで、プログラムの記述を整理できます。
2. JSPのimport属性とは?Javaクラスを読み込む仕組み
JSPのimport属性は、Javaのクラスやパッケージを指定して、JSP内でクラス名を簡単に記述できるようにするための設定です。Javaのクラスとは、データや処理をまとめた設計図のようなものです。
例えば、Javaには日付を扱うクラスや、数値を計算するクラス、文字列を操作するクラスなど、便利な機能が数多く用意されています。これらを利用すると、必要な機能を最初から自分で作らなくても、Javaの標準機能を活用できます。
また、パッケージとは、関連するクラスを整理してまとめるための仕組みです。パソコンのフォルダにファイルを整理するように、Javaではパッケージによってクラスを分類しています。
JSPでimport属性を指定すると、通常はパッケージ名を含めて記述する必要があるクラスを、短いクラス名で利用できるようになります。
ただし、import属性は外部のプログラムをインターネットからダウンロードする機能ではありません。すでにJavaの実行環境やWebアプリケーションで利用できるクラスを、JSP内で参照しやすくするための仕組みです。
例えば、日付を扱うLocalDateクラスは、java.timeというパッケージに含まれています。import属性でこのクラスを指定しておけば、JSP内で短い名前を使って日付の処理を記述できます。
なお、Javaのjava.langパッケージに含まれるStringなどの基本的なクラスは、通常、明示的にimportしなくても利用できます。すべてのJavaクラスにimport属性が必要というわけではありません。
3. JSPのimport属性の基本的な書き方とLocalDateの使用例
それでは、JSPのpageディレクティブでimport属性を指定する基本的な書き方を確認しましょう。最初のサンプルでは、JavaのLocalDateクラスを利用して、現在の日付をWebページに表示します。
LocalDateは、年、月、日を扱うためのJavaのクラスです。例えば、今日の日付を取得したり、日付を表示したりする場合に利用できます。
JSPでは、pageディレクティブの中にimport属性を記述します。import属性には、利用したいクラスのパッケージ名とクラス名を指定します。
<%@ page import="java.time.LocalDate" %>
<html>
<head>
<title>今日の日付</title>
</head>
<body>
<h1>今日の日付を表示</h1>
<%
LocalDate today = LocalDate.now();
%>
<p>今日は <%= today %> です。</p>
</body>
</html>
このサンプルでは、最初にpageディレクティブを使ってLocalDateクラスを指定しています。そのため、JSP内でパッケージ名を毎回記述する必要がありません。
LocalDate.now()は、現在の日付を取得するためのメソッドです。メソッドとは、クラスなどに用意されている処理を実行するための機能です。
また、JSP内のスクリプトレットは、Javaの処理を直接記述するための仕組みです。今回の例では、import属性の動作を理解しやすくするために利用しています。
日付を表示する部分では、JSPの式を使って取得した値を画面に出力しています。
今日の日付を表示
今日は 2026-10-09 です。
実行結果の日付は、JSPを実行した日の情報によって変わります。ここでは表示例として日付を記載しています。
このように、JSPのimport属性を使うことで、Javaの標準クラスを簡単に利用できるようになります。Javaのクラス名とパッケージ名の関係を理解しておくと、ほかのクラスを使う場合にも応用できます。
4. JSPのimport属性で複数のJavaクラスを読み込む方法
JSPのimport属性では、複数のJavaクラスを指定することもできます。Webアプリケーションでは、日付を扱うクラスだけでなく、数値計算や文字列処理など、さまざまなクラスを組み合わせて利用することがあります。
複数のクラスを指定する場合は、クラス名をカンマで区切って記述できます。また、pageディレクティブを複数記述し、それぞれのimport属性で別のクラスを指定する方法もあります。
ここでは、現在の日付を取得するLocalDateクラスと、小数を正確に扱うためのBigDecimalクラスを組み合わせた例を見てみましょう。
BigDecimalは、金額などの小数を扱うときによく利用されるJavaのクラスです。例えば、商品の価格や計算結果を表示する場合に役立ちます。
<%@ page import="java.time.LocalDate, java.math.BigDecimal" %>
<html>
<head>
<title>日付と金額の表示</title>
</head>
<body>
<h1>商品情報</h1>
<%
LocalDate today = LocalDate.of(2026, 10, 9);
BigDecimal price = new BigDecimal("1500");
%>
<p>日付:<%= today %></p>
<p>価格:<%= price %>円</p>
</body>
</html>
商品情報
日付:2026-10-09
価格:1500円
この例では、import属性に2つのクラスを指定しています。カンマで区切ることで、複数のクラスをまとめて読み込む設定ができます。
また、今回は実行する日によって結果が変わらないように、日付を固定して作成しています。LocalDate.ofは、指定した年、月、日から日付を作成するためのメソッドです。
初心者が複数のクラスを利用するときは、どのクラスが何のために必要なのかを確認しながらimport属性を記述すると、プログラムの仕組みを理解しやすくなります。
import属性では、クラスを1つだけ指定することも、複数のクラスをまとめて指定することもできます。読み込むクラスが増えてきた場合は、見やすさを考えて記述方法を選びましょう。
5. JSPのimport属性でアスタリスクを使う方法と注意点
JSPのimport属性では、クラス名を個別に指定する方法だけでなく、アスタリスクを使って同じパッケージ内のクラスをまとめて利用できるようにする方法もあります。
アスタリスクは、複数の対象をまとめて指定するときに使われる記号です。Javaのimportでは、パッケージ名の後ろにアスタリスクを指定することで、そのパッケージに直接含まれるクラスを簡単な名前で参照できるようになります。
例えば、java.utilパッケージには、複数のデータを管理するためのクラスなどが用意されています。今回は、その中にあるArrayListクラスを利用してみましょう。
ArrayListとは、複数のデータを順番に保存できるJavaのクラスです。買い物リストや名前の一覧などを管理するときに利用できます。
<%@ page import="java.util.*" %>
<html>
<head>
<title>名前の一覧</title>
</head>
<body>
<h1>登録された名前</h1>
<%
ArrayList<String> names = new ArrayList<String>();
names.add("田中");
names.add("山田");
names.add("佐藤");
%>
<p>1人目:<%= names.get(0) %></p>
<p>2人目:<%= names.get(1) %></p>
<p>3人目:<%= names.get(2) %></p>
</body>
</html>
登録された名前
1人目:田中
2人目:山田
3人目:佐藤
このプログラムでは、java.utilパッケージをまとめてimportしています。そのため、ArrayListクラスを短い名前で利用できます。
ただし、アスタリスクを使ったからといって、Javaのすべてのパッケージが利用できるようになるわけではありません。また、指定したパッケージの下にある別のパッケージまで自動的に対象になるわけでもありません。
さらに、異なるパッケージに同じ名前のクラスが存在する場合、どちらを利用するのか判断できず、エラーになることがあります。
学習中は便利な書き方ですが、実務では利用しているクラスがわかりやすいように、必要なクラスを個別にimportする方法が選ばれることもあります。
特に初心者は、最初からアスタリスクに頼るのではなく、クラスがどのパッケージに含まれているのかを確認する習慣を身につけると、Javaの理解が深まります。
6. JSPのimport属性とJavaのimport文の違い
Javaの学習を進めていると、通常のJavaプログラムでもimport文を使うことがあります。JSPのimport属性とJavaのimport文は、どちらもクラスを短い名前で参照しやすくするという点では同じ役割を持っています。
ただし、記述する場所と書き方が異なります。通常のJavaファイルでは、クラスの宣言より前にimport文を記述します。一方、JSPではpageディレクティブのimport属性を利用します。
ここでは、通常のJavaプログラムで日付を表示する例を確認しましょう。
import java.time.LocalDate;
public class ImportExample {
public static void main(String[] args) {
LocalDate today = LocalDate.of(2026, 10, 9);
System.out.println("日付:" + today);
}
}
日付:2026-10-09
このJavaプログラムでは、最初にimport文を記述しています。これに対して、JSPではpageディレクティブのimport属性を利用してクラスを指定します。
JSPはサーバーによってJavaのプログラムに変換されてから実行されます。pageディレクティブのimport属性は、その変換後のJavaプログラムで必要なクラスを参照できるようにするための設定です。
そのため、JSPのimport属性と通常のJavaのimport文は、書き方は異なりますが、Javaクラスを利用しやすくするという基本的な目的は共通しています。
なお、importを記述しなくても、パッケージ名を含む完全修飾クラス名を使えば、クラスを参照できる場合があります。完全修飾クラス名とは、パッケージ名からクラス名までを省略せずに記述した名前です。
しかし、毎回長い名前を記述するとプログラムが読みにくくなるため、同じクラスを何度も使う場合はimportを利用すると便利です。
7. JSPのimport属性でよくあるエラーと原因の調べ方
JSPのpageディレクティブでimport属性を使うとき、初心者がよく経験するのがクラスを認識できないというエラーです。これは、指定したクラス名やパッケージ名が間違っている場合などに発生します。
例えば、Javaのクラス名は大文字と小文字を区別します。そのため、正しいクラス名と異なる文字を指定すると、目的のクラスを見つけられない場合があります。
また、クラスがどのパッケージに含まれているのかを間違えることもあります。日付を扱うクラスや数値を扱うクラスなどは、それぞれ所属するパッケージが異なるため注意が必要です。
クラス名やパッケージ名の間違い
import属性に指定したクラス名が正しくない場合、JSPをJavaに変換した後のコンパイルでエラーになることがあります。コンパイルとは、人が記述したプログラムを実行できる形式へ変換する作業です。
このような場合は、まずJavaのクラス名とパッケージ名が正しいかを確認しましょう。特に大文字と小文字、単語のつづり、区切りの位置などを丁寧に確認することが重要です。
利用できないクラスを指定している
import属性に正しいクラス名を書いていても、そのクラスがWebアプリケーションの実行環境で利用できなければエラーになることがあります。
例えば、Javaの標準クラスではなく、別途用意したライブラリのクラスを利用する場合は、そのライブラリがWebアプリケーションから参照できる状態になっている必要があります。
ライブラリとは、よく利用する処理をまとめて再利用できるようにしたプログラムの集まりです。import属性はクラスを参照しやすくする設定であり、存在しないライブラリを自動的に追加する機能ではありません。
同じ名前のクラスが存在する
Javaでは、異なるパッケージに同じ名前のクラスが存在する場合があります。そのようなクラスを同時に利用しようとすると、どちらを使うのか判断できず、コンパイルエラーになることがあります。
この場合は、必要なクラスを明確に指定したり、完全修飾クラス名を利用したりすることで区別できます。
JSPでimport関連のエラーが発生した場合は、クラス名、パッケージ名、Javaの実行環境、ライブラリの配置を順番に確認しましょう。また、サーバーのエラーログを確認すると、どのクラスを認識できていないのか調べやすくなります。
8. JSPのimport属性を使うときの実務的な注意点
JSPのimport属性は、Javaのクラスを利用するための便利な機能ですが、実際のWebアプリケーション開発では使い方に注意する必要があります。
特に重要なのは、JSPにJavaの処理を大量に記述しないことです。今回のサンプルでは、import属性の仕組みを理解するためにスクリプトレットを利用しました。しかし、現在のJSP開発では、サーブレットなどで必要なデータを準備し、JSPでは画面表示を担当する構成が一般的です。
例えば、日付の計算や商品の価格を計算する処理はJavaのクラスやサーブレット側で行い、その結果をJSPに渡して表示する方法があります。このように役割を分けることで、プログラムを修正しやすくなります。
また、JSPではEL式を使ってデータを表示することもできます。EL式とは、リクエストスコープやセッションスコープなどに保存された情報を、JSPから簡単に参照するための仕組みです。
例えば、サーブレットで現在の日付を取得し、リクエストスコープに保存しておけば、JSP側ではEL式を使って表示できます。この方法なら、JSPに日付取得のためのJava処理を直接記述する必要がありません。
そのため、import属性は必要な場合に利用し、画面表示と業務処理を適切に分けることが大切です。
さらに、import属性を記述するときは、使用するクラスだけを指定することも意識しましょう。不要なクラスを大量に指定すると、プログラムを読む人がどのクラスを実際に使っているのか判断しにくくなります。
JSPのpageディレクティブとimport属性を学習するときは、まずクラスを指定する基本的な書き方を理解し、その後でサーブレットとJSPの役割分担を学ぶと、実際の開発にも応用しやすくなります。
9. JSPのimport属性を使わずにEL式で日付を表示する方法
最後に、JSPのimport属性を使う方法と、サーブレットでデータを準備してJSPに渡す方法の違いを確認しましょう。
これまでの例では、JSPのpageディレクティブでJavaのクラスをimportし、JSP内で日付を取得していました。しかし、実際のWebアプリケーションでは、サーブレットで日付を取得し、JSPへ渡して表示する方法もよく利用されます。
サーブレットとは、ブラウザからのリクエストを受け取り、Javaで処理を実行するための仕組みです。例えば、データベースから情報を取得したり、日付を計算したりして、その結果をJSPへ渡せます。
次の例では、サーブレットで現在の日付を取得し、JSPへ渡して表示します。
import java.io.IOException;
import java.time.LocalDate;
import jakarta.servlet.ServletException;
import jakarta.servlet.annotation.WebServlet;
import jakarta.servlet.http.HttpServlet;
import jakarta.servlet.http.HttpServletRequest;
import jakarta.servlet.http.HttpServletResponse;
@WebServlet("/today")
public class TodayServlet extends HttpServlet {
@Override
protected void doGet(HttpServletRequest request,
HttpServletResponse response)
throws ServletException, IOException {
LocalDate today = LocalDate.of(2026, 10, 9);
request.setAttribute("today", today);
request.getRequestDispatcher("/WEB-INF/views/today.jsp")
.forward(request, response);
}
}
このサーブレットでは、JavaのLocalDateクラスをimportしています。そして、日付を取得した後、request.setAttributeを使ってリクエストスコープに保存しています。
リクエストスコープとは、現在のリクエスト処理中だけデータを利用できる範囲のことです。サーブレットからJSPへ情報を渡す場合によく利用されます。
また、forwardは、現在のリクエストを別のJSPなどへ引き継ぐための処理です。この方法では、サーブレットで保存したデータをJSP側でも利用できます。
なお、この例はJakarta Servletを利用する環境を想定しています。古いJava EE環境では、サーブレット関連のパッケージ名が異なるため注意してください。
<%@ page contentType="text/html; charset=UTF-8" pageEncoding="UTF-8" %>
<html>
<head>
<meta charset="UTF-8">
<title>今日の日付</title>
</head>
<body>
<h1>今日の日付</h1>
<p>今日は ${today} です。</p>
</body>
</html>
今日の日付
今日は 2026-10-09 です。
このJSPでは、LocalDateクラスをimportしていません。それでも日付を表示できるのは、サーブレットで取得した日付をリクエストスコープに保存し、JSP側ではEL式を使って参照しているためです。
つまり、JSPのpageディレクティブのimport属性は、JSP内でJavaクラスを直接利用する場合に役立ちます。一方、サーブレット側で処理を完了させ、JSPでは結果を表示するだけなら、JSP側でそのクラスをimportする必要がない場合もあります。
初心者は、まずimport属性を使ってJavaクラスを利用する方法を理解し、その後でサーブレットとEL式を組み合わせたデータの受け渡しを学習すると、JSPの仕組みをより深く理解できます。
この違いを意識しておくと、JavaのクラスをJSPで直接利用する場面と、サーブレットで処理した結果をJSPへ表示する場面を適切に使い分けられるようになります。
まとめ
今回は、JSPのpageディレクティブとimport属性の使い方について、Javaクラスの読み込み方法から複数のクラスを指定する方法、サーブレットとの違いまで学習しました。JSPでJavaの機能を利用する場合、クラスやパッケージの仕組みを理解しておくと、プログラムを読みやすく整理できます。特に、JSPのimport属性は、Javaの標準クラスを短い名前で利用するための基本的な設定なので、初心者のうちに覚えておきたい内容です。
JSPは、Javaを使って動的なWebページを作成するための技術です。動的なWebページとは、アクセスした日時やユーザーの情報、サーバーで実行した処理の結果によって、表示内容が変化するWebページのことです。例えば、今日の日付を表示するページや、商品の価格を表示するページなどが挙げられます。このようなWebページを作成するときに、Javaの便利なクラスを利用することがあります。
JSPのpageディレクティブとimport属性の基本を振り返ろう
JSPのpageディレクティブは、JSPファイル全体に関する設定を指定するための仕組みです。文字コードや利用するJavaクラスなどを設定でき、JSPをサーバーで処理するときに必要な情報を伝えます。通常のHTMLタグとは役割が異なり、ブラウザに直接表示するためのものではありません。
その中でもimport属性は、Javaのクラスやパッケージを指定するために利用します。Javaのクラスとは、データや処理をまとめた設計図のようなものです。また、パッケージとは、関連するクラスを整理してまとめるための仕組みです。パソコンのフォルダにファイルを分類するように、Javaでもクラスをパッケージごとに整理しています。
例えば、Javaで日付を扱う場合にはLocalDateクラスを利用できます。このクラスはjava.timeパッケージに含まれています。JSPのimport属性で指定すると、パッケージ名を毎回記述せずに、短いクラス名で利用できるようになります。
ただし、import属性はクラスそのものを新しく作成したり、インターネットからライブラリをダウンロードしたりする機能ではありません。すでに利用可能なJavaクラスを、JSP内で参照しやすくするための設定です。この違いを理解しておくと、import関連のエラーが発生した場合にも原因を調べやすくなります。
JSPのimport属性でLocalDateクラスを使うサンプルプログラム
まずは、JSPのpageディレクティブでimport属性を指定し、JavaのLocalDateクラスを使って日付を表示する方法を振り返りましょう。LocalDateは、年、月、日を扱うためのクラスです。日付を取得したり、指定した日付を作成したりするときに利用できます。
次のサンプルプログラムでは、指定した日付をJSPの画面に表示します。日付を固定しているため、いつ実行しても同じ結果を確認できます。
<%@ page import="java.time.LocalDate" %>
<h1>日付の表示</h1>
<%
LocalDate today = LocalDate.of(2026, 10, 9);
%>
<p>日付:<%= today %></p>
日付の表示
日付:2026-10-09
このプログラムでは、最初にpageディレクティブのimport属性を使ってLocalDateクラスを指定しています。その後、スクリプトレットの中で日付を作成し、JSPの式を使って画面に表示しています。
スクリプトレットとは、JSPファイルの中にJavaの処理を直接記述するための仕組みです。今回のようにJavaクラスの動作を学習するときには便利ですが、実際のWebアプリケーションでは、画面表示とJavaの処理を分ける方法もよく使われます。
また、現在の日付を取得したい場合には、LocalDateクラスのnowメソッドを利用できます。メソッドとは、クラスなどに用意されている処理を実行するための機能です。日付を固定する方法と現在の日付を取得する方法の違いも覚えておくと、さまざまなWebページの作成に役立ちます。
複数のJavaクラスをimportする方法も覚えておこう
JSPのimport属性では、Javaクラスを1つだけでなく、複数指定することもできます。複数のクラスを指定する場合は、クラス名をカンマで区切って記述します。また、pageディレクティブを複数記述して、それぞれにimport属性を指定する方法もあります。
例えば、日付を扱うLocalDateクラスと、金額などの小数を正確に扱うBigDecimalクラスを組み合わせれば、商品の日付と価格を表示するWebページを作成できます。BigDecimalは、金額や計算結果などを扱う場合に役立つJavaのクラスです。
次のサンプルでは、複数のクラスをimportして、商品の情報を表示します。
<%@ page import="java.time.LocalDate, java.math.BigDecimal" %>
<h1>商品情報</h1>
<%
LocalDate date = LocalDate.of(2026, 10, 9);
BigDecimal price = new BigDecimal("2500");
%>
<p>登録日:<%= date %></p>
<p>商品価格:<%= price %>円</p>
商品情報
登録日:2026-10-09
商品価格:2500円
このように、JSPのimport属性で複数のJavaクラスを指定すると、異なる機能を組み合わせたWebページを作成できます。日付を表示する処理と金額を表示する処理を、それぞれ適切なクラスで実現している点がポイントです。
初心者は、クラス名だけを暗記するのではなく、どのパッケージに含まれているのか、どのような処理を担当するのかを確認すると理解しやすくなります。Javaのクラスやパッケージの関係を理解しておくことは、JSPだけでなく、通常のJavaプログラムを作成するときにも役立ちます。
アスタリスクを使ったimportと個別指定の違い
JSPのimport属性では、アスタリスクを使って、同じパッケージに直接含まれるクラスをまとめて参照できるようにすることもできます。例えば、java.utilパッケージには、複数のデータを管理するためのクラスなどが用意されています。
アスタリスクを利用すると、必要なクラスを個別に列挙しなくても、そのパッケージ内のクラスを短い名前で記述できます。ただし、指定したパッケージの下にある別のパッケージまで対象になるわけではありません。
また、異なるパッケージに同じ名前のクラスが存在すると、どちらのクラスを利用するのか判断できず、コンパイルエラーになる場合があります。コンパイルとは、プログラムを実行できる形式に変換する処理のことです。
そのため、初心者がJSPのimport属性を学習するときは、まず必要なクラスを個別に指定する方法から覚えるとよいでしょう。クラスの所属先が明確になるため、プログラムを読むときにも理解しやすくなります。
JSPのimport属性と通常のJavaのimport文を区別しよう
JSPのimport属性と通常のJavaのimport文は、どちらもクラスを短い名前で利用しやすくするための仕組みです。ただし、記述方法が異なります。通常のJavaプログラムでは、クラスの宣言より前にimport文を書きます。一方、JSPではpageディレクティブのimport属性を利用します。
JSPは、サーバーによってJavaのプログラムへ変換され、その後にコンパイルされて実行されます。JSPのimport属性は、この変換後のJavaプログラムで必要なクラスを参照できるようにするための設定です。
また、Javaの基本的なクラスの中には、importを明示しなくても利用できるものがあります。例えば、文字列を扱うStringクラスは、通常はimportを記述せずに利用できます。すべてのクラスを必ずimportしなければならないわけではありません。
さらに、パッケージ名を含めた完全修飾クラス名を使えば、importを省略できる場合もあります。ただし、長い名前を何度も記述すると読みにくくなるため、同じクラスを繰り返し利用する場合はimportを使うと便利です。
JSPのimport属性でエラーが発生した場合の確認方法
JSPでimport属性を指定しても、クラスが認識されずエラーになることがあります。その場合は、まずクラス名とパッケージ名が正しいか確認しましょう。Javaでは大文字と小文字を区別するため、文字の違いにも注意が必要です。
また、Javaの実行環境で利用できないクラスを指定している場合や、必要なライブラリが配置されていない場合にもエラーになることがあります。ライブラリとは、便利な処理をまとめて再利用できるようにしたプログラムの集まりです。
import属性は、存在しないライブラリを自動的に追加する機能ではありません。そのため、外部ライブラリのクラスを利用する場合は、Webアプリケーションからそのライブラリを参照できる状態にしておく必要があります。
エラーが発生したときは、クラス名、パッケージ名、ライブラリの配置、Javaの実行環境を順番に確認すると原因を見つけやすくなります。サーバーのエラーログを確認することも大切です。エラーログとは、プログラムの実行中に発生した問題などを記録した情報のことです。
JSPのpageディレクティブとimport属性を利用するときは、次の内容を意識すると、プログラムを理解しやすくなります。
- pageディレクティブはJSPファイル全体の設定を指定する仕組みです。
- import属性はJavaクラスを短い名前で利用しやすくするための設定です。
- 複数のクラスはカンマで区切って指定できます。
- アスタリスクを使うと同じパッケージ内のクラスをまとめて指定できます。
- クラス名やパッケージ名を間違えるとコンパイルエラーになる場合があります。
- サーブレットで処理した結果をJSPで表示する場合、JSP側でクラスをimportする必要がないこともあります。
サーブレットとJSPの役割を分けることも大切
JSPのimport属性を使えば、JSPファイルの中でJavaクラスを直接利用できます。しかし、実際のWebアプリケーション開発では、JSPにJavaの処理を大量に記述する方法は、保守や修正が難しくなることがあります。
そのため、サーブレットでデータを取得したり計算したりして、JSPでは結果を表示する方法がよく利用されます。サーブレットとは、ブラウザからのリクエストを受け取り、Javaで処理を実行するための仕組みです。
例えば、サーブレットで現在の日付を取得し、その結果をリクエストスコープに保存してからJSPへ渡せます。リクエストスコープとは、現在のリクエスト処理中だけデータを利用できる範囲のことです。
JSPではEL式を使って、リクエストスコープに保存されたデータを表示できます。EL式とは、JSPでデータを簡単に参照するための仕組みです。この方法なら、JSP内に日付を取得するためのJava処理を直接記述する必要がありません。
次のサンプルでは、サーブレットから渡された商品名と価格をJSPで表示する方法を確認します。JSP側ではJavaの計算処理を行わず、受け取ったデータを画面に表示することに集中しています。
<%@ page contentType="text/html; charset=UTF-8" pageEncoding="UTF-8" %>
<h1>商品情報</h1>
<p>商品名:${productName}</p>
<p>価格:${price}円</p>
このJSPでは、商品名と価格がリクエストスコープなどに保存されていることを前提としています。例えば、サーブレットで商品名にノート、価格に500を設定してJSPへフォワードした場合、次のように表示されます。
商品情報
商品名:ノート
価格:500円
このように、JSPでJavaクラスを直接利用する場合にはimport属性が役立ちますが、サーブレットで処理を行ってJSPに結果を渡す場合は、JSP側で同じクラスをimportする必要がないこともあります。
Javaの初心者は、まずJSPのpageディレクティブとimport属性の基本を理解し、その後でサーブレットとJSPの連携方法を学ぶとよいでしょう。Javaクラスの利用方法と画面表示の仕組みを分けて考えることで、プログラムの構造を理解しやすくなります。
JSPのimport属性は、Javaのクラスやパッケージを学ぶうえでも重要な基本知識です。日付を扱うLocalDate、金額を扱うBigDecimal、複数のデータを管理するArrayListなど、用途に応じて必要なクラスを選び、正しく指定することが大切です。こうした基本を身につけることで、JSPやサーブレットを利用したWebアプリケーション開発にも取り組みやすくなります。
生徒
「JSPのpageディレクティブは、JSPファイル全体の設定を指定するための仕組みで、import属性はJavaのクラスを使いやすくするためのものだとわかりました。」
先生
「そのとおりです。import属性でクラスを指定すると、パッケージ名を毎回書かなくても、短いクラス名で利用できるようになります。日付を扱うLocalDateクラスなどがわかりやすい例ですね。」
生徒
「複数のJavaクラスを使いたい場合は、カンマで区切って指定できるんですよね。アスタリスクを使って、同じパッケージのクラスをまとめて指定する方法も覚えました。」
先生
「そうですね。ただし、アスタリスクを使っても、別のパッケージまで自動的に対象になるわけではありません。最初は必要なクラスを個別に指定する方法を練習すると、クラスとパッケージの関係も理解しやすくなります。」
生徒
「普通のJavaプログラムで使うimport文と、JSPのimport属性は書き方が違うけれど、役割は似ているんですね。」
先生
「はい。通常のJavaプログラムではimport文を使いますが、JSPではpageディレクティブのimport属性を使います。JSPは内部でJavaのプログラムに変換されるので、Javaの基本を理解しておくことも大切です。」
生徒
「もしJSPでクラスが見つからないエラーになったら、クラス名やパッケージ名、ライブラリが正しく用意されているかを確認すればいいんですね。」
先生
「その考え方で大丈夫です。特にJavaは大文字と小文字を区別するので、名前の間違いには注意しましょう。エラーが発生したときは、サーバーのログを確認する習慣も身につけると役立ちます。」
生徒
「それから、JSPでJavaの処理を全部書くのではなく、サーブレットでデータを準備して、JSPではEL式を使って表示する方法もあるとわかりました。」
先生
「そこも重要なポイントです。JSPのimport属性を理解したうえで、サーブレットとJSPの役割を分ける方法も覚えていきましょう。まずはLocalDateやBigDecimalなどの身近なクラスを使って、import属性の書き方を練習してみてください。」
生徒
「はい。これからJSPでJavaのクラスを使うときは、どのパッケージに含まれているのかを確認して、必要な場合にimport属性を指定するようにします。」
ChatGPTなどの生成AIをこれから学びたい方に向けて、AIスキルアカデミーの口コミ・評判、料金、無料セミナーの内容を詳しくまとめています。
AIスキルアカデミーの口コミ・評判を詳しく見る