条件付き構造。 Eclipseの作業環境。 Java識別子
Java言語の構文はC言語の構文に基づいていますが、次の違いがあります。
識別子:
- 識別子を書くときは、ラテン文字と国のアルファベットの文字の両方を使用できます。
- 識別子にはドル記号を含めることができます.
基本的な構文規則は次のとおりです
- 大文字と小文字は異なる文字と見なされるため、Jとjは完全に異なる変数です。
- 識別子を書くときは、ラテン文字と国のアルファベット、数字、下線、ドル記号の文字が使用されます。 識別子を数字で始めたり、スペースを含めたりすることはできません。 識別子の長さは制限されていませんが、プログラムを読みやすくするために、短くて意味のある名前を使用するように努める必要があります。
- コメントには2つのタイプがあります。
- 複数行コメント。 本文中のコメントは、次のように角かっこで囲まれています。
/ *これはコメントのテキストです* /
どこにでも、特にオペレーター内に入力できます。 - 1行コメント。 コメントを見る:
//これはコメントのテキストです-行末までのみ有効です
- 複数行コメント。 本文中のコメントは、次のように角かっこで囲まれています。
- 各文は「;」で終わります。 "。
- 1行に複数のステートメントを配置できます。
- 中括弧()は複合ステートメントを示します。 それらの間に配置されたすべての演算子は、1つの演算子として扱われます。
- 使用するすべてのタイプは、最初に使用する前に説明する必要があります。 広告はプログラムのどこにでも配置できます。
- 文字は一重引用符で囲み、文字列は二重引用符で囲みます。
キーワード
キーワードはコンパイラにとって特別な意味を持ち、これらの単語はそれらが定義されている意味でのみ使用できます。 予約語をカスタム識別子として使用することはできません。
一方の変数を変更すると、もう一方の変数も変更されます。 オブジェクトが宣言されると、メモリ位置のアドレスが取得されます。これは通常、オブジェクトに関連するすべてのデータを含む予約領域の最初のメモリ位置のアドレスです。 このオブジェクトの操作はすべて、このアドレスを参照します。 オブジェクトの2つのインスタンスの比較は、これらのインスタンスを参照して実行されます。
Java列挙型コード例
これは、クラス内のすべてのコードを書き直すことなく、クラスに機能を追加するプロセスです。 新しいクラスは、派生元のクラスのすべてのデータとメソッドを継承します。 次に、パラメータのないコンストラクタが親クラスに存在する必要があります。 たとえば、長方形の親クラスを継承する新しい長方形のクラスを作成するなど、すでに説明したものとは異なる方法でソリッド長方形を描画できます。 長方形のデータに対しては、カプセル化の原則に反して、公開されている必要があります。
キーワードはグループに分類できます。
解決策は、保護された修飾子を使用してクラス変数を定義することです。 protectedによって保護されているクラスのメンバーは、派生クラスからアクセスできますが、他のクラスからはアクセスできません。 アプレットのコンテキストをクリックしてアクティブにします。 多くの言語では、引数を値またはアドレスで渡すことができます。 引数の実際のアドレスはメソッドに不明であるため、メソッドは引数を変更できません。
条件付き構造とは何ですか?
引数がメソッドのアドレスに渡されると、引数変数がメソッドに渡されます。メソッドによって変数の値に加えられた変更は、即時かつ最終的なものです。 条件付き構造は、条件が真であるかどうかをテストするためのステートメントと呼ばれます。 これらの条件付き構造は、条件の実装に従って繰り返される構造に関連付けることができます。これらの構造はループ構造と呼ばれます。
プリミティブデータ型 |
byte、short、int、long、char、float、double、boolean |
ループとブランチ |
if、else、switch、case、default、while、do、break、continue、for |
例外 |
試して、キャッチして、最後に、投げて、投げて |
スコープ | プライベート、保護、パブリック |
宣言、インポート |
import、package、class、interface、extends、implements、static、final、void、abstract、native テストを行うためのより短い方法この式の構文。 三項演算子と呼ばれる次の構造のおかげで、それほど厳しくない構造でテストを行うことができます。
基本的な言語操作デフォルトのキーワードは、式が値の1つと等しくならない場合に実行される演算子のリストの前にあります。 これらの構造は、反復命令または反復と呼ばれることもあります。 ループを実行する最も一般的な方法は、カウンターを作成し、カウンターが特定の値を超えたときにループを停止することです。 |
作成、返却、電話 |
新しい、戻る、これ、スーパー |
マルチスレッド |
同期、揮発性 |
予約キーワード | |
特別予約 |
instanceof、enum、assert、transient、strictfp |
操作標識
演算記号は、算術演算、論理演算、およびその他の演算を示すことを目的としています。 最も一般的に使用される操作記号を表に示します。
このステートメントは、条件が満たされている限り、コマンドのリストを実行します。 サイクルを終了せずにサイクルするには、1つ以上の値が必要になる場合があります。 この式の構文は「連続」であり、通常は条件付き構造に関連付けられています。そうでない場合、このステートメントとループの終わりの間の行は廃止されます。
フォーラムで見つかった関連するディスカッション
幸い、連続命令のおかげで、この値を個別に検討してから、ループを続行できます。 逆に、ループヘッダーで指定された条件とは異なる条件では、ループを途中で停止する必要がある場合があります。 把握する必要のある識別子の3つの側面があります。 有効な識別子:名前が有効かどうかを判別するためにコンパイラーが使用する規則。 それらを知って、将来のアプリケーションで使用する必要があります。 ..。 識別子は、プログラム内のクラス、変数、またはメソッドを識別する名前です。
手術 | 簡単な説明 |
+ | 添加 |
- | 減算 |
* | 乗算 |
/ | 分割 |
= | 割り当て |
++ |
インクリメント(1ずつ増加); x ++; x = x +1と同等; |
-- |
デクリメント(1ずつ減少); NS - ; x = x-1と同等; |
+= | y + = x; y = y + xと同等; |
-= | y- = x; y = y-xと同等。 |
*= | y * = x; y = y * xと同等; |
/= | y / = x; y = y / xと同等; |
%= | y%= x; y = y%xと同等; |
== | 等しい |
!= | 等しくない |
> | もっと |
< | 小さい |
>= | 多かれ少なかれ |
<= | 以下 |
% | 整数除算の余り |
&& | 論理積 |
|| | 論理OR |
! | 論理否定NOT |
ノート。
知っておく必要のあるルールは次のとおりです。 実際には、識別子に含めることができる文字数に制限はありません。 プログラムでキーワードを識別子として使用することはできません。
- 数字で始める必要はありません。
- 以下は、利用可能なキーワードの完全なリストです。
無効な識別子の例をいくつか示します。理由を知っておく必要があります。 これらの規則に同意してコーディングを開始すると、テスト、保守、および改善の労力を減らすことができます。 また、中括弧についても考えてみてください。同じ行に書かれていることがあり、コードが判読できなくなります。
分割
- 2つの整数が除算されると、整数除算の結果が得られます。
5/3 = 1。ただし、整数除算の余りは5%3 = 2です。 - 引数の1つが実数の場合、通常の除算があります。
5 / 2.0 = 2.5
- 2つの整数が除算されると、整数除算の結果が得られます。
インクリメントとデクリメント
インクリメントには、プレフィックス形式とポストフィックス形式の2つの形式があります。
また、名前は通常、動詞名の組み合わせである必要があります。 ..。 これらは単なるプライベートインスタンス変数です。 クラスの外部からアクセスできる唯一の方法は、クラスのメソッドを使用することです。 プロパティの値を変更するメソッドはセッターと呼ばれ、プロパティの値を取得するメソッドはゲッターと呼ばれます。 クラスにlabelという名前の変数を含める必要はないことに注意してください。 プロパティ名は、クラスの変数からではなく、ゲッターとセッターから推測されます。 イベントモデルは、グラフィカルアプリケーションでよく使用されます。クリックなどのイベントがトリガーされると、治療法がある可能性のある他のオブジェクトが、このイベントが発生したときに情報を取得します。
プレフィックスフォーム
最初に、変数が1つ増加(または減少)され、次に新しい値を使用してさらに計算が実行されます。
int a = 5; int b = 5; int y = 10 + --a; int z = 10 + ++ b; System.out.println( "a =" + a); System.out.println( "b =" + b); System.out.println( "y =" + y); System.out.println( "z =" + z);
出力は次のようになります。
a = 4
b = 6
y = 14
z = 16
この例では、変数aが最初に1ずつデクリメントされ、bが1ずつ増加してから、yとzの式が計算されます。
これらのオブジェクトはリスナーと呼ばれます。 イベントソースを使用してリスナーを追加するために使用されるメソッド名では、追加プレフィックスの後にリスナータイプを使用する必要があります。 リスナーの削除に使用されるメソッド名は、add recordメソッドと同じルールを使用して、removeプレフィックスの後にリスナータイプを使用する必要があります。 追加または削除するリスナーのタイプは、引数としてメソッドに渡す必要があります。 変数の有効な識別子は、メソッドまたはクラスの有効な識別子でもあることに注意してください。
接尾辞フォーム
接尾辞形式の場合、式は最初に変数の古い値で評価され、式が評価された後、変数の値が1つ増加(または減少)します。
int a = 5; int b = 5; int y = 10 + a--; int z = 10 + b ++; System.out.println( "a =" + a); System.out.println( "b =" + b); System.out.println( "y =" + y); System.out.println( "z =" + z);
出力は次のようになります。
a = 4
b = 6
y = 15
z = 15
つまり、命名基準に準拠していなくても、識別子が合法であることを受け入れる必要があります。 ここでは、最も重要な章の1つを扱っています。条件はプログラミングのもう1つの基本的な概念です。 クラスでは、読み取りと実行は順番に、つまり行ごとに実行されます。 条件があれば、すべてのコードを読まなくてもさまざまなシナリオを管理できます。 すべてのプロジェクトが条件とサイクルの単なるシーケンスと関係であることがすぐにわかります。
問題の核心に直行しましょう。 条件を作成して評価する前に、これにいわゆる「論理演算子」を使用することを知っておく必要があります。 これらは主に、さまざまな可能性のあるケースを評価するための設定で使用されます。 知る。
式は、変数の古い値で評価されます。 の式を評価した後 yと z変数 NS 1減少し、変数 NS 1つ増えます。
論理演算
「&&」演算の最初の値がfalseの場合、2番目の値はチェックされません。「or」演算では、その逆になります。最初の値がtrueの場合、2番目の値はチェックされません。
後者の場合、この章の最後に示す例をよりよく理解できます。 これにより、「前の戦いと同じ戦い」という条件を指定できます。 ..。 ユーザーに相対整数の入力を求めるプログラムを想像してみてください。 条件付き構造により、これら3つのシナリオを管理できます。 これらの条件の構造は次のとおりです。
私たちの小さな例を使用してみましょう。 この場合、クラスは「正の数」を表示します。 何が起こっているのか説明しましょう。 条件付き構造を提示するときは、中括弧を付けますが、そこには入れません。 実際、中括弧は「通常の」条件付き構造体に存在しますが、中括弧内のコードが1行のみで構成されている場合、中括弧はオプションになります。
真理値表「&&」、「||」
NS | NS | A && B | A || NS |
NS | NS | NS | NS |
NS | NS | NS | NS |
NS | NS | NS | NS |
NS | NS | NS | NS |
これが例です。
これはインデントと呼ばれます! あなたの将来のプログラムであなたを見つけることは非常に役に立ちます。 150の条件を持つ700行のプログラムがあり、すべてが左端に沿って書き込まれていると2秒間想像してみてください。 テストとコードを区別するのは難しいでしょう。 先に進む前に、文字列が等しいかどうかを確認できないことを知っておく必要があります。 この点については後で説明します。 ここで、最初に見たブール演算子を使用して、指定された数値が既知の間隔内にあるかどうかを確認します。
たとえば、整数が50からの間であるかどうかをチェックします。 この演算子は、集合交差の概念を紹介します。 ここには2つの条件があり、それぞれがセットを定義します。 したがって、条件は、これら2つのセットに属する番号、つまり51から99までの番号を再グループ化します。 定義する間隔を検討してください。
ブール値a = true; ブールb = true; ブールc = false; ブールd = false; System.out.println( "true && true =" +(a && b)); // truetrue結果trueSystem.out.println( "true && false =" +(a && c)); // truefalse結果はfalseですSystem.out.println( "false && true =" +(c && a)); // falseの結果falseSystem.out.println( "false && frue =" +(c && d)); // falsefalse結果falseSystem.out.println( "true || true =" +(a || b)); // truetrue結果trueSystem.out.println( "true || false =" +(a || c)); // truefalse結果trueSystem.out.println( "false || true =" +(c || a)); // falseの結果trueSystem.out.println( "false || false =" +(c || d)); // falsefalse結果はfalse
このスイッチは、主に「アラカルト」の条件が必要な場合に使用されます。 2つの質問がある調査の例を見てください。それぞれについて、0または10ポイントしか取得できません。これにより、たとえば3つのメモ、つまり3つの可能な評価が得られます。
時々この章を読み直してください。 ..。 この場合、スイッチを使用して、繰り返されても不要にならないようにし、コードを少し軽くします。 この式によって実行される操作は次のとおりです。 クラスは切り替え後に式を評価します。それ以外の場合は、次のタブに移動します。 この命令の有用性をよりよく理解するために、すべての区切りを削除してください。 プログラムをコンパイルします。 三元条件は非常に複雑で、比較的ほとんど使用されていません。 これらの条件の特徴は、3つのオペランドが含まれることですが、これらの条件はデータを変数に割り当てるために使用されることもあります。
出力は次のようになります。
true && true = true
true && false = false
false && true = false
false && false = false
true || true = true
true || false = true
false || true = true
false || false = false
JSPページには、HTML仕様に準拠する標準構文と、Java ServerPages仕様で定義されているJSP構文の組み合わせ構文があります。 JSP構文は、標準のHTMLタグとJSPタグで構成されるJSPページを作成するためのルールを定義します。
これは、このタイプの構造がどのように見えるかです。 何が起こっているのかを飾ります。 割り当ては有効です。最大変数を使用できます。 値に影響を与える前に計算を実行することもできます。 変数に割り当てる値は、変数と同じタイプでなければならないことを忘れないでください。 また、3D条件を別の3値条件に挿入することを妨げるものは何もないことにも注意してください。
条件では、特定のコードのみを実行できます。 ..。 コマンドブロックに複数の行が含まれている場合は、コマンドブロックの開始と終了を明確に識別するために、中括弧で囲む必要があります。 条件を設定できるようにするには、ブール演算子を使用して変数を比較する必要があります。
JSPページには、HTMLタグに加えて、次のカテゴリのJSPタグが含まれています。
JSPディレクティブ
JSPディレクティブサーバーに送信された特定の要求に関するグローバル情報を提供し、翻訳段階で必要な情報を提供します。 ディレクティブは常に他のすべてのタグの前にJSPページの先頭に配置されるため、 パーサー(パーサー)JSPは、テキストを解析するときに、最初にグローバル命令を強調表示しました。 したがって、JSPエンジン(JSPランタイム)はコードを解析し、JSPからサーブレットを作成します。 指令 JSPコンテナへのメッセージです。
状態に必要な数のブール比較を入れることができます。 ループの役割は、同じ操作を複数回繰り返すことです。 すべてのプログラム、またはほとんどすべてのプログラムがそのような機能を必要とします。 ループを使用して、プログラムを最初からやり直したり、特定のユーザーアクションを待ったり、一連のデータを表示したりします。
条件が満たされている限り、ループが実行されます。 したがって、前の章の概念を使用します。 これは、ほぼ「限り」を意味します。 次に、条件があります。ループを停止できます。 ループは、それを制御できる場合にのみ有用であるため、特定の回数だけ命令を繰り返すようにします。
構文 JSPディレクティブ次のように:
<%@ директива имяАтрибута="значение" %>
タスクの構文 ディレクティブ XMLの場合:
JSPディレクティブ複数の属性を持つことができます。 この場合、ディレクティブは属性ごとに繰り返すことができます。 同時に、カップル "属性名=値"スペースを区切り文字として使用して、1つのディレクティブの下に配置できます。
ディレクティブには次の3つのタイプがあります。
- ページ(ページ)
- taglib(タグライブラリ)
- インクルード(インクルード)
JSPページディレクティブ
JSPページディレクティブトランスレータに影響を与えるJSPページのプロパティを定義します。 ディレクティブ内の属性の順序 ページ重要ではない。 構文に違反したり、認識されない属性が存在したりすると、翻訳エラーが発生します。 ディレクティブの例 ページ次のコードが役立ちます。
<%@ page buffer="none" isThreadSafe="yes" errorPage="/error.jsp" %>
pageディレクティブは、このJSPページがバッファリングを使用しないこと、複数のユーザーが同時にこのJSPページにアクセスできること、および error.jsp.
JSPページディレクティブページに関する情報が含まれる場合があります。
<%@ page info = "JSP Sample 1" %>
可能なディレクティブ属性のリスト ページ表に示されています。
属性名 | 意味 | 説明 |
---|---|---|
言語 | ライン | 翻訳されたコードの本体を含む、JSPファイルのスクリプトレット、式、または任意のインクルードファイルで使用される言語を決定します。 デフォルトは「java」です |
拡張します | ライン | 生成されたサーブレットのスーパークラスを指定します。 サーバーがすでにスーパークラスを使用している可能性があるため、この属性は細心の注意を払って使用する必要があります。 |
輸入 | ライン | インポートするパッケージの定義。例: <%@ page import="java.util.* %> |
セッション | 正しいか間違っているか | 意味 NS(デフォルト)は、事前定義された変数を示します セッション(タイプHttpSession)は、既存のセッションにバインドする必要があります。バインドしない場合は、新しいセッションが作成されてバインドされます。 意味 NSセッションが使用されないことを決定し、変数へのアクセスを試みます セッション JSPページをサーブレットに変換するときにエラーが発生します |
バッファ | なし、またはバッファのサイズ(kB)。 | JspWriter出力のバッファサイズを設定します。 デフォルト値はサーバー設定によって異なり、8kBを超えてはなりません。 値が なし出力はオブジェクトに直接送られます ServletResponse |
autoFlush | 正しいか間違っているか | バッファがオーバーフローしたとき、またはエラーが発生したときに、バッファを自動的に空にするかどうかを決定します。 デフォルトは NS |
isThreadSafe | 正しいか間違っているか | 意味 NS(デフォルト)サーブレットの通常の実行モードを指定します。作成者がそのインスタンスの変数へのアクセスを同期していると仮定して、単一のサーブレットインスタンスを使用して複数のリクエストが同時に処理されます。 偽の値は、サーブレットが継承する必要があることを示します SingleThreadModel(シングルスレッドモデル)シーケンシャルリクエストまたはコンカレントリクエストがサーブレットの個別のインスタンスによって処理される場合 |
情報 | ライン | メソッドを使用してアクセスされるJSPページに関する情報の文字列を定義します サーブレット.getServletInfo() |
errorPage | ライン | 属性値は、例外の原因となる可能性のあるエラーの場合に表示されるページのURLです。 |
isErrorPage | 正しいか間違っているか | このページを使用して他のJSPページのエラーを処理できるかどうかを通知します。 デフォルトは NS |
contentType | ライン | JSPページと応答のエンコーディング、およびJSP応答のMIMEタイプを指定します。 コンテンツタイプのデフォルト値は テキスト/ html、エンコーディング- ISO-8859-1。例えば: contentType = "text / html; charset = ISO-8859-1" |
pageEncoding | ライン | JSPページの文字エンコードを決定します。 デフォルトは 文字コード属性から contentTypeそこで定義されている場合。 値が 文字コード属性内 contentType未定義、値 pageEncoding等しく設定されている ISO-8859-1 |
JSPtaglibディレクティブ
JSPディレクティブ taglib指定されたJSPページがタグライブラリを使用することを宣言し、URIで一意に識別し、ライブラリの操作に使用できるタグプレフィックスをマップします。 コンテナがタグライブラリを見つけられない場合、致命的な変換エラーが発生します。
指令 taglib構文は次のとおりです。
<%@ taglib uri="含まれているタグライブラリのURI"プレフィックス=" プレフィックス名" %>
プレフィックス " プレフィックス名「ライブラリを参照するときに使用されます。タグライブラリの使用例 mytags:
<%@ taglib uri="http://www.taglib/mytags" prefix="customs" %>
. . .
この例では、タグライブラリにURIがあります "http://www.taglib/mytags"、文字列はプレフィックスとして割り当てられます 税関これは、タグライブラリの要素にアクセスするときにJSPページで使用されます。
JSPincludeディレクティブ
JSPディレクティブ 含む JSPページをサーブレットに変換するときにテキストまたはコードを挿入できます。 ディレクティブ構文 含むこのように見えます:
<%@ include file="含めるページの相対URI" %>
指令 含む 1つの属性があります- ファイル..。 指定されたリソースのテキストがJSPファイルに含まれます。 このディレクティブを使用して、すべてのJSPページに標準の著作権ヘッダーを配置できます。
<%@ include file="copyright.html" %>
JSPコンテナはインクルードファイルにアクセスします。 インクルードファイルが変更された場合、コンテナはJSPページを再コンパイルできます。 指令 含む JSPページなどのリソースを静的オブジェクトとして扱います。
指定されたURIは通常、リンクが配置されているページのJSPを基準にして解釈されますが、他の相対URIと同様に、接頭辞を付けることで、WEBサーバーのホームディレクトリに対する対象のリソースの位置をシステムに伝えることができます。 「/」文字を含むURI。 インクルードファイルのコンテンツはプレーンJSPテキストとして扱われるため、静的HTML、スクリプト要素、ディレクティブ、アクションなどの要素を含めることができます。
多くのサイトでは、すべてのページで小さなナビゲーションバーを使用しています。 HTMLフレームの使用には問題があるため、このタスクは、ページの上または左半分に小さなテーブルを配置することで解決されることがよくあります。このテーブルのHTMLコードは、サイトのページごとに何度も繰り返されます。 指令 含む-これは、この問題を解決するための最も自然な方法であり、開発者をHTMLを個別のファイルにコピーするという悪夢から救います。
指令以来 含むページの翻訳中にファイルを接続し、ナビゲーションバーに変更を加えた後、それを使用してすべてのJSPページを再翻訳する必要があります。 添付ファイルが頻繁に変更される場合は、アクションを使用できます jsp:含めるこれは、JSPページにアクセスするときにファイルを接続します。
JSP宣言ディレクティブ
JSPディレクティブ 宣言スクリプト言語で変数とメソッドを定義することを目的としています。これらは後でJSPページで使用されます。 構文 宣言このように見えます:
<%! код Java %>
宣言は宣言ブロックにあり、JSPページの式ブロックで呼び出されます。 宣言ブロックのコードは通常Javaで記述されていますが、アプリケーションサーバーは他のスクリプトの構文を使用できます。 広告 JavaBeansコンポーネントのプロパティから取得した動的データを操作するときに、機能を追加するために使用されることがあります。 の例 広告表に示されています。
宣言関数の値を計算するための以下のコードのように、複数の行を含めることができます 事実(int n)、nが2未満でnの場合、1に等しくなります。 nの正の値で;
<%! public static int fact (int n) { if (n <= 1) return 1; else return n * fact (n - 1); } %>
宣言標準出力への出力を生成しません アウト..。 宣言で宣言された変数とメソッドは初期化され、スクリプトレットなどで使用できるようになります 広告 JSPページが初期化されたとき。
スクリプトレットスクリプトレット
スクリプトレットディレクティブで定義されたスクリプト言語で記述されたさまざまなコードを含める 言語..。 コードスニペットは、言語の構文構造に準拠している必要があります スクリプトレットつまり、通常はJava言語の構文です。 スクリプトレット次の構文があります。
<% текст скриптлета %>
同等の構文 スクリプトレット XMLの場合:
本文中の場合 スクリプトレット文字のシーケンス%>は、タグとしてではなく、文字の組み合わせとして正確に使用する必要があります-終了記号 スクリプトレット、シーケンス%>の代わりに、次の文字の組み合わせ%\>を使用します。
JSP仕様は、単純でわかりやすい例を提供します スクリプトレットこれにより、JSPページのコンテンツが1日を通して動的に変更されます。
<% if (Calendar.getInstance ().get (Calendar.AM_PM) == Calendar.AM) {%>おはようございます<% } else { %>こんにちは<% } %>
内部のコードは注意する必要があります スクリプトレット記述どおりに挿入され、すべての静的HTMLテキスト(テンプレートテキスト)が前後に挿入されます スクリプトレット演算子を使用して変換 印刷..。 これは、スクリプトレットに完成したJavaチャンクを含める必要がなく、開いたままのチャンクが外部の静的HTMLに影響を与える可能性があることを意味します。 スクリプトレット.
スクリプト式と同じ自動定義変数にアクセスできます。 したがって、たとえば、ページに情報を表示する必要がある場合は、変数を使用する必要があります アウト.
<% String queryData = request.getQueryString (); out.println ("Дополнительные данные запроса: " + queryData); %>
式式
式 式 JSPページで、言語宣言で指定されたスクリプト言語(通常はJava)で記述された実行可能式。 結果 式必要なタイプの文字列であるJSPは、標準の出力ストリームに送信されます アウト現在のオブジェクトを使用する JspWriter..。 結果が 式キャストできません 弦、翻訳段階で問題が検出された場合に翻訳エラーが発生するか、例外がスローされます ClassCastExceptionリクエストの実行中に不整合が検出された場合。 表現構文は次のとおりです。
<%= текст выражения %>
JSPの代替構文 式 XMLを使用する場合:
実行順序 式 JSPページで左から右へ。 もしも 表現複数のランタイム属性に表示され、そのタグで左から右に実行されます。 表現特定のスクリプト(通常はJava)の完全な式である必要があります。
式 HTTPプロトコルの実行中に実行されます。 式の値は文字列に変換され、JSPファイルの適切な位置に含まれます。
式通常、JSPページ宣言ブロックで定義された、またはJSPからアクセス可能なJavaBeansから派生した変数とメソッドの文字列表現を計算して表示するために使用されます。 次のコード 式ページリクエストの日付と時刻を表示するのに役立ちます。
現在の時刻:<%= new java.util.Date () %>
単純化するために 式使用できる事前定義された変数がいくつかあります。 最も一般的に使用される変数は次のとおりです。
- リクエスト、HttpServletRequest;
- 応答、HttpServletResponse;
- セッション、HttpSession- リクエストに関連付けられている場合。
- アウト、PrintWriter- クライアントにデータを送信するためのJspWriterタイプのバッファバージョン。