JSPの基本タグ一覧と使い方まとめ!実務で使えるタグを紹介
生徒
「JSPで使えるタグって色々あるみたいですけど、どれを覚えればいいんですか?」
先生
「JSPには基本的なタグがいくつかあり、実務でよく使われるものを知っておくと開発がスムーズになりますよ。」
生徒
「種類が多すぎて混乱します…。よく使う基本タグをまとめて教えてもらえませんか?」
先生
「それでは、実務でも頻出のJSP基本タグをひとつずつ整理して紹介しましょう!」
1. JSPタグとは?基本の構造を理解しよう
JSPタグとは、HTMLの中にJavaの処理を組み込むための特別な書き方です。 通常のHTMLは画面を表示する役割しか持ちませんが、JSPタグを使うことで、 サーバー側で計算した結果やデータベースの情報を画面に表示できるようになります。 そのため、JSPは「動的なWebページ」を作るための技術として使われます。
JSPファイルは見た目はHTMLとほぼ同じですが、一部にJSPタグを記述することで、 サーバーで処理された結果がHTMLとしてブラウザに送られる仕組みになっています。 プログラミング未経験の方は、「HTMLに少しだけ特別なタグを足したもの」 と考えると理解しやすいでしょう。
JSPには用途ごとにいくつかのタグが用意されており、代表的な種類は次のとおりです。
- ディレクティブタグ:JSP全体の設定を行う
- スクリプトレットタグ:Javaの処理を直接書く
- 式タグ:値を画面に表示する
- 宣言タグ:メソッドや変数を定義する
- アクションタグ:決まった処理をタグ形式で実行する
- JSTLタグ:条件分岐や繰り返しを簡単に書く
まずは「JSPタグには役割ごとに種類がある」という点を押さえておくことが大切です。
<%-- とても簡単なJSPの例 --%>
<p>こんにちは!これはJSPのページです。</p>
上記のように、基本はHTMLを書き、必要に応じてJSPタグを追加していくのが JSP開発の基本的な考え方になります。
2. ディレクティブタグ:JSPファイルの設定を行うタグ
ディレクティブタグは、JSPページ全体の「ルール」や「前提」を決めるためのタグです。 画面に直接表示されるものではなく、JSPをどう動かすかをサーバーに伝える設定だと思ってください。 そのため、多くの場合はJSPファイルの先頭付近にまとめて書きます。
よく使われるのは次の3種類で、実務でも頻出です。
page:文字コードやコンテンツ種類、importなどページ全体の基本設定include:共通のヘッダーなどを静的に読み込んで使い回すtaglib:JSTLなどのタグライブラリを使うための宣言
たとえば「文字化けを防ぎたい」「Javaのクラスを使いたい」「共通レイアウトを読み込みたい」
といったときに、ディレクティブタグが登場します。初心者のうちは、まず
pageで文字コードを合わせるところから覚えるとスムーズです。
<%@ page contentType="text/html; charset=UTF-8" %>
<%@ page import="java.util.Date" %>
<%@ include file="header.jsp" %>
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
上の例では、contentTypeでJSPの出力をUTF-8に指定しているため、文字化け対策になります。
また、importでJavaのクラスを使えるようにし、includeで共通ファイルを読み込んでいます。
最後のtaglibは「このJSPではJSTLを使います」という宣言で、JSP開発では定番の書き方です。
3. スクリプトレットタグ:Javaコードを直接書く
スクリプトレットタグは <% 〜 %> の形式で、JSPの中にJavaコードをそのまま書けるタグです。
HTMLの途中に処理を差し込めるため、条件分岐や文字列の組み立てなどを直感的に記述できます。
JSPを学び始めたばかりの頃は、「HTMLの中でJavaが動いている」感覚をつかむのに役立つ存在です。
たとえば、画面に表示するメッセージをJavaで作り、その結果を出力したい場合、 スクリプトレットを使うと次のように書けます。
<%
String name = "JSP学習中";
out.println("こんにちは、" + name + "さん!");
%>
この例では、Javaで文字列変数を作り、その内容を画面に表示しています。
out.println() は「画面に出力するための命令」で、
JSPではスクリプトレット内からHTMLへ文字を表示するときによく使われます。
ただし、スクリプトレットはHTMLとJavaのコードが混ざりやすく、 ページが読みにくくなりがちです。そのため、最近の開発では JSTLやEL式に置き換えられることが多いですが、 既存のJSPでは今も使われているため、仕組みを理解しておくことは大切です。
4. 式タグ:値を出力するための簡単な記述
式タグは<%= 〜 %>の形式で、値を直接出力するために使います。out.print()の省略記法です。
<p>現在日時:<%= new java.util.Date() %></p>
変数の値やメソッドの戻り値をHTMLに表示する場面で活用されます。
5. 宣言タグ:メソッドやフィールドを定義する
宣言タグは<%! 〜 %>という形式で、クラスレベルで使うメソッドや変数を定義します。
<%!
public String getMessage() {
return "これは宣言タグで定義したメソッドです。";
}
%>
<p><%= getMessage() %></p>
使用頻度は高くありませんが、複雑なロジックをJSP内に閉じ込めたい場合に使われます。
6. アクションタグ:XML形式で処理を記述
アクションタグは、JSPでよく使われる<jsp:〜>という構文のタグ群です。代表的なものには以下があります。
<jsp:include>:他のJSPを動的に読み込む<jsp:forward>:他のページへ処理を移す<jsp:param>:パラメータを渡す
<jsp:include page="menu.jsp" />
<jsp:forward page="login.jsp" />
スクリプトレットより可読性が高く、保守性に優れるため積極的に使いたいタグです。
7. JSTLタグ:実務で頻出の便利タグ
JSTL(JSP Standard Tag Library)は、JSPで条件分岐・繰り返し処理・フォーマット・国際化などを簡潔に記述できるライブラリです。
<c:if>:条件分岐<c:forEach>:繰り返し処理<c:out>:値の出力
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
<c:if test="${not empty user}">
<p>ようこそ、${user.name}さん!</p>
</c:if>
<ul>
<c:forEach var="item" items="${itemList}">
<li>${item}</li>
</c:forEach>
</ul>
JSTLは実務で特に重要なJSPタグで、ロジックの可読性や保守性が大きく向上します。
8. 実務でよく使うJSPタグの使い分け方
開発現場では次のような使い分けがよく行われます:
- 定数や初期設定には
pageディレクティブ - 部品の共通化には
includeディレクティブまたは<jsp:include> - 条件や繰り返しには
JSTLタグ - 変数の表示には
<c:out>や式タグ
プロジェクトの方針にもよりますが、スクリプトレットの使用はなるべく避け、JSTLやEL式での記述が推奨される傾向にあります。
まとめ
本記事では、JSPの基本タグについて体系的に整理し、それぞれの特徴や使いどころを具体的に解説しました。ディレクティブタグやスクリプトレットタグ、式タグや宣言タグ、さらにアクションタグやJSTLタグといった幅広い種類を理解することで、開発現場でのJSP活用がぐっとスムーズになります。特にJSTLは実務で頻繁に利用され、条件分岐や繰り返し処理を簡潔に表現できるため、保守性と可読性の両面で非常に重要です。
また、スクリプトレットタグは歴史的にはよく使われてきましたが、現在では非推奨とされる場面も多いため、現代の開発ではJSTLやEL式に置き換えることが望まれます。ただし既存システムでは依然として残っているケースが多く、読み解く力も必要です。
実務での利用を意識したときに、最もよく登場するのは「ページ全体の設定を担うディレクティブ」「動的な画面構築に役立つアクションタグ」「条件や繰り返しを簡単にするJSTL」の三本柱です。これらを正しく組み合わせることで、効率的かつ保守しやすいWebアプリケーションを構築できます。
以下に、サンプルとしてよくある「JSTLでリストを繰り返し表示するコード」を改めて記載します。実際のプロジェクトでは、これを部品化して利用することで、可読性の高いビューを作成できます。
サンプルプログラム:JSTLでリストを表示
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c" %>
<ul>
<c:forEach var="product" items="${productList}">
<li>${product.name} - ${product.price}</li>
</c:forEach>
</ul>
このようにJSPでは、単純なHTMLにロジックを埋め込むのではなく、JSTLを中心に構造化することでメンテナンス性を高められます。長期的に見て、JSPの基本タグを正しく理解することは開発の効率化や品質の向上に直結します。
最後に学んだ内容を振り返るために、先生と生徒の会話形式でポイントを整理しましょう。
生徒
「今日学んだJSPのタグはとても多かったですが、特に大事なのはどれでしたか?」
先生
「そうですね。まずはディレクティブタグでページ全体の設定を理解すること、次にアクションタグで画面を組み立てること、そしてJSTLで条件分岐や繰り返しを記述することが重要です。」
生徒
「スクリプトレットタグは使わない方がいいんですよね?」
先生
「はい。新しい開発では避けた方が良いですが、既存システムではまだ残っているので読めるようにしておくと安心です。」
生徒
「なるほど!実務での利用を意識すると、JSTLが特に大事だとわかりました。実際のコード例を見ながら学んだので、すぐに応用できそうです。」
先生
「その調子です。今回の学習でJSPのタグの使い分けを理解したので、次からはより実践的なサンプルに挑戦していきましょう。」