注:コースウェブサイト:https://www.imooc.com/learn/166
2-1:JSP入門
サーブレット、JSPは、Javaサーバーページのフルネームは、単に簡略化設計されたJavaサーバーページでは、彼はJavaでHTMLタグを使用して達成しました。JSPは、動的なWeb技術標準ですが、またのJavaEE標準。JSPとサーブレットは、サーバー側で実行されます。
2-3:JSP入門ページ要素とページの説明
JSPページ要素は、構成:命令、表現、小さなスクリプト、文、コメント、静的なコンテンツを。
JSP命令は3種類あります。
(1)ページコマンドは、通常、JSPページの最上部に、同じページは、ページコマンドを複数有していてもよいです。
JSPページの文を解析中(2)現在のJSPファイルに指示、外部ファイルが含まれます。
(3)taglibディレクティブ、ラベルの使用は、新しいカスタムタブを定義するJSPページでカスタム動作を有効にします。
ページのコマンド構文:
<%@ページの項目1 =「属性値」項目2 =「1つの属性値、属性値2」...のn-属性=「属性値のn」%>注:ページの間に必要なスペースがあります@。
プロパティ | 説明 | デフォルト値 |
言語 | JSPページで使用されるスクリプト言語を指定します。 | ジャワ |
インポート | プロパティを使用してクラスファイルを参照するために使用されるスクリプト言語 | ノー |
contentTypeの | JSPページで使用されるファイルの種類とエンコーディングを指定するために使用されます | text / htmlで、ISO-8859-1 |
text / htmlの、それはテキストファイル、およびWebページであることを示しています。デフォルトの文字セットは、平易な英語の文字セット、ISO-8859-1です。
2-5:JSPのコメント
HTMLのコメント:<! - HTMLのコメント - > //クライアント目に見える(ソースを表示するために、クライアントのブラウザで閲覧することができます)
JSPのコメント://クライアント<% - - JSPコメント%>は表示されません
JSPスクリプト注:JSPスクリプトのコメントでのJavaの使用は、// 1行コメント/ *複数行コメント* /クライアントが表示されていません
2-7:JSPスクリプト
JSPスクリプト要素、実行することができるJSPページ内のJavaコード、ということで、我々は、JSPスクリプトと呼ばれ、JSPタグ内のコードを記述します。
構文:
<%Javaコード%>
out.printlnを(「みなさん、こんにちは、JavaEEの開発を学ぶために歓迎しています。」);ブラウザの出力ワードへの組み込みオブジェクトJSPを介してオブジェクト。
2-8:JSP声明
JSP宣言要素は、JSPページ内の変数またはメソッドの定義を指します。
構文:
<%!Javaコード%>
パーセント記号の感嘆符の後ろに!これは、いくつかのJavaコードに続く宣言文は、されていること。Javaコードは、それが以前に宣言された変数やメソッドを呼び出すために、将来のJSPページのスクリプトを容易にするための方法で定義することができ、変数を定義することができます。
<%!
文字列s =「ジョン・ドウ」; //文字列変数を宣言します
INT {//関数を宣言(int型のx、int型のy)を追加
X + Yを返します。
}
%>
2-9:JSP式
JSP式:JSPページで実行表現。
構文:
<%=式%> //注:式はセミコロンで終わっていません
こんにちは、<%= sの%> <BR>
X + Y = <%=追加(10、5)%> <BR>
2-10:JSPページのライフサイクル
JSPページのライフサイクル:これは、この章、「JSP構文」の焦点です。
JSPページのライフサイクルは、一般的にいくつかのステップに分け。
まず、私たちはクライアントのブラウザを使用して、ユーザーがサーバーにリクエストを送信することを前提とし、例えば、彼は私たちのウェブサーバープロジェクトのホーム・ページのindex.jspを訪問すると述べました。私たちは、このユーザーは、このページindex.jspのリソースへのアクセスを要求するサーバーにリクエストを送信呼び出します。
サーバはユーザの要求を受信した後、それは最初のユーザーが、リソースが最初の要求であるアクセスかどうかを判断する必要があります。
これが最初の要求であれば、私たちのTomcatのJSPエンジンがJSP、サーブレット、本質的にはサーブレットにファイルを変換するために、彼はまた、Javaクラスです。このJavaクラスは、バイトコードファイルを生成し、このクラスjspInit()は、初期化方法を実行するようにコンパイルされます。具体的には、実行するために対応するバイトコードファイルをコンパイルする場合にのみ、その初期化方法に注意してください。この期間を通じて、その文は、彼は一度だけ行きました。
要求が初めてではない場合は、彼が生成したアクセスバイトコードファイルに直接行くだろう。
その後jspService()このメソッドと呼ばれるクラスの実装を解決します。jspService()メソッドは、ユーザ要求を処理するために使用されます。
詳細説明:
jspService()メソッドは、クライアント要求を処理するために呼び出されます。各要求について、JSPエンジンは、要求を処理するための新しいスレッドを作成します。複数のクライアントがある場合は、同時にJSPファイルを要求し、JSPエンジンは、複数のスレッドを作成します。これは、ベースのマルチスレッドのアプローチです。スレッドに対応する各クライアント要求。マルチスレッド実行が大幅にシステムリソースの需要を減らし、同時実行性とシステムの応答時間を改善することができます。しかし、また、そのようなトリガされますいくつかのように、マルチスレッドプログラミング、共有、および重要な資源の保護に起因する同期の問題に注意を払います。サーブレットは、常にメモリに駐留するので、応答が非常に高速です。
学習の例:
新規プロジェクトJspLifeCycleDemo、新index1.jsp。そして、Tomcatサーバーに追加し、サーバーを起動します。
ダブルクリックし、Ctrlキーを検索listaryソフトウェアindex1_jspを使用しています。(コンパイルされたバイトコードファイルならば、名前はindex1_jsp.javaとindex1_jsp.classになります)
いいえ。その理由は、サーバーがユーザーの要求を受信していないこと、すなわち、訪問されることはありません。サーブレットにコンパイルバイトコードファイルが生成さindex1.jsp一切のJSPページはありません。
リソースJspLifeCycleDemoプロジェクトindex1.jspアクセス:
再度、コンピュータ全体の検索index1_jspは、あなたはバイトコードファイルにコンパイルされ、見ることができます。
非常に重要なディレクトリであるTomcatのディレクトリ構造は、コンパイル済みのバイトコードファイルを格納している作品です。
オープンindex1_jsp.java。
最初のJSPページを実行する前に要求されるだけ_jspInit()、初期化メソッドがあります。
その後、メモリ内のサーブレット常駐。そして、各ユーザの要求のために、その後、スレッドを作成します。再び呼び出される各スレッドによる実行の方法_jspService()です。ユーザーの場合、各ユーザの要求することを、ユーザの要求を処理するために_jspService()メソッドを呼び出すために行ってきました。
上記は、JSPページのライフサイクルです。
ときにJSPページのコンテンツの変更、JSPエンジンは、ページを再コンパイルする必要があります。
検証の例:
index1.jsp変更します。
リフレッシュのページ:
そして、あなたは今の時間に、更新日時のindex1_jsp.javaとindex1_jsp.class二つの文書を見ることができます。
説明このクラスは、前に再コンパイルされます。オープンindex1_jsp.java、我々は最新のコードが含まれているかを確認することができます:
2-11:フェーズプロジェクト
式とスクリプトは、印刷乗算テーブルを達成するために使用されました。
私たちは、例外をスローする必要があります。
成功。