Jsp-syntax

提供:Dev Guides
移動先:案内検索

JSP-構文

この章では、JSPの構文について説明します。 JSP開発に関係する単純な構文(つまり要素)の基本的な使用方法を理解します。

JSPの要素

JSPの要素は以下に説明されています-

スクリプトレット

スクリプトレットには、ページスクリプト言語で有効な任意の数のJAVA言語ステートメント、変数またはメソッドの宣言、または式を含めることができます。

スクリプトレットの構文は次のとおりです-

<% code fragment %>

次のように上記の構文に相当するXMLを書くことができます-

<jsp:scriptlet>
   code fragment
</jsp:scriptlet>

記述するテキスト、HTMLタグ、またはJSP要素は、スクリプトレットの外部にある必要があります。 以下は、JSPの最初の簡単な例です-

<html>
   <head><title>Hello World</title></head>

   <body>
      Hello World!<br/>
      <%
         out.println("Your IP address is " + request.getRemoteAddr());
      %>
   </body>
</html>

-Apache TomcatがC:\ apache-tomcat-7.0.2にインストールされ、環境が環境設定チュートリアルに従って設定されていると仮定します。

上記のコードをJSPファイル hello.jsp に保持し、このファイルを C:\ apache-tomcat7.0.2 \ webapps \ ROOT ディレクトリに配置しましょう。 URL http://localhost:8080/hello.jsp を使用して同じものを参照します。 上記のコードは、次の結果を生成します-

Hello World

JSP宣言

宣言は、後でJSPファイルでJavaコードで使用できる1つ以上の変数またはメソッドを宣言します。 JSPファイルで使用する前に、変数またはメソッドを宣言する必要があります。

JSP宣言の構文は次のとおりです-

<%! declaration; [ declaration; ]+ ... %>

次のように上記の構文に相当するXMLを書くことができます-

<jsp:declaration>
   code fragment
</jsp:declaration>

以下は、JSP宣言の例です-

<%! int i = 0; %>
<%! int a, b, c; %>
<%! Circle a = new Circle(2.0); %>

JSP式

JSP式要素には、評価され、文字列に変換され、JSPファイルの式が現れる場所に挿入されるスクリプト言語式が含まれます。

式の値は文字列に変換されるため、JSPファイルでは、HTMLでタグ付けされているかどうかに関係なく、テキスト行内で式を使用できます。

expression要素には、Java言語仕様に従って有効な任意の式を含めることができますが、セミコロンを使用して式を終了することはできません。

JSP式の構文は次のとおりです-

<%= expression %>

次のように上記の構文に相当するXMLを書くことができます-

<jsp:expression>
   expression
</jsp:expression>

次の例は、JSP式を示しています-

<html>
   <head><title>A Comment Test</title></head>

   <body>
      <p>Today's date: <%= (new java.util.Date()).toLocaleString()%></p>
   </body>
</html>

上記のコードは、次の結果を生成します-

Today's date: 11-Sep-2010 21:24:25

JSPコメント

JSPコメントは、JSPコンテナが無視するテキストまたはステートメントをマークします。 JSPコメントは、JSPページの一部を非表示または「コメントアウト」する場合に役立ちます。

以下は、JSPコメントの構文です-

<%-- This is JSP comment --%>

次の例は、JSPコメントを示しています-

<html>
   <head><title>A Comment Test</title></head>

   <body>
      <h2>A Test of Comments</h2>
      <%-- This comment will not be visible in the page source --%>
   </body>
</html>

上記のコードは、次の結果を生成します-

A Test of Comments

特別に処理されるコメントや文字を挿入するためにさまざまなケースで使用できる少数の特別な構造があります。 ここに要約があります-

S.No. Syntax & Purpose
1

<%-- comment --%>

JSPのコメント JSPエンジンでは無視されます。

2

<!-- comment -→

HTMLのコメント ブラウザによって無視されます。

3

<\%

静的な<%リテラルを表します。

4

%\>

静的%>リテラルを表します。

5

\'

単一引用符を使用する属性内の単一引用符。

6

\"

二重引用符を使用する属性内の二重引用符。

JSPディレクティブ

JSPディレクティブは、サーブレットクラスの全体的な構造に影響します。 通常、次の形式があります-

<%@ directive attribute="value" %>

ディレクティブタグには3種類あります-

S.No. Directive & Description
1

<%@ page …​ %>

スクリプト言語、エラーページ、バッファリング要件などのページ依存の属性を定義します。

2

<%@ include …​ %>

翻訳フェーズ中にファイルを含めます。

3

<%@ taglib …​ %>

ページで使用されるカスタムアクションを含むタグライブラリを宣言します

別の章のリンクでJSPディレクティブについて説明します:/jsp/jsp_directives [JSP-Directives]

JSPアクション

JSPアクションは、XML構文の constructs を使用して、サーブレットエンジンの動作を制御します。 ファイルを動的に挿入したり、JavaBeansコンポーネントを再利用したり、ユーザーを別のページに転送したり、Javaプラグイン用のHTMLを生成したりできます。

XML標準に準拠しているため、Action要素の構文は1つだけです-

<jsp:action_name attribute="value"/>

アクション要素は基本的に事前定義された関数です。 次の表は、利用可能なJSPアクションを示しています-

S.No. Syntax & Purpose
1

jsp:include

ページが要求されたときにファイルを含めます。

2

jsp:useBean

JavaBeanを検索またはインスタンス化します。

3

jsp:setProperty

JavaBeanのプロパティを設定します。

4

jsp:getProperty

JavaBeanのプロパティを出力に挿入します。

5

jsp:forward

リクエスターを新しいページに転送します。

6

jsp:plugin

JavaプラグインのOBJECTまたはEMBEDタグを作成するブラウザー固有のコードを生成します。

7

jsp:element

XML要素を動的に定義します。

8

jsp:attribute

動的に定義されたXML要素の属性を定義します。

9

jsp:body

動的に定義されたXML要素の本体を定義します。

10

jsp:text

JSPページおよびドキュメントにテンプレートテキストを記述するために使用されます。

別の章のリンクでJSPアクションを説明します:/jsp/jsp_actions [JSP-Actions]

JSP暗黙オブジェクト

JSPは、暗黙オブジェクトとも呼ばれる9つの自動定義変数をサポートしています。 これらの変数は-

S.No. Object & Description
1

request

これは、リクエストに関連付けられた HttpServletRequest オブジェクトです。

2

response

これは、クライアントへの応答に関連付けられた HttpServletResponse オブジェクトです。

3

out

これは、出力をクライアントに送信するために使用される PrintWriter オブジェクトです。

4

session

これは、リクエストに関連付けられた HttpSession オブジェクトです。

5

application

これは、アプリケーションコンテキストに関連付けられた ServletContext オブジェクトです。

6

config

これは、ページに関連付けられた ServletConfig オブジェクトです。

7

pageContext

これにより、高性能 JspWriters などのサーバー固有の機能の使用がカプセル化されます。

8

page

これは単に this の同義語であり、変換されたサーブレットクラスによって定義されたメソッドを呼び出すために使用されます。

9

Exception

  • Exception* オブジェクトを使用すると、指定されたJSPから例外データにアクセスできます。

別の章のリンクで、JSP暗黙オブジェクトについて説明します:/jsp/jsp_implicit_objects [JSP-暗黙オブジェクト]。

制御フローステートメント

JSPプログラミングでは、意思決定ステートメント、ループなど、すべてのAPIとJavaの構成ブロックを使用できます。

意思決定声明

*if ... else* ブロックは通常のスクリプトレットのように始まりますが、スクリプトレットは各行で閉じられ、スクリプトレットタグの間にHTMLテキストが含まれます。
<%! int day = 3; %>
<html>
   <head><title>IF...ELSE Example</title></head>

   <body>
      <% if (day == 1 || day == 7) { %>
         <p> Today is weekend</p>
      <% } else { %>
         <p> Today is not weekend</p>
      <% } %>
   </body>
</html>

上記のコードは、次の結果を生成します-

Today is not weekend

ここで、* out.println()を使用してScriptletas内で少し異なるように記述された次の *switch …​ case ブロックを見てください-

<%! int day = 3; %>
<html>
   <head><title>SWITCH...CASE Example</title></head>

   <body>
      <%
         switch(day) {
            case 0:
               out.println("It\'s Sunday.");
               break;
            case 1:
               out.println("It\'s Monday.");
               break;
            case 2:
               out.println("It\'s Tuesday.");
               break;
            case 3:
               out.println("It\'s Wednesday.");
               break;
            case 4:
               out.println("It\'s Thursday.");
               break;
            case 5:
               out.println("It\'s Friday.");
               break;
            default:
               out.println("It's Saturday.");
         }
      %>
   </body>
</html>

上記のコードは、次の結果を生成します-

It's Wednesday.

ループ文

Javaでは、JSPプログラミングで for、while、do…while ブロックの3つの基本タイプのループブロックを使用することもできます。

次の for ループの例を見てみましょう-

<%! int fontSize; %>
<html>
   <head><title>FOR LOOP Example</title></head>

   <body>
      <%for ( fontSize = 1; fontSize <= 3; fontSize++){ %>
         <font color = "green" size = "<%= fontSize %>">
            JSP Tutorial
      </font><br/>
      <%}%>
   </body>
</html>

上記のコードは、次の結果を生成します-

   JSP Tutorial



   JSP Tutorial



   JSP Tutorial

上記の例は、次のように while ループを使用して記述できます-

<%! int fontSize; %>
<html>
   <head><title>WHILE LOOP Example</title></head>

   <body>
      <%while ( fontSize <= 3){ %>
         <font color = "green" size = "<%= fontSize %>">
            JSP Tutorial
         </font><br/>
         <%fontSize++;%>
      <%}%>
   </body>
</html>

上記のコードは、次の結果を生成します-

   JSP Tutorial



   JSP Tutorial



   JSP Tutorial

JSPオペレーター

JSPは、Javaでサポートされるすべての論理演算子および算術演算子をサポートします。 次の表に、優先順位が最も高い演算子がすべて表の上部に表示され、最も低い演算子が下部に表示されます。

式内では、優先順位の高い演算子が最初に評価されます。

Category Operator Associativity
Postfix () [] . (dot operator) Left to right
Unary ++ - - ! ~ Right to left
Multiplicative */% Left to right
Additive + - Left to right
Shift >> >>> << Left to right
Relational > >= < ⇐ Left to right
Equality == != Left to right
Bitwise AND & Left to right
Bitwise XOR ^ Left to right
Bitwise OR
Left to right Logical AND &&
Left to right Logical OR
Left to right
Conditional ?: Right to left
Assignment = += -=* =/= %= >>= <⇐ &= ^= =
Right to left Comma ,

JSPリテラル

JSP式言語は、次のリテラルを定義します-

  • ブール-trueおよびfalse
  • 整数-Javaのように
  • 浮動小数点-Javaのように
  • 文字列-一重引用符および二重引用符付き。 "は\としてエスケープされ、 'は'としてエスケープされ、\は\\としてエスケープされます。
  • ヌル-ヌル