Javaに関する様々な情報をご紹介します。

3宣言、スクリプトレット、式

Javaに関する様々な情報をご紹介します。

宣言、スクリプトレット、式

このページでは、JSPの構成要素の内、宣言、スクリプトレット、式について解説します。宣言、スクリプトレット、式を使用したJSPプログラムの例がJavaの道:JSP(はじめてのJSP)にあるため、そちらもご参照ください。

宣言

宣言では、変数、メソッドを宣言します。変数、メソッドの宣言の際は必ず;(セミコロン)が必要です。

<%! 宣言文; %>

宣言で宣言された変数、メソッドは初めてリクエストが合ったときに一度だけ呼び出されます。そのため、その後のリクエストにおいても変数の値は初期化されることなく、JSPコンテナ(Tomcatなど)を再起動するまで、値が保持されます。

【使用例1】変数cntを宣言タグ内で宣言しているため、初期化は一度しか行われず、カウンタの値は保持されます。そのため、変数cntの値はリクエストのたびに1づつ増加します。

<HTML>
<BODY>

    <%! int cnt = 0; %>
    <%= cnt++ %>

</BODY>
</HTML>

スクリプトレット

スクリプトレットは、JSPのタグでは記述できない処理をJavaコードを記述して自由な処理を実行する場合に使用します。Javaのコードのため、各コードには必ず;(セミコロン)が必要です。

<% スクリプトレット; %>

スクリプトレットで宣言された変数はリクエストのたびに呼び出されます。そのため、その後リクエストがあるたびに変数の値が初期化されます。

【使用例2】変数cntをスクリプトレット内で宣言しているため、リクエストのたびに初期化が行われます。そのため、変数cntの値は何度リクエストしても増加せず、かならず0が表示されます。

<HTML>
<BODY>

    <% int cnt = 0; %>
    <%= cnt++ %>

</BODY>
</HTML>

式では、Javaコードを記述しその実行結果を表示します。そのため、実行結果を返すコードしか記述することができません。実行結果を返さないvoidのメソッドや、変数の宣言のみを式に記述することはできません。

式では、;(セミコロン)を記述しません。

<%=%>

式で記述できるコード

コード 説明
<%= abc %> 変数abcの値を表示します。
<%= getValue( )
%>
メソッドgetValueの実行結果を表示します。

式で記述できないコード

コード 説明
<%= int abc = 0 %> 変数abcの宣言。
<%= setValue( ) %> 戻り値がvoidのメソッドsetValueの実行。

3宣言、スクリプトレット、式