条件分岐
JSPではJavaの標準的なif...elseブロックを使用して条件判断を行うことができます。以下の例では、変数の値に基づいて異なるメッセージを出力します。
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<%! int temperature = 25; %>
<html>
<head>
<meta charset="utf-8">
<title>条件分岐のサンプル</title>
</head>
<body>
<h3>IF...ELSE 実行結果</h3>
<% if (temperature > 30) { %>
<p>今日は暑いです。</p>
<% } else { %>
<p>今日は適温です。</p>
<% } %>
</body>
</html>
このコードを実行すると、変数の値が30以下であるため、以下の出力が得られます。
IF...ELSE 実行結果
今日は適温です。
次に、switch...case文の使用例を見ていきます。この構文は、if...elseと異なり、スクリプトレット内で`out.println()`を使用して直接的に出力記述を行うのに適しています。
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<%! int rank = 2; %>
<html>
<head>
<meta charset="utf-8">
<title>Switch...Caseのサンプル</title>
</head>
<body>
<h3>SWITCH...CASE 実行結果</h3>
<%
switch(rank) {
case 1:
out.println("プラチナランク");
break;
case 2:
out.println("ゴールドランク");
break;
case 3:
out.println("シルバーランク");
break;
default:
out.println("ブロンズランク");
}
%>
</body>
</html>
ブラウザでの実行結果は以下の通りです。
SWITCH...CASE 実行結果
ゴールドランク
繰り返し処理
JSPでは、Javaと同様に`for`、`while`、`do...while`の3つの基本的なループ構造を使用できます。
以下の`for`ループの例では、変数の値を変えながらリスト要素を生成します。
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<%! int count; %>
<html>
<head>
<meta charset="utf-8">
<title>Forループのサンプル</title>
</head>
<body>
<h3>For Loop Example</h3>
<ul>
<%for ( count = 1; count <= 3; count++){ %>
<li>カウント: <%= count %></li>
<%}%>
</ul>
</body>
</html>
これを実行すると、番号付きのリストが表示されます。
同様の処理を`while`ループを用いて記述した例です。条件式がtrueである間、処理を繰り返します。
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<%! int index = 1; %>
<html>
<head>
<meta charset="utf-8">
<title>Whileループのサンプル</title>
</head>
<body>
<h3>While Loop Example</h3>
<%while ( index <= 3){ %>
<p>現在のインデックス: <%= index %></p>
<%index++;%>
<%}%>
</body>
</html>
ブラウザでの出力結果は以下のようになります。
現在のインデックス: 1
現在のインデックス: 2
現在のインデックス: 3
JSPの演算子
JSPはJavaの論理演算子や算術演算子をすべてサポートしています。以下の表は、JSPで一般的に使用される演算子を優先順位の高い順にまとめたものです。
| カテゴリ | 演算子 | 結合規則 |
|---|---|---|
| 後置 | () [] . (ドット) | 左から右 |
| 単項 | ++ - - ! ~ | 右から左 |
| 乗法 | * / % | 左から右 |
| 加法 | + - | 左から右 |
| シフト | >> >>> << | 左から右 |
| 関係 | > >= < <= | 左から右 |
| 等価 | == != | 左から右 |
| ビットAND | & | 左から右 |
| ビットXOR | ^ | 左から右 |
| ビットOR | | | 左から右 |
| 論理AND | && | 左から右 |
| 論理OR | || | 左から右 |
| 三項 | ?: | 右から左 |
| 代入 | = += -= *= /= %= >>= <<= &= ^= |= | 右から左 |
| カンマ | , | 左から右 |
JSPのリテラル
JSP言語では、以下のリテラルが定義されています。
- 論理値 (Boolean):
trueおよびfalse - 整数型 (Integer): Javaと同様の形式
- 浮動小数点数 (Float): Javaと同様の形式
- 文字列 (String): シングルクォートまたはダブルクォートで囲まれた文字列
- Null:
null