JSP 暗黙的オブジェクトは、JSP コンテナによって各ページに提供される Java オブジェクトであり、開発者は明示的に宣言することなく直接使用できます。 JSP 暗黙的オブジェクトは、事前定義変数とも呼ばれます。
JSP でサポートされる 9 つの暗黙的オブジェクト:
物体 | 説明する |
---|---|
リクエスト | HttpServletRequestクラスのインスタンス |
応答 | HttpServletResponseクラスのインスタンス |
外 | PrintWriterクラスのインスタンス。結果を Web ページに出力するために使用されます。 |
セッション | HttpSessionクラスのインスタンス |
応用 | アプリケーションコンテキストに関連するServletContextクラスのインスタンス |
構成 | ServletConfigクラスのインスタンス |
ページコンテキスト | PageContextクラスのインスタンス。JSP ページのすべてのオブジェクトと名前空間へのアクセスを提供します。 |
ページ | Java クラスのこのキーワードと同様 |
例外 | Exceptionクラスのオブジェクトは、エラーが発生した JSP ページ内の対応する例外オブジェクトを表します。 |
リクエスト オブジェクトは、javax.servlet.http.HttpServletRequest クラスのインスタンスです。クライアントが JSP ページをリクエストするたびに、JSP エンジンはリクエストを表す新しいリクエスト オブジェクトを作成します。
リクエスト オブジェクトは、HTTP ヘッダー情報、Cookie、HTTP メソッドなどを取得するための一連のメソッドを提供します。
応答オブジェクトは、javax.servlet.http.HttpServletResponse クラスのインスタンスです。サーバーはリクエスト オブジェクトを作成するときに、クライアントに応答するためのレスポンス オブジェクトも作成します。
応答オブジェクトは、HTTP ヘッダー モジュールを処理するためのインターフェイスも定義します。このオブジェクトを通じて、開発者は新しい Cookie、タイムスタンプ、HTTP ステータス コードなどを追加できます。
out オブジェクトは javax.servlet.jsp.JspWriter クラスのインスタンスであり、応答オブジェクトにコンテンツを書き込むために使用されます。
初期 JspWriter クラス オブジェクトは、ページがキャッシュされているかどうかに応じて、さまざまなインスタンス化操作を実行します。キャッシュは、ページ ディレクティブのbuffered='false' 属性を使用して簡単にオフにすることができます。
JspWriter クラスには、java.io.PrintWriter クラスのほとんどのメソッドが含まれています。ただし、JspWriter には、キャッシュを処理するために特別に設計された新しいメソッドがいくつか追加されています。また、JspWriter クラスは IOException をスローしますが、PrintWriter はスローしません。
次の表は、boolean、char、int、double、String、object、およびその他のタイプのデータを出力するために使用する重要なメソッドを示しています。
方法 | 説明する |
---|---|
out.print(dataType dt) | 出力タイプの値 |
out.println(dataType dt) | Type タイプの値を出力してから行を折り返す |
out.flush() | 出力ストリームをフラッシュする |
セッション オブジェクトは、javax.servlet.http.HttpSession クラスのインスタンスです。 Java サーブレットのセッション オブジェクトと同じ動作をします。
セッション オブジェクトは、クライアント要求間のセッションを追跡するために使用されます。
アプリケーション オブジェクトは、サーブレットの ServletContext クラスのオブジェクトを直接ラップしており、javax.servlet.ServletContext クラスのインスタンスです。
このオブジェクトは、ライフサイクル全体を通じて JSP ページを表します。このオブジェクトは、JSP ページが初期化されるときに作成され、jspDestroy() メソッドが呼び出されるときに削除されます。
アプリケーションにプロパティを追加すると、Web アプリケーションを構成するすべての JSP ファイルからこれらのプロパティにアクセスできるようになります。
config オブジェクトは javax.servlet.ServletConfig クラスのインスタンスであり、サーブレットの ServletConfig クラスのオブジェクトを直接ラップします。
このオブジェクトを使用すると、開発者はファイル パスなどのサーブレットまたは JSP エンジンの初期化パラメータにアクセスできます。
config オブジェクトの使用方法は次のとおりです。これはあまり重要ではないため、一般的には使用されません。
config.getServletName();<servlet-name> 要素に含まれるサーブレット名が返されます。<servlet-name> 要素は WEB-INFweb.xml ファイルで定義されていることに注意してください。
pageContext オブジェクトは javax.servlet.jsp.PageContext クラスのインスタンスであり、JSP ページ全体を表すために使用されます。
このオブジェクトは主に、ほとんどの実装詳細をフィルタリングしながらページ情報にアクセスするために使用されます。
このオブジェクトには、リクエスト オブジェクトとレスポンス オブジェクトへの参照が格納されます。アプリケーション オブジェクト、構成オブジェクト、セッション オブジェクト、および出力オブジェクトは、このオブジェクトのプロパティにアクセスすることでエクスポートできます。
pageContext オブジェクトには、キャッシュ情報、ErrorPage URL、ページ スコープなど、JSP ページに渡される命令情報も含まれます。
PageContext クラスは、PAGE_SCOPE、REQUEST_SCOPE、SESSION_SCOPE、APPLICATION_SCOPE などのいくつかのフィールドを定義します。また、40 を超えるメソッドも提供されており、その半分は javax.servlet.jsp.JspContext クラスから継承されています。
重要なメソッドの 1 つは、removeArribute() で、1 つまたは 2 つのパラメータを受け入れます。たとえば、pageContext.removeArribute("attrName") は 4 つのスコープ内の関連属性を削除しますが、次のメソッドは特定のスコープ内の関連属性のみを削除します。
pageContext.removeAttribute("attrName", PAGE_SCOPE);このオブジェクトはページ インスタンスへの参照です。これは、JSP ページ全体の代表とみなすことができます。
ページ オブジェクトはこのオブジェクトの同義語です。
例外オブジェクトは、前のページからスローされた例外情報をラップします。エラー状態に対する適切な応答を生成するためによく使用されます。