javax.servlet.jsp
クラス PageContext

java.lang.Object
  |
  +--javax.servlet.jsp.PageContext

public abstract class PageContext
extends java.lang.Object

PageContext インスタンスは、JSP ページに関連付けられたすべての名前空間へのアクセスを提供し、いくつかのページ属性のほかに、実装の詳細レベルの上のレイヤへのアクセスも提供します。暗黙のオブジェクトが PageContext へ自動的に追加されます。

PageContext クラスは abstract クラスであり、JSP エンジンの実行環境に合わせた実装を提供するために拡張することができます。PageContext インスタンスは、JspFactory.getPageContext() メソッドを呼び出すことで JSP 実装クラスに取得され、JspFactory.releasePageContext() を呼び出すことで解放されます。

JSP Page 実装オブジェクト内における PageContext、JspFactory、およびその他のクラスの使用例は、別途示します。

PageContext は、ページ/コンポーネントの作成者およびページ実装者に、次のものを含む多くの機能を提供します。

コンテナ生成コード向けのメソッド

メソッドの中には、JSP ページ作成者や JSP タグライブラリ作成者に作成されたコードでなく、コンテナに生成されたコードによって使用されることを目的としているものがあります。

ライフサイクルをサポートするメソッドは、initialize() および release() です。

pushBody() および popBody() メソッドによって、タグ拡張の実装に必要な、JspWriter ストリームのネスト管理ができるようになります。

JSP 作成者向けのメソッド

メソッドの中には、スコープを表す多様なオブジェクトへの単一的なアクセスを提供するものがあります。実装は Servlet と JSP ページとの間で情報を受け渡すために、そのスコープに対応する基盤の Servlet 機構を使用する必要があります。このようなメソッドには、setAttribute()getAttribute()findAttribute()removeAttribute()getAttributesScope()、および getAttributeNamesInScope() があります。

次のメソッドで、暗黙的なオブジェクトへのアクセスを簡単に行うことができます。

次のメソッドで、転送、インクルード、およびエラー処理がサポートされます。


フィールドの概要
static java.lang.String APPLICATION
          PageContext の名前テーブルに ServletContext を格納するために使用される名前です。
static int APPLICATION_SCOPE
          アプリケーションのスコープ: 指定された参照は、ガベージコレクタにより回収されるまで、ServletContext 内で利用可能です。
static java.lang.String CONFIG
          PageContext の名前テーブルに ServletConfig を格納するために使用される名前です。
static java.lang.String EXCEPTION
          ServletRequest の属性リストと PageContext の名前テーブルに、キャッチされなかった例外を格納するために使用される名前です。
static java.lang.String OUT
          PageContext の名前テーブルに現在の JspWriter を格納するために使用される名前です。
static java.lang.String PAGE
          この PageContext の名前テーブルに Servlet を格納するために使用される名前です。
static int PAGE_SCOPE
          ページのスコープ: (デフォルト) 指定された参照は、現在の Servlet.service() 呼び出しから復帰するまで、この PageContext 内で利用可能です。
static java.lang.String PAGECONTEXT
          名前テーブルに PageContext 自身を格納するために使用される名前です。
static java.lang.String REQUEST
          PageContext の名前テーブルに ServletRequest を格納するために使用される名前です。
static int REQUEST_SCOPE
          要求のスコープ: 指定された参照は、現在の要求が完了するまで、Servlet に関連付けられた ServletRequest から利用できます。
static java.lang.String RESPONSE
          PageContext の名前テーブルに ServletResponse を格納するために使用される名前です。
static java.lang.String SESSION
          PageContext の名前テーブルに HttpSession を格納するために使用される名前です。
static int SESSION_SCOPE
          セッションのスコープ (このページがセッションに関与している場合にのみ有効): 指定された参照は、該当のHttpSession が無効化されるまで、Servlet に関連付けられた HttpSession から利用できます。
 
コンストラクタの概要
PageContext()
           
 
メソッドの概要
abstract  java.lang.Object findAttribute(java.lang.String name)
          ページ、要求、セッション (有効な場合)、およびアプリケーションのスコープ内を指定された属性を求めてこの順に検索し、関連付けられた値または null を返します。
abstract  void forward(java.lang.String relativeUrlPath)
           このメソッドは、現在の ServletRequest と ServletResponse をアプリケーション内の別の動的なコンポーネントへ切り替える、つまり転送するために使用されます。
abstract  java.lang.Object getAttribute(java.lang.String name)
          ページスコープ内で名前に関連付けられたオブジェクトを返します。
abstract  java.lang.Object getAttribute(java.lang.String name, int scope)
          指定されたスコープ内で名前に関連付けられたオブジェクトを返します。
abstract  java.util.Enumeration getAttributeNamesInScope(int scope)
          指定されたスコープ内のすべての属性を列挙します。
abstract  int getAttributesScope(java.lang.String name)
          指定された属性が定義されているスコープを入手します。
abstract  java.lang.Exception getException()
          例外オブジェクト (Exception) の現在の値です。
abstract  JspWriter getOut()
          out オブジェクト (JspWriter) の現在の値です。
abstract  java.lang.Object getPage()
          ページオブジェクト (Servlet) の現在の値です。
abstract  ServletRequest getRequest()
          要求オブジェクト (ServletRequest) の現在の値です。
abstract  ServletResponse getResponse()
          応答オブジェクト (ServletResponse) の現在の値です。
abstract  ServletConfig getServletConfig()
          ServletConfig インスタンスです。
abstract  ServletContext getServletContext()
          ServletContext インスタンスです。
abstract  HttpSession getSession()
          セッションオブジェクト (HttpSession) の現在の値です。
abstract  void handlePageException(java.lang.Exception e)
           このメソッドは、処理されなかったページレベルの例外が発生した際に、この JSP のために指定されたエラーページを表示します。
abstract  void handlePageException(java.lang.Throwable t)
           このメソッドは、Throwable を受け入れること以外は handlePageException(Exception) と同じです。
abstract  void include(java.lang.String relativeUrlPath)
           呼び出している Thread によって処理されている現在の ServletRequest と ServletResponse の一部として、指定されたリソースが処理されるようにします。
abstract  void initialize(Servlet servlet, ServletRequest request, ServletResponse response, java.lang.String errorPageURL, boolean needsSession, int bufferSize, boolean autoFlush)
           初期化されていない PageContext を初期化するためにこのメソッドが呼び出されます。
 JspWriter popBody()
          対応する pushBody() により保存された以前の出力用 JspWriter を返し、PageContext にあるページスコープの属性名前空間内の out 属性の値を更新します。
 BodyContent pushBody()
          新しい BodyContent オブジェクトを返し、現在の出力用 JspWriter を保存して、PageContext にあるページスコープの属性名前空間内の out 属性の値を更新します。
abstract  void release()
           このメソッドは、すべての内部参照を解放し、後の initialize() の呼び出しで再使用される可能性に備えて PageContext を準備して、PageContext の内部的な状態をリセットします。
abstract  void removeAttribute(java.lang.String name)
          findAttribute に示されたスコープの順にすべてのスコープを検索して、指定された名前に関連するオブジェクトを削除します。
abstract  void removeAttribute(java.lang.String name, int scope)
          指定されたスコープ内で指定された名前に関連するオブジェクト参照を削除します。
abstract  void setAttribute(java.lang.String name, java.lang.Object attribute)
          ページスコープセマンティクスにおいて、指定された名前でオブジェクトを登録します。
abstract  void setAttribute(java.lang.String name, java.lang.Object o, int scope)
          指定されたスコープセマンティクスにおいて、指定された名前でオブジェクトを登録します。
 
クラス java.lang.Object から継承したメソッド
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

フィールドの詳細

PAGE_SCOPE

public static final int PAGE_SCOPE
ページのスコープ: (デフォルト) 指定された参照は、現在の Servlet.service() 呼び出しから復帰するまで、この PageContext 内で利用可能です。

REQUEST_SCOPE

public static final int REQUEST_SCOPE
要求のスコープ: 指定された参照は、現在の要求が完了するまで、Servlet に関連付けられた ServletRequest から利用できます。

SESSION_SCOPE

public static final int SESSION_SCOPE
セッションのスコープ (このページがセッションに関与している場合にのみ有効): 指定された参照は、該当のHttpSession が無効化されるまで、Servlet に関連付けられた HttpSession から利用できます。

APPLICATION_SCOPE

public static final int APPLICATION_SCOPE
アプリケーションのスコープ: 指定された参照は、ガベージコレクタにより回収されるまで、ServletContext 内で利用可能です。

PAGE

public static final java.lang.String PAGE
この PageContext の名前テーブルに Servlet を格納するために使用される名前です。

PAGECONTEXT

public static final java.lang.String PAGECONTEXT
名前テーブルに PageContext 自身を格納するために使用される名前です。

REQUEST

public static final java.lang.String REQUEST
PageContext の名前テーブルに ServletRequest を格納するために使用される名前です。

RESPONSE

public static final java.lang.String RESPONSE
PageContext の名前テーブルに ServletResponse を格納するために使用される名前です。

CONFIG

public static final java.lang.String CONFIG
PageContext の名前テーブルに ServletConfig を格納するために使用される名前です。

SESSION

public static final java.lang.String SESSION
PageContext の名前テーブルに HttpSession を格納するために使用される名前です。

OUT

public static final java.lang.String OUT
PageContext の名前テーブルに現在の JspWriter を格納するために使用される名前です。

APPLICATION

public static final java.lang.String APPLICATION
PageContext の名前テーブルに ServletContext を格納するために使用される名前です。

EXCEPTION

public static final java.lang.String EXCEPTION
ServletRequest の属性リストと PageContext の名前テーブルに、キャッチされなかった例外を格納するために使用される名前です。
コンストラクタの詳細

PageContext

public PageContext()
メソッドの詳細

initialize

public abstract void initialize(Servlet servlet,
                                ServletRequest request,
                                ServletResponse response,
                                java.lang.String errorPageURL,
                                boolean needsSession,
                                int bufferSize,
                                boolean autoFlush)
                         throws java.io.IOException,
                                java.lang.IllegalStateException,
                                java.lang.IllegalArgumentException

初期化されていない PageContext を初期化するためにこのメソッドが呼び出されます。これにより JSP 実装クラスは、_jspService() メソッド内で要求と応答にサービスする際に PageContext オブジェクトを使用することができるようになります。

このメソッドは通常、状態を初期化するために JspFactory.getPageContext() から呼び出されます。

このメソッドは、最初の JspWriter を作成するために必要であり、ページスコープで定義された "out" という名前をこの新しく作成された JspWriter オブジェクトに関連付けます。

このメソッドは、ページまたはタグライブラリの作成者は使用できません。

パラメータ:
servlet - この PageContext に関連付けられている Servlet
request - この Servlet で現在処理対象となっている要求
response - この Servlet で現在処理対象となっている応答
errorPageURL - ページ指示子からの errorpage 属性の値または null
needsSession - ページ指示子からの session 属性の値
bufferSize - ページ指示子からの buffer 属性の値
autoFlush - ページ指示子からの autoflush 属性の値
例外:
java.io.IOException - JspWriter の作成中
java.lang.IllegalStateException - out が正しく初期化されていない場合

release

public abstract void release()

このメソッドは、すべての内部参照を解放し、後の initialize() の呼び出しで再使用される可能性に備えて PageContext を準備して、PageContext の内部的な状態をリセットします。このメソッドは通常、JspFactory.releasePageContext() から呼び出されます。

このメソッドはサブクラスにおいて実装されます。

このメソッドは、ページまたはタグライブラリの作成者は使用できません。


setAttribute

public abstract void setAttribute(java.lang.String name,
                                  java.lang.Object attribute)
ページスコープセマンティクスにおいて、指定された名前でオブジェクトを登録します。
パラメータ:
name - 設定する属性の名前
attribute - 名前に関連付けるオブジェクト
例外:
java.lang.NullPointerException - 名前またはオブジェクトが null の場合

setAttribute

public abstract void setAttribute(java.lang.String name,
                                  java.lang.Object o,
                                  int scope)
指定されたスコープセマンティクスにおいて、指定された名前でオブジェクトを登録します。
パラメータ:
name - 設定する属性の名前
o - 名前に関連付けるオブジェクト
scope - 名前/オブジェクトに関連付けるスコープ
例外:
java.lang.NullPointerException - 名前またはオブジェクトが null の場合
java.lang.IllegalArgumentException - スコープが無効な場合

getAttribute

public abstract java.lang.Object getAttribute(java.lang.String name)
ページスコープ内で名前に関連付けられたオブジェクトを返します。オブジェクトがない場合は、null を返します。
パラメータ:
name - 入手する属性の名前
例外:
java.lang.NullPointerException - 名前が null の場合
java.lang.IllegalArgumentException - スコープが無効な場合

getAttribute

public abstract java.lang.Object getAttribute(java.lang.String name,
                                              int scope)
指定されたスコープ内で名前に関連付けられたオブジェクトを返します。オブジェクトがない場合は、null を返します。
パラメータ:
name - 設定する属性の名前
scope - 名前/オブジェクトに関連付けるスコープ
例外:
java.lang.NullPointerException - 名前が null の場合
java.lang.IllegalArgumentException - スコープが無効な場合

findAttribute

public abstract java.lang.Object findAttribute(java.lang.String name)
ページ、要求、セッション (有効な場合)、およびアプリケーションのスコープ内を指定された属性を求めてこの順に検索し、関連付けられた値または null を返します。
戻り値:
関連付けられた値または null

removeAttribute

public abstract void removeAttribute(java.lang.String name)
findAttribute に示されたスコープの順にすべてのスコープを検索して、指定された名前に関連するオブジェクトを削除します。
パラメータ:
name - 削除するオブジェクトの名前

removeAttribute

public abstract void removeAttribute(java.lang.String name,
                                     int scope)
指定されたスコープ内で指定された名前に関連するオブジェクト参照を削除します。
パラメータ:
name - 削除するオブジェクトの名前
scope - 検索するスコープ

getAttributesScope

public abstract int getAttributesScope(java.lang.String name)
指定された属性が定義されているスコープを入手します。
戻り値:
指定された名前に関連するオブジェクトのスコープまたは 0

getAttributeNamesInScope

public abstract java.util.Enumeration getAttributeNamesInScope(int scope)
指定されたスコープ内のすべての属性を列挙します。
戻り値:
指定されたスコープ内のすべての属性の名前の列挙体 (java.lang.String)

getOut

public abstract JspWriter getOut()
out オブジェクト (JspWriter) の現在の値です。
戻り値:
クライアントの応答用に使用されている現在の JspWriter ストリーム

getSession

public abstract HttpSession getSession()
セッションオブジェクト (HttpSession) の現在の値です。
戻り値:
この PageContext 用の HttpSession または null

getPage

public abstract java.lang.Object getPage()
ページオブジェクト (Servlet) の現在の値です。
戻り値:
この PageContext に関連付けられた Page 実装クラスのインスタンス (Servlet)

getRequest

public abstract ServletRequest getRequest()
要求オブジェクト (ServletRequest) の現在の値です。
戻り値:
この PageContext の ServletRequest

getResponse

public abstract ServletResponse getResponse()
応答オブジェクト (ServletResponse) の現在の値です。
戻り値:
この PageContext の ServletResponse

getException

public abstract java.lang.Exception getException()
例外オブジェクト (Exception) の現在の値です。
戻り値:
これに errorpage として渡される例外

getServletConfig

public abstract ServletConfig getServletConfig()
ServletConfig インスタンスです。
戻り値:
この PageContext の ServletConfig

getServletContext

public abstract ServletContext getServletContext()
ServletContext インスタンスです。
戻り値:
この PageContext の ServletContext

forward

public abstract void forward(java.lang.String relativeUrlPath)
                      throws ServletException,
                             java.io.IOException

このメソッドは、現在の ServletRequest と ServletResponse をアプリケーション内の別の動的なコンポーネントへ切り替える、つまり転送するために使用されます。

relativeUrlPath は "/" で始まり、指定される URL は、この JSP の ServletContext の DOCROOT に対するパスとして取り扱われます。パスが "/" で始まっていない場合、指定された URL は、呼び出している JSP にマッピングされた要求の URL に対する相対パスとして計算されます。

JSP の _jspService(...) メソッド内で実行中の Thread からこのメソッドを呼び出す場合だけが有効です。

このメソッドが正常に呼び出された後は、呼び出している ThreadServletResponse オブジェクトを変更しようとすることは不当です。そのような試行によって起きる動作は、不定です。呼び出し側は通常、このメソッドを呼び出した後にただちに _jspService(...) から復帰します。

パラメータ:
relativeUrlPath - 上で説明したターゲットリソースへの相対 URL パスを指定する
例外:
ServletException -  
java.io.IOException -  
java.lang.IllegalArgumentException - ターゲットリソースの URL が解決不能な場合
java.lang.IllegalStateException - ServletResponse が転送を実行できる状態にない場合
java.lang.SecurityException - ターゲットリソースが呼び出し側によってアクセスできない場合

include

public abstract void include(java.lang.String relativeUrlPath)
                      throws ServletException,
                             java.io.IOException

呼び出している Thread によって処理されている現在の ServletRequest と ServletResponse の一部として、指定されたリソースが処理されるようにします。要求を処理しているターゲットリソースの出力は、ServletResponse 出力ストリームへ直接書き出されます。

この JSP の現在の JspWriter の出力は、取り込みを処理する前にこの呼び出しの副作用としてフラッシュされます。

relativeUrlPath は "/" で始まり、指定される URL は、この JSP の ServletContext の DOCROOT に対するパスとして取り扱われます。パスが "/" で始まっていない場合、指定された URL は、呼び出している JSP にマッピングされた要求の URL に対する相対パスとして取り扱われます。

JSP の _jspService(...) メソッド内で実行中の Thread からこのメソッドを呼び出す場合だけが有効です。

パラメータ:
relativeUrlPath - 取り込まれるターゲットリソースへの相対 URL パスを指定する
例外:
ServletException -  
java.io.IOException -  
java.lang.IllegalArgumentException - ターゲットリソースの URL が解決不能な場合
java.lang.SecurityException - ターゲットリソースが呼び出し側によってアクセスできない場合

handlePageException

public abstract void handlePageException(java.lang.Exception e)
                                  throws ServletException,
                                         java.io.IOException

このメソッドは、処理されなかったページレベルの例外が発生した際に、この JSP のために指定されたエラーページを表示します。何も指定されなかった場合はなんらかの実装に依存した処置を実行します。

JSP 実装クラスは、通常はローカルな状態をクリアした後にこのメソッドを呼び出し、呼び出した後はただちに終了します。クライアントに対して、なんらかの出力を生成したり、この呼び出しを起動した後に ServletResponse の状態を変更することは不正です。

このメソッドは、下位互換性を保つという理由で維持されています。新しく生成されるコードは、PageContext.handlePageException(Throwable) を使用してください。

パラメータ:
e - 処理対象となる例外
例外:
ServletException -  
java.io.IOException -  
java.lang.NullPointerException - 例外が null の場合
java.lang.SecurityException - ターゲットリソースが呼び出し側によってアクセスできない場合
関連項目:
handlePageException(Throwable)

handlePageException

public abstract void handlePageException(java.lang.Throwable t)
                                  throws ServletException,
                                         java.io.IOException

このメソッドは、Throwable を受け入れること以外は handlePageException(Exception) と同じです。これは、errorpage の意味を正しく実装するため、優先的に使用すべきメソッドです。

このメソッドは、処理されなかったページレベルの例外が発生した際に、この JSP のために指定されたエラーページを表示します。何も指定されなかった場合はなんらかの実装に依存した処置を実行します。

JSP 実装クラスは、通常はローカルな状態をクリアした後にこのメソッドを呼び出し、呼び出し後はただちに終了します。クライアントに対してなんらかの出力を生成したり、この呼び出しを起動した後に ServletResponse の状態を変更することは不正です。

パラメータ:
t - 処理対象の throwable
例外:
ServletException -  
java.io.IOException -  
java.lang.NullPointerException - 例外が null の場合
java.lang.SecurityException - ターゲットリソースが呼び出し側によってアクセスできない場合
関連項目:
handlePageException(Exception)

pushBody

public BodyContent pushBody()
新しい BodyContent オブジェクトを返し、現在の出力用 JspWriter を保存して、PageContext にあるページスコープの属性名前空間内の out 属性の値を更新します。
戻り値:
新しい BodyContent

popBody

public JspWriter popBody()
対応する pushBody() により保存された以前の出力用 JspWriter を返し、PageContext にあるページスコープの属性名前空間内の out 属性の値を更新します。
戻り値:
保存された JspWriter


Copyright 2002 Sun Microsystems, Inc. All rights reserved.
使用には使用許諾契約が適用されます。