Jsp-implicit-objects
JSP-暗黙的なオブジェクト
この章では、JSPの暗黙オブジェクトについて説明します。 これらのオブジェクトは、各ページのJSPコンテナが開発者に提供するJavaオブジェクトであり、開発者は明示的に宣言せずに直接呼び出すことができます。 JSP Implicitオブジェクトは、*事前定義変数*とも呼ばれます。
次の表に、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
|
リクエストオブジェクト
要求オブジェクトは、 javax.servlet.http.HttpServletRequest オブジェクトのインスタンスです。 クライアントがページを要求するたびに、JSPエンジンはその要求を表す新しいオブジェクトを作成します。
要求オブジェクトは、フォームデータ、Cookie、HTTPメソッドなどを含むHTTPヘッダー情報を取得するメソッドを提供します。
リクエストオブジェクトに関連するメソッドの完全なセットについては、次の章で説明できます-link:/jsp/jsp_client_request [JSP-Client Request]。
応答オブジェクト
応答オブジェクトは、 javax.servlet.http.HttpServletResponse オブジェクトのインスタンスです。 サーバーが要求オブジェクトを作成するのと同じように、クライアントへの応答を表すオブジェクトも作成します。
応答オブジェクトは、新しいHTTPヘッダーの作成を処理するインターフェイスも定義します。 このオブジェクトを介して、JSPプログラマーは新しいCookieまたは日付スタンプ、HTTPステータスコードなどを追加できます。
応答オブジェクトに関連するメソッドの完全なセットについては、次の章で説明します-link:/jsp/jsp_server_response [JSP-サーバー応答]。
outオブジェクト
暗黙の出力オブジェクトは javax.servlet.jsp.JspWriter オブジェクトのインスタンスであり、応答でコンテンツを送信するために使用されます。
最初のJspWriterオブジェクトは、ページがバッファリングされているかどうかに応じて異なる方法でインスタンス化されます。 ページディレクティブの buffered = 'false' 属性を使用すると、バッファリングを簡単にオフにできます。
JspWriterオブジェクトには、 java.io.PrintWriter クラスと同じメソッドのほとんどが含まれています。 ただし、JspWriterには、バッファリングを処理するために設計された追加のメソッドがいくつかあります。 PrintWriterオブジェクトとは異なり、JspWriterは IOExceptions をスローします。
次の表に、 boolean char、int、double、object、String などを記述するために使用する重要なメソッドをリストします。
S.No. | Method & Description |
---|---|
1 |
out.print(dataType dt) データ型の値を印刷する |
2 |
out.println(dataType dt) データ型の値を出力し、改行文字で行を終了します。 |
3 |
out.flush() ストリームをフラッシュします。 |
セッションオブジェクト
セッションオブジェクトは javax.servlet.http.HttpSession のインスタンスであり、セッションオブジェクトがJavaサーブレットで動作するのとまったく同じように動作します。
セッションオブジェクトは、クライアント要求間のクライアントセッションを追跡するために使用されます。 セッションオブジェクトの完全な使用法については、次の章で説明します。link:/jsp/jsp_session_tracking [JSP-Session Tracking]。
アプリケーションオブジェクト
アプリケーションオブジェクトは、生成されたサーブレットの ServletContext オブジェクトと実際には javax.servlet.ServletContext オブジェクトのインスタンスの直接ラッパーです。
このオブジェクトは、ライフサイクル全体にわたるJSPページの表現です。 このオブジェクトは、JSPページが初期化されるときに作成され、JSPページが* jspDestroy()*メソッドによって削除されると削除されます。
アプリケーションに属性を追加することにより、Webアプリケーションを構成するすべてのJSPファイルが確実にアクセスできるようにすることができます。
link:/jsp/jsp_hits_counter [JSP-Hits Counter]の章でアプリケーションオブジェクトの使用を確認します。
構成オブジェクト
configオブジェクトは javax.servlet.ServletConfig のインスタンス化であり、生成されたサーブレットの ServletConfig オブジェクトの直接ラッパーです。
このオブジェクトにより、JSPプログラマーは、パスやファイルの場所などのサーブレットまたはJSPエンジンの初期化パラメーターにアクセスできます。
次の config メソッドは、あなたが使用するかもしれない唯一の方法であり、その使用法は簡単です-
config.getServletName();
これは、サーブレット名を返します。これは、 WEB-INF \ web.xml ファイルで定義されている <servlet-name> 要素に含まれる文字列です。
pageContextオブジェクト
pageContextオブジェクトは、 javax.servlet.jsp.PageContext オブジェクトのインスタンスです。 pageContextオブジェクトは、JSPページ全体を表すために使用されます。
このオブジェクトは、実装の詳細のほとんどを回避しながら、ページに関する情報にアクセスする手段として意図されています。
このオブジェクトは、各リクエストのリクエストおよびレスポンスオブジェクトへの参照を保存します。 application、config、session 、およびoutオブジェクトは、このオブジェクトの属性にアクセスすることにより導出されます。
pageContextオブジェクトには、バッファリング情報、errorPageURL、ページスコープなど、JSPページに発行されたディレクティブに関する情報も含まれています。
PageContextクラスは、4つのスコープを識別する* PAGE_SCOPE、REQUEST_SCOPE、SESSION_SCOPE、および *APPLICATION_SCOPE を含むいくつかのフィールドを定義します。 また、40を超えるメソッドをサポートしています。そのうちの約半分は* javax.servlet.jsp.JspContextクラス*から継承されています。
重要なメソッドの1つは removeAttribute です。 このメソッドは、1つまたは2つの引数を受け入れます。 たとえば、* pageContext.removeAttribute( "attrName")*はすべてのスコープから属性を削除しますが、次のコードはページスコープからのみ属性を削除します-
pageContext.removeAttribute("attrName", PAGE_SCOPE);
pageContextの使用は、link:/jsp/jsp_file_uploading [JSP-File Uploading]の章で確認できます。
ページオブジェクト
このオブジェクトは、ページのインスタンスへの実際の参照です。 JSPページ全体を表すオブジェクトと考えることができます。
ページオブジェクトは、実際には this オブジェクトの直接の同義語です。
例外オブジェクト
例外オブジェクトは、前のページからスローされた例外を含むラッパーです。 通常、エラー状態に対する適切な応答を生成するために使用されます。
このオブジェクトの完全な使用法については、link:/jsp/jsp_exception_handling [JSP-Exception Handling]の章で説明します。