このセクションでは、JSP 開発における基本的な構文を簡単に紹介します。
スクリプト言語で有効であれば、スクリプトには Java ステートメント、変数、メソッド、または式をいくつでも含めることができます。
スクリプト プログラムの構文形式は次のとおりです。
<% コード スニペット%>
あるいは、次のように同等の XML ステートメントを作成することもできます。
<jsp:scriptlet> コード スニペット</jsp:scriptlet>
テキスト、HTML タグ、および JSP 要素は、スクリプト プログラムの外部に記述する必要があります。
以下に例を示します。これは、このチュートリアルの最初の JSP 例でもあります。
<html><head><title>Hello World</title></head><body>Hello World!<br/><% out.println("あなたの IP アドレスは " + request.getRemoteAddr()); ></body></html>
注: Apache Tomcat が C:apache-tomcat-7.0.2 ディレクトリにインストールされており、実行環境が正しく設定されていることを確認してください。
上記のコードを hello.jsp に保存し、C:apache-tomcat-7.0.2webappsROOT ディレクトリに配置し、ブラウザを開いてアドレス バーに http://localhost:8080/hello と入力します。 。実行後、次の結果が得られます。
宣言ステートメントでは、後続の Java コードで使用する 1 つ以上の変数とメソッドを宣言できます。 JSP ファイルでは、これらの変数とメソッドを使用する前に宣言する必要があります。
JSP宣言の構文形式は次のとおりです。
<%! 宣言; [ ]+ ... %>
あるいは、次のように同等の XML ステートメントを作成することもできます。
<jsp:declaration>コード スニペット</jsp:declaration>
プログラム例:
<%! int i = %> <%! int a, b, c; <%! 円 a = 新しい円 (2.0);
JSP 式に含まれるスクリプト言語式は、まず String に変換されてから、式が出現する場所に挿入されます。
式の値は文字列に変換されるため、HTML タグであるかどうかに関係なく、テキスト行で式を使用できます。
式要素には、Java 言語仕様に準拠する任意の式を含めることができますが、セミコロンを使用して式を終了することはできません。
JSP式の構文形式:
<%= 式%>
同様に、同等の XML ステートメントを作成できます。
<jsp:expression> 式</jsp:expression>
プログラム例:
<html> <head><title>コメント テスト</title></head> <body><p> 今日の日付: <%= (new java.util.Date()).toLocaleString()%></ p></body> </html>
実行後、次の結果が得られます。
今日の日付: 2013 年 9 月 11 日 21:24:25
JSP コメントには、コードへのコメントとコードの特定のセクションのコメント アウトという 2 つの主な機能があります。
JSP コメントの構文形式は次のとおりです。
<%-- ここに JSP コメントを入力できます--%>
プログラム例:
<html> <head><title>コメントのテスト</title></head> <body> <h2>コメントのテスト</h2> <%-- コメントのこの部分は Web には表示されませんページ -- %> </body> </html>
実行後、次の結果が得られます。
コメントのテスト
さまざまな状況でコメントを使用するための文法規則:
文法 | 説明する |
---|---|
<%--コメント--%> | JSP コメントの場合、コメントの内容はブラウザに送信されず、コンパイルもされません。 |
<!-- コメント --> | HTMLコメントは、ブラウザでWebページのソースコードを閲覧する際にコメント内容を確認できます。 |
<% | 静的 <% 定数を表します |
%> | 静的な %> 定数を表します |
' | 属性で使用される一重引用符 |
「 | 属性で使用される二重引用符 |
JSP ディレクティブは、JSP ページ全体に関連するプロパティを設定するために使用されます。
JSP 命令の構文形式:
<%@ ディレクティブ属性="値" %>
ディレクティブ タグは 3 つあります。
命令 | 説明する |
---|---|
<%@ ページ ... %> | スクリプト言語、エラーページ、キャッシュ要件など、ページの依存関係属性を定義します。 |
<%@ インクルード ... %> | 他のファイルを含める |
<%@ タグライブラリ ... %> | タグ ライブラリの定義を紹介します。これはカスタム タグにすることができます。 |
JSP 動作タグは、XML 構文構造を使用してサーブレット エンジンを制御します。ファイルを動的に挿入したり、JavaBean コンポーネントを再利用したり、ユーザーを別のページに誘導したり、Java プラグインに関連する HTML を生成したりできます。
動作タグの構文形式は 1 つだけで、XML 標準に厳密に準拠しています。
<jsp:action_name 属性="値" />
動作タグは基本的にいくつかの事前定義された関数です。次の表に、使用可能な JSP 動作タグの一部を示します。
文法 | 説明する |
---|---|
jsp:インクルード | 現在のページに静的または動的リソースを含めるために使用されます |
jsp:useBean | JavaBeanコンポーネントを検索して初期化する |
jsp:setProperty | JavaBeanコンポーネントの値を設定します。 |
jsp:getProperty | JavaBeanコンポーネントの値を出力に挿入します。 |
jsp:転送 | ユーザーのリクエストを含むリクエスト オブジェクトを、ある JSP ファイルから別の JSP ファイルに渡します。 |
jsp:プラグイン | 生成された HTML ページにアプレットおよび JavaBean オブジェクトを含めるために使用されます。 |
jsp:要素 | XML要素を動的に作成する |
jsp:属性 | 動的に作成された XML 要素の属性を定義する |
jsp:ボディ | 動的に作成される XML 要素の本体を定義します |
jsp:テキスト | テンプレートデータをカプセル化するために使用されます |
JSP は、暗黙的オブジェクトと呼ばれる 9 つの自動的に定義された変数をサポートします。これら 9 つの暗黙的オブジェクトの概要を以下の表に示します。
物体 | 説明する |
---|---|
リクエスト | HttpServletRequestクラスのインスタンス |
応答 | HttpServletResponseクラスのインスタンス |
外 | PrintWriterクラスのインスタンス。結果を Web ページに出力するために使用されます。 |
セッション | HttpSessionクラスのインスタンス |
応用 | アプリケーションコンテキストに関連するServletContextクラスのインスタンス |
構成 | ServletConfigクラスのインスタンス |
ページコンテキスト | PageContextクラスのインスタンス。JSP ページのすべてのオブジェクトと名前空間へのアクセスを提供します。 |
ページ | Java クラスのこのキーワードと同様 |
例外 | Exceptionクラスのオブジェクトは、エラーが発生した JSP ページ内の対応する例外オブジェクトを表します。 |
JSP は Java 言語を完全にサポートします。 JSPプログラム内でJava APIを使用でき、判定文やループ文などのJavaコードブロックも作成できます。
If...else ブロックについては、次の例を見てください。
<%! int day = 3; %> <html> <head><title>IF...ELSE 例</title></head> <body><% if (day == 1 | day == 7) { %> <p> 今日は週末です</p><% } else { %> <p> 今日は週末ではありません</p><% } %></body> </html>
実行後、次の結果が得られます。
今日は週末ではありません
次に switch...case ブロックを見てみましょう。これは if...else ブロックとは大きく異なり、次のように完全にスクリプトのタグに含まれています。
<%! int day = 3; %> <html> <head><title>SWITCH...CASE の例</title></head> <body><% switch(day) { case 0: out.println( "今日は日曜日です。"); ケース 1: out.println("今日は月曜日です。"); ケース 2: out.println("今日は火曜日です。");ケース 3: out.println("今日は水曜日です。"); ケース 4: out.println("今日は木曜日です。"); ケース 5: out.println("今日は金曜日です。" ); デフォルト: out.println("今日は土曜日です。");
実行後、次の結果が得られます。
水曜日です。
ループステートメント
Java の 3 つの基本的なループ タイプ (for、while、do...while) を JSP プログラムで使用できます。
for ループの例を見てみましょう。
<%! int fontSize; %> <html> <head><title>FOR LOOP の例</title></head> <body><%for ( fontSize = 1; fontSize <= 3; fontSize++){ %> < font color="green" size="<%= fontSize %>"> JSP チュートリアル </font><br /><%}%></body> </html>
実行後、次の結果が得られます。
JSP チュートリアルJSP チュートリアルJSP チュートリアルwhile ループを使用して上記の例を書き直します。
<%! int fontSize %> <html> <head><title>WHILE LOOP の例</title></head> <body><%while ( fontSize <= 3){ %> <font color="green" size="<%= fontSize %>"> JSP チュートリアル </font><br /><%fontSize++;%><%}%></body> </html>
実行後も同じ結果が得られます。
JSP チュートリアルJSP チュートリアルJSP チュートリアルJSP は、すべての Java 論理演算子および算術演算子をサポートします。
次の表に、一般的な JSP 演算子を優先順位の順に示します。
カテゴリ | オペレーター | 結合性 |
---|---|---|
サフィックス | () [] . (ドット演算子) | 左から右へ |
1元 | ++ - - ! | 右から左へ |
乗算可能性 | */% | 左から右へ |
相加性 | + - | 左から右へ |
シフト | >> >>> << | 左から右へ |
関係 | > >= < <= | 左から右へ |
等しい/不平等 | == != | 左から右へ |
ビットAND | & | 左から右へ |
ビットXOR | ^ | 左から右へ |
ビットまたは | | | 左から右へ |
論理積 | && | 左から右へ |
論理的または | || | 左から右へ |
条件判断 | ?: | 右から左へ |
割り当て | = += -= *= /= %= >>= <<= &= ^= |= | 右から左へ |
コンマ | 、 | 左から右へ |
JSP 言語では次の定数が定義されています。
ブール値: true と false。
整数型 (int): Java と同じ。
Float: Java と同じ。
文字列: 一重引用符または二重引用符で始まり、終わります。
ヌル:ヌル。