スクリプトレット

前回の記事でも少し触れましたが、HTML内にJavaコードを記述する記法のことをスクリプトレットと言います。スクリプト(script)の断片(let)という意味です。

構文は下記になります。

<%
    Javaコード
%>

簡単なJSPサンプルを見てみましょう。「<%」から「%>」内はJavaのコードと見なされ、それ以外は普通のHTMLです。

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Insert title here</title>
</head>
<body>
<%
    String str = new String("HelloWorld!");
    out.print(str);
%>

</body>
</html>

最初の行は、pageディレクティブと呼ばれ、JSP全体の動作を定義します。(ここでは一旦、JSPのおまじないみないなものだと思っていただいても構いません。)

下記のようにスクリプトレットを複数箇所に記述することもできます。

<%
    int cnt = 10;
    
    if(cnt < 10) {
%>
        <h2>10未満です。</h2>
<%
    } else {
%>
        <h2>10以上です。</h2>
<%
    }
%>

このようにスクリプトレットを複数箇所に離れて記述しても、つなぎ合わせた際に正しい文法になっていれば、問題ありません。
また、下記のようにスクリプトレット内にまとめて記述することもできます。実行結果はまったく同じになります。

<%
    int cnt = 10;
    
    if(cnt < 10) {
        out.println("<h2>10未満です。</h2>");
    } else {
        out.println("<h2>10以上です。</h2>");
    }
%>