タイトル
TOPJavaJSP → This Page

JSP宣言、スクリプトレット、式、コメント

前置き

ここではJavaJSP(JavaServer Pages)のJSP宣言スクリプトレットコメントについてふれていきます。

宣言(declaration)の概要

宣言とはJSPで使用する変数、定数、メソッドを宣言するものである。

構文
<%! 宣言内容 %>

例
<%!
	final String strSystemName = "TEST-SYSTEM";
	private int intCount = 0;
	public int getCount()
	{
		return intCount;
	}
%>

宣言部で定義された変数の内容は J2EE コンテナの終了まで保持される。
リクエストごとに変数を初期化したい場合はスクリプトレット内で変数を宣言する。

また、宣言部では特殊なメソッドであるJspInit(), JspDestroy() メソッドを利用可能。
JspInit() はJSPページのインスタンスが初めて生成される時、
JspDestroy() はインスタンスが破棄される時に実行される。
<%!
	public void JspInit()
	{
		// 初期処理
	}
	public void JspDestroy()
	{
		// 終了処理
	}
%>

スクリプトレット(scriptlet)の概要

スクリプトレットとは HTML に埋め込むことが可能なスクリプトコードの断片である。
一般に Java 言語でのプログラミングコードを記述する。
スクリプトレット内で宣言された変数はリクエストのたびに初期化される。
また、各命令の末尾にセミコロンが必要。

構文
<% スクリプトレットコード %>

例1
<html>
<body>
<%
	for (int i = 0; i < 3; i++){
		out.print("TEST<br>");
	}
%>
</body>
</html>

例2
<html>
<body>
<% for (int i = 0; i < 3; i++){ %>
	TEST<br>
<% } %>
</body>
</html>

例の出力結果(例1、例2 共に同じ結果)
<html>
<body>
	TEST<br>
	TEST<br>
	TEST<br>
</body>
</html>

(注意)
ネストして記述することは出来ない

式(expression)の概要

式とは実行結果を文字列に変換して出力するものである。
スクリプトレットとは違い、末尾にセミコロンは不要。
実行結果を返すコードしか記述できないので、void メソッドなどは不可。

構文
<%= 式 %>

例
<html>
<body>
<% for (int i = 0; i < 3; i++){ %>
	<%= i %><br>	←この部分が式
<% } %>
</body>
</html>

式を使わなかった場合の例
<html>
<body>
<%
	for (int i = 0; i < 3; i++){
		out.print(i + "<br>");
	}
%>
</body>
</html>

例の出力結果(例1、例2 共に同じ結果)
<html>
<body>
	0<br>
	1<br>
	2<br>
</body>
</html>

コメント(comment)

JSPでは以下の4種類のコメント構文を使用することが可能
構文1
/* コメント */
スクリプトレット、宣言部内で使用可能。
/* から */ までの複数行をコメントアウトする。
コメントはサーバ側で切り捨てられるのでクライアント側には送信されない。
例1
<%
	/*
		コメント1行目
		コメント2行目
	*/
%>

構文2
// コメント
スクリプトレット、宣言部内で使用可能。
// から行末までの1行をコメントアウトする。
コメントはサーバ側で切り捨てられるのでクライアント側には送信されない。
例2
<%
	// 値を出力
	out.print(strValue);
%>

構文3
<%-- コメント --%>
静的なコンテンツ部分で使用可能
<%-- から --%> までの複数行をコメントアウトする。
コメントはサーバ側で切り捨てられるのでクライアント側には送信されない。
例3 out.print の処理もコメントになる
<%--
	<% out.print(strValue); %>
--%>

構文4
<!-- コメント -->
静的なコンテンツ部分で使用可能
<!-- から --> までの複数行をコメントアウトする。
コメントはクライアント側に送信されるがブラウザには表示されない。
例4
<!--
	<input type="text" name="txtValue">
-->

更新履歴

2013/12/09 説明追記
2007/12/01 Javaのコーナー細分化に伴い、URL の変更


TOPJavaJSP → This Page