JSPでif文・for文を使う方法!初心者でもわかるJavaとの違いと使い方
生徒
「先生、JSPってHTMLみたいに見えるのに、if文やfor文も使えるって本当ですか?」
先生
「本当ですよ。JSPではJavaのコードを埋め込んで、条件分岐や繰り返し処理ができます。」
生徒
「それってJavaと全く同じように書けばいいんですか?」
先生
「似ているところもありますが、JSP独特の書き方もあるので注意が必要です。一緒に確認していきましょう。」
1. JSPとは?JavaとHTMLを融合したサーバーサイド技術
JSP(JavaServer Pages)は、HTMLの中にJavaコードを埋め込んで、動的なWebページを作成するための技術です。Javaのサーバーサイド技術のひとつで、Spring FrameworkやServletなどと一緒によく使われています。
JSPでは、JavaのロジックをHTMLに埋め込むことで、条件によって表示内容を変えたり、繰り返し処理をしたりできます。
2. JSPでif文を書く基本構文
JSPで条件分岐をするには、Javaのif文を<% %>の中に書きます。以下は基本的なサンプルです。
<%
int score = 80;
if(score >= 70){
%>
<p>合格です!</p>
<%
} else {
%>
<p>不合格です。</p>
<%
}
%>
このように、Javaのif文の構文はそのまま使えますが、<% %>タグで囲む必要があります。
3. JSPでfor文を書く方法と繰り返し処理
JSPでは、for文を使って繰り返し処理も可能です。たとえば、1〜5までの数字をリスト表示する場合、以下のように記述します。
<ul>
<%
for(int i = 1; i <= 5; i++){
%>
<li>番号:<%= i %></li>
<%
}
%>
</ul>
ここでのポイントは、ループの中で<%= i %>を使って変数を出力している点です。これはiの値をHTMLに表示するための書き方です。
4. <% %>と<%= %>の違いに注意!
JSPではJavaコードを書くときに、タグの種類によって意味が異なります。
<% %>:Javaの処理(if文・for文など)を書くときに使用します。<%= %>:Javaの変数や式の結果をHTMLに出力するときに使います。
たとえば、次のように書くと、変数の値がそのままHTMLに出力されます。
<%
String name = "田中";
%>
<p>こんにちは、<%= name %>さん!</p>
5. Javaとの違いとJSP独自の注意点
JSPとJavaは基本の構文は同じですが、違いもあります。以下にいくつかのポイントを紹介します。
- JSPでは出力したい値は必ず
<%= %>で囲む必要があります。 - HTMLと混在するため、見た目上のインデントや構造が崩れやすいので注意が必要です。
- ループや条件分岐の中でHTMLを書いても構文エラーにはならないが、タグの対応が合っているか慎重に確認する必要があります。
6. よくあるエラーと対処法
JSPでif文やfor文を使うときによくある間違いと、その解決方法を紹介します。
閉じタグの抜け
if文やfor文を使うとき、<% } %>を忘れると、JSPのコンパイルエラーになります。
HTMLタグの入れ子ミス
条件分岐でHTMLタグを表示・非表示するときは、タグの開閉がきちんと対応しているか確認しましょう。以下のような例はエラーのもとです。
<% if(flag){ %>
<div>
<% } %>
<p>内容です</p>
</div>
このように、<div>だけif文の中にあり、</div>は外にあると、HTML構造が壊れてしまいます。
7. Scriptletは非推奨?今後の開発スタイルに向けて
JSPでは<% %>を使ってJavaを書く方法を紹介しましたが、現在ではこのスタイルは非推奨とされています。代わりに、JSTL(JSP Standard Tag Library)や、EL式(Expression Language)を使うのが主流です。
ですが、既存のシステムや業務プロジェクトでは、まだまだJSPでif文やfor文が使われているケースも多いため、基本的な書き方や注意点を知っておくことは重要です。
8. JSPで複雑な条件分岐を行うテクニック
JSPで複数の条件を扱う場合は、else ifを使うことで柔軟な処理が可能です。以下のように記述します。
<%
int value = 50;
if(value >= 80){
%>
<p>優秀です</p>
<%
} else if(value >= 60){
%>
<p>平均的です</p>
<%
} else {
%>
<p>もう少し頑張りましょう</p>
<%
}
%>
このように、Javaと同じロジックで分岐が書ける点がJSPの強みです。
9. 実際の業務システムでの使用例
例えば、管理画面でログイン中のユーザーの役割に応じて、表示するメニューを切り替えたい場合、以下のように記述できます。
<%
String role = "admin";
if("admin".equals(role)){
%>
<button>ユーザー管理</button>
<%
}
%>
このように、JSPを使えばHTMLとJavaの連携で柔軟な画面制御ができます。
まとめ
JSPでif文・for文を学ぶ意味と全体の振り返り
この記事では、JSPでif文やfor文を使う方法について、Javaとの違いやHTMLとの関係性を意識しながら丁寧に解説してきました。 JSPはJavaServer Pagesという名前の通り、Javaの文法をそのまま使える一方で、HTMLと混在するという特徴があります。 そのため、Javaだけを学んでいた人や、HTMLだけを書いてきた初心者にとっては、最初は少し戸惑いやすい技術です。 しかし、if文やfor文の基本構文を理解し、<% %>や<%= %>の役割を正しく使い分けられるようになると、 動的なWebページを作るための強力な武器になります。
JSPのif文では、条件によって表示内容を切り替えることができ、ログイン状態や点数判定、権限ごとの画面制御など、 実務でよく使われる処理を簡単に実装できます。 また、for文を使えば、リスト表示や表の自動生成など、繰り返し処理が必要な場面でも効率よくHTMLを出力できます。 これらはJavaのServletだけでは記述が複雑になりがちですが、JSPを使うことで画面側の処理として直感的に書ける点が大きなメリットです。
JSP特有の書き方と注意点の整理
JSPで特に重要なのは、処理を書くための<% %>と、値を表示するための<%= %>を混同しないことです。 if文やfor文などの制御構文は<% %>の中に書き、画面に表示したい変数や計算結果は<%= %>を使って出力します。 この違いを理解していないと、値が表示されない、エラーが出るといったトラブルにつながります。
また、HTMLタグとJavaコードが混在するため、タグの閉じ忘れや入れ子構造の崩れには特に注意が必要です。 if文やfor文の途中でHTMLタグを開いた場合は、その閉じタグが同じ条件ブロック内にあるかを常に確認しましょう。 見た目上は問題なさそうでも、ブラウザで表示したときにレイアウトが崩れる原因になることがあります。 JSPでは「動くけれど正しくないHTML」が生成されやすいため、構造を意識して書くことが大切です。
サンプルで振り返るJSPの基本構文
<%
int count = 3;
for(int i = 1; i <= count; i++){
%>
<p>これは<%= i %>回目の表示です</p>
<%
}
%>
このサンプルでは、for文を使って同じHTMLを複数回表示しています。 Javaのfor文と同じ構文ですが、表示部分はHTMLとしてそのまま記述できる点がJSPの特徴です。 このような書き方を理解しておくことで、一覧表示やデータ件数に応じた画面生成がスムーズに行えるようになります。
Scriptletを学ぶ意義と今後の学習につなげる視点
現在のWeb開発では、JSPのScriptletは非推奨とされ、JSTLやEL式を使うスタイルが主流になっています。 それでも、既存の業務システムや保守案件では、Scriptletを使ったJSPが数多く残っています。 そのため、if文やfor文を含む基本的なJSPの書き方を理解しておくことは、現場で非常に役立ちます。 基礎を押さえたうえで、次のステップとしてJSTLやMVC構成を学んでいくと、より実践的なスキルにつながります。
生徒
「JSPって最初は難しそうだと思っていましたが、if文やfor文はJavaと同じ考え方で書けるんですね。 HTMLの中に書くのが少し不安でしたが、役割を分けて考えると理解しやすかったです。」
先生
「その通りです。JSPはJavaの知識がそのまま活かせるのが強みですが、 HTMLと混ざることでミスもしやすくなります。だからこそ、基本構文と注意点をしっかり押さえることが大切です。」
生徒
「for文で一覧表示ができるのは便利だと感じました。 実際の業務システムでも使われている理由が少しわかった気がします。」
先生
「良い気づきですね。今後はJSTLやEL式も学んでいくと、より読みやすく保守しやすいJSPが書けるようになります。 今日学んだif文やfor文の基礎は、その土台になりますよ。」