クラス PageContext
- java.lang.ObjectSE
-
- jakarta.servlet.jsp.JspContext
-
- jakarta.servlet.jsp.PageContext
public abstract class PageContext extends JspContext
PageContext は、JspContext を継承して、サーブレット環境で JSP テクノロジーを使用する場合に役立つコンテキスト情報を提供します。
PageContext インスタンスは、JSP ページに関連付けられたすべての名前空間へのアクセスを提供し、いくつかのページ属性へのアクセスと、実装の詳細の上位レイヤーへのアクセスを提供します。暗黙的なオブジェクトは、pageContext に自動的に追加されます。
PageContext
クラスは、準拠する JSP エンジンのランタイム環境によって、実装に依存する実装を提供するために拡張されるように設計された抽象クラスです。PageContext インスタンスは、JspFactory.getPageContext() メソッドを呼び出すことによって JSP 実装クラスによって取得され、JspFactory.releasePageContext() を呼び出すことによって解放されます。PageContext、JspFactory、その他のクラスを JSP ページ実装オブジェクト内で使用する方法の例は、他の場所で提供されています。
PageContext は、ページ / コンポーネントの作成者およびページ実装者に次のような多くの機能を提供します。
- さまざまなスコープの名前空間を管理する単一の API
- さまざまなパブリックオブジェクトにアクセスするための多数の便利な API
- 出力用に JspWriter を取得するメカニズム
- ページごとにセッションの使用を管理するメカニズム
- ページ指示属性をスクリプト環境に公開するメカニズム
- アプリケーション内の他のアクティブなコンポーネントに現在のリクエストを転送または含めるメカニズム
- エラーページ例外処理を処理するメカニズム
コンテナー生成コード向けのメソッド
一部のメソッドは、JSP ページ作成者または JSP タグライブラリ作成者によって作成されたコードではなく、コンテナーによって生成されたコードによって使用されることを目的としています。
ライフサイクルをサポートするメソッドは
initialize()
およびrelease()
です以下のメソッドにより、 ネストされた JspWriter ストリームの管理がタグ拡張機能を実装できるようになります:
pushBody()
JSP 作成者向けのメソッド
次のメソッドは、暗黙のオブジェクトへの便利なアクセスを提供します:
getException()
、getPage()
getRequest()
、getResponse()
、getSession()
、getServletConfig()
、getServletContext()
。次のメソッドは、 転送、包含、エラー処理のサポートを提供します:
forward()
、include()
、handlePageException()
。
フィールドサマリー
フィールド 修飾子と型 フィールド 説明 static StringSE
APPLICATION
ServletContext を PageContext 名前テーブルに保存するために使用される名前。static int
APPLICATION_SCOPE
アプリケーションスコープ: 名前付き参照は、再生されるまで ServletContext で利用可能です。static StringSE
CONFIG
ServletConfig を PageContext 名前テーブルに保存するために使用される名前。static StringSE
EXCEPTION
ServletRequest 属性リストおよび PageContext 名前テーブルにキャッチされていない例外を格納するために使用される名前。static StringSE
OUT
現在の JspWriter を PageContext 名前テーブルに保存するために使用される名前。static StringSE
PAGE
この PageContext の名前テーブルにサーブレットを格納するために使用される名前。static int
PAGE_SCOPE
ページ範囲: (これがデフォルトです)名前付き参照は、現在の Servlet.service() 呼び出しから戻るまで、この PageContext で利用可能です。static StringSE
PAGECONTEXT
この PageContext を独自の名前テーブルに保存するために使用される名前。static StringSE
REQUEST
ServletRequest を PageContext 名前テーブルに保存するために使用される名前。static int
REQUEST_SCOPE
リクエストスコープ: 名前付き参照は、現在のリクエストが完了するまで、サーブレットに関連付けられた ServletRequest から利用可能のままです。static StringSE
RESPONSE
ServletResponse を PageContext 名前テーブルに保存するために使用される名前。static StringSE
SESSION
HttpSession を PageContext 名前テーブルに保存するために使用される名前。static int
SESSION_SCOPE
セッションスコープ(このページがセッションに参加している場合のみ有効): HttpSession が無効化されるまで、名前付き参照は、サーブレットに関連付けられた HttpSession(存在する場合)から引き続き利用可能です。
コンストラクターのサマリー
コンストラクター コンストラクター 説明 PageContext()
唯一のコンストラクター。
メソッドのサマリー
すべてのメソッド インスタンスメソッド 抽象メソッド 具象メソッド 修飾子と型 メソッド 説明 abstract void
forward(StringSE relativeUrlPath)
このメソッドは、現在の ServletRequest および ServletResponse をアプリケーション内の別のアクティブなコンポーネントにリダイレクトまたは「転送」するために使用されます。ErrorData
getErrorData()
エラー情報への便利なアクセスを提供します。abstract ExceptionSE
getException()
例外オブジェクトの現在の値(例外)。abstract ObjectSE
getPage()
ページオブジェクトの現在の値(サーブレット環境では、これは jakarta.servlet.Servlet のインスタンスです)。abstract ServletRequest
getRequest()
リクエストオブジェクトの現在の値(ServletRequest)。abstract ServletResponse
getResponse()
レスポンスオブジェクトの現在の値(ServletResponse)。abstract ServletConfig
getServletConfig()
ServletConfig インスタンス。abstract ServletContext
getServletContext()
ServletContext インスタンス。abstract HttpSession
getSession()
セッションオブジェクトの現在の値(HttpSession)。abstract void
handlePageException(ExceptionSE e)
このメソッドは、この JSP の指定されたエラーページに例外を転送することにより、未処理の「ページ」レベルの例外を処理することを目的としています。abstract void
handlePageException(ThrowableSE t)
このメソッドは、この JSP の指定されたエラーページに例外を転送することにより、未処理の「ページ」レベルの例外を処理することを目的としています。abstract void
include(StringSE relativeUrlPath)
指定されたリソースが、呼び出しスレッドによって処理されている現在の ServletRequest および ServletResponse の一部として処理されるようにします。abstract void
include(StringSE relativeUrlPath, boolean flush)
指定されたリソースが、呼び出しスレッドによって処理されている現在の ServletRequest および ServletResponse の一部として処理されるようにします。abstract void
initialize(Servlet servlet, ServletRequest request, ServletResponse response, StringSE errorPageURL, boolean needsSession, int bufferSize, boolean autoFlush)
初期化メソッドは、初期化されていない PageContext を初期化するために呼び出され、JSP 実装クラスが _jspService() メソッド内で受信リクエストとレスポンスを処理するために使用できるようにします。BodyContent
pushBody()
新しい BodyContent オブジェクトを返し、現在の「出力」JspWriter を保存し、PageContext のページスコープ属性ネームスペースの "out" 属性の値を更新します。abstract void
release()
このメソッドは、PageContext の内部状態を「リセット」し、すべての内部参照を解放し、initialize() の以降の呼び出しによる潜在的な再利用のために PageContext を準備します。クラス jakarta.servlet.jsp.JspContext から継承されたメソッド
findAttribute, getAttribute, getAttribute, getAttributeNamesInScope, getAttributesScope, getELContext, getExpressionEvaluator, getOut, getVariableResolver, popBody, pushBody, removeAttribute, removeAttribute, setAttribute, setAttribute
フィールドの詳細
PAGE_SCOPE
public static final int PAGE_SCOPE
ページ範囲: (これがデフォルトです)名前付き参照は、現在の Servlet.service() 呼び出しから戻るまで、この PageContext で利用可能です。- 関連事項:
- 定数フィールド値
REQUEST_SCOPE
public static final int REQUEST_SCOPE
リクエストスコープ: 名前付き参照は、現在のリクエストが完了するまで、サーブレットに関連付けられた ServletRequest から利用可能のままです。- 関連事項:
- 定数フィールド値
SESSION_SCOPE
public static final int SESSION_SCOPE
セッションスコープ(このページがセッションに参加している場合のみ有効): HttpSession が無効化されるまで、名前付き参照は、サーブレットに関連付けられた HttpSession(存在する場合)から引き続き利用可能です。- 関連事項:
- 定数フィールド値
APPLICATION_SCOPE
public static final int APPLICATION_SCOPE
アプリケーションスコープ: 名前付き参照は、再生されるまで ServletContext で利用可能です。- 関連事項:
- 定数フィールド値
PAGECONTEXT
public static final StringSE PAGECONTEXT
この PageContext を独自の名前テーブルに保存するために使用される名前。- 関連事項:
- 定数フィールド値
REQUEST
public static final StringSE REQUEST
ServletRequest を PageContext 名前テーブルに保存するために使用される名前。- 関連事項:
- 定数フィールド値
RESPONSE
public static final StringSE RESPONSE
ServletResponse を PageContext 名前テーブルに保存するために使用される名前。- 関連事項:
- 定数フィールド値
CONFIG
public static final StringSE CONFIG
ServletConfig を PageContext 名前テーブルに保存するために使用される名前。- 関連事項:
- 定数フィールド値
SESSION
public static final StringSE SESSION
HttpSession を PageContext 名前テーブルに保存するために使用される名前。- 関連事項:
- 定数フィールド値
OUT
public static final StringSE OUT
現在の JspWriter を PageContext 名前テーブルに保存するために使用される名前。- 関連事項:
- 定数フィールド値
APPLICATION
public static final StringSE APPLICATION
ServletContext を PageContext 名前テーブルに保存するために使用される名前。- 関連事項:
- 定数フィールド値
メソッドの詳細
initialize
public abstract void initialize(Servlet servlet, ServletRequest request, ServletResponse response, StringSE errorPageURL, boolean needsSession, int bufferSize, boolean autoFlush) throws IOExceptionSE, IllegalStateExceptionSE, IllegalArgumentExceptionSE
初期化メソッドは、初期化されていない PageContext を初期化するために呼び出され、JSP 実装クラスが _jspService() メソッド内で受信リクエストとレスポンスを処理するために使用できるようにします。
このメソッドは、通常、状態を初期化するために JspFactory.getPageContext() から呼び出されます。
このメソッドは、初期 JspWriter を作成し、ページスコープの "out" 名をこの新しく作成されたオブジェクトに関連付けるために必要です。
このメソッドは、ページまたはタグライブラリの作成者が使用しないでください。
- パラメーター:
servlet
- この PageContext に関連付けられているサーブレットrequest
- このサーブレットに対する現在保留中のリクエストresponse
- このサーブレットの現在保留中のレスポンスerrorPageURL
- ページディレクティブの errorpage 属性の値または nullneedsSession
- ページディレクティブからのセッション属性の値bufferSize
- ページディレクティブのバッファ属性の値autoFlush
- ページディレクティブの autoflush 属性の値- 例外:
IOExceptionSE
- JspWriter の作成IllegalStateExceptionSE
- 正しく初期化されていない場合IllegalArgumentExceptionSE
- 指定されたパラメーターのいずれかが無効な場合
release
public abstract void release()
このメソッドは、PageContext の内部状態を「リセット」し、すべての内部参照を解放し、initialize() の以降の呼び出しによる潜在的な再利用のために PageContext を準備します。このメソッドは通常、JspFactory.releasePageContext() から呼び出されます。
サブクラスはこのメソッドを包囲します。
このメソッドは、ページまたはタグライブラリの作成者が使用しないでください。
getSession
public abstract HttpSession getSession()
セッションオブジェクトの現在の値(HttpSession)。- 戻り値:
- この PageContext の HttpSession または null
getPage
public abstract ObjectSE getPage()
ページオブジェクトの現在の値(サーブレット環境では、これは jakarta.servlet.Servlet のインスタンスです)。- 戻り値:
- この PageContext に関連付けられた Page 実装クラスインスタンス
getRequest
public abstract ServletRequest getRequest()
リクエストオブジェクトの現在の値(ServletRequest)。- 戻り値:
- この PageContext の ServletRequest
getResponse
public abstract ServletResponse getResponse()
レスポンスオブジェクトの現在の値(ServletResponse)。- 戻り値:
- この PageContext の ServletResponse
getException
public abstract ExceptionSE getException()
例外オブジェクトの現在の値(例外)。- 戻り値:
- エラーページとしてこれに渡される例外
getServletConfig
public abstract ServletConfig getServletConfig()
ServletConfig インスタンス。- 戻り値:
- この PageContext の ServletConfig
getServletContext
public abstract ServletContext getServletContext()
ServletContext インスタンス。- 戻り値:
- この PageContext の ServletContext
forward
public abstract void forward(StringSE relativeUrlPath) throws ServletException, IOExceptionSE
このメソッドは、現在の ServletRequest および ServletResponse をアプリケーション内の別のアクティブなコンポーネントにリダイレクトまたは「転送」するために使用されます。
relativeUrlPath が "/" で始まる場合、指定された URL はこの JSP の
ServletContext
の DOCROOT を基準として計算されます。パスが "/" で始まらない場合、指定された URL は呼び出し元の JSP にマップされたリクエストの URL を基準として計算されます。JSP の
_jspService(...)
メソッド内で実行されるThread
からこのメソッドを呼び出すことのみが有効です。このメソッドが正常に呼び出されると、呼び出し
Thread
がServletResponse
オブジェクトを変更しようとすることは不正です。そのような試みは、未定義の動作を引き起こします。通常、このメソッドを呼び出した後、呼び出し元はすぐに_jspService(...)
から戻ります。- パラメーター:
relativeUrlPath
- 上記のように、ターゲットリソースへの相対 URL パスを指定します- 例外:
IllegalStateExceptionSE
-ServletResponse
が転送を実行できる状態にない場合ServletException
- 転送されたページが ServletException をスローする場合IOExceptionSE
- 転送中に I/O エラーが発生した場合
include
public abstract void include(StringSE relativeUrlPath) throws ServletException, IOExceptionSE
指定されたリソースが、呼び出しスレッドによって処理されている現在の ServletRequest および ServletResponse の一部として処理されるようにします。リクエストのターゲットリソース処理の出力は、ServletResponse 出力ストリームに直接書き込まれます。
この JSP の現在の JspWriter の「アウト」は、インクルードを処理する前に、この呼び出しの副作用としてフラッシュされます。
relativeUrlPath が "/" で始まる場合、指定された URL はこの JSP の
ServletContext
の DOCROOT を基準として計算されます。パスが "/" で始まらない場合、指定された URL は呼び出し元の JSP にマップされたリクエストの URL を基準として計算されます。JSP の
_jspService(...)
メソッド内で実行されるThread
からこのメソッドを呼び出すことのみが有効です。- パラメーター:
relativeUrlPath
- 含めるターゲットリソースへの相対 URL パスを指定します- 例外:
ServletException
- 転送されたページが ServletException をスローする場合IOExceptionSE
- 転送中に I/O エラーが発生した場合
include
public abstract void include(StringSE relativeUrlPath, boolean flush) throws ServletException, IOExceptionSE
指定されたリソースを、呼び出しスレッドによって処理されている現在の ServletRequest および ServletResponse の一部として処理します。リクエストのターゲットリソース処理の出力は、getOut() の呼び出しによって返される現在の JspWriter に直接書き込まれます。
flush が true の場合、インクルードを処理する前に、この呼び出しの副作用として、この JSP の現在の JspWriter "out" がフラッシュされます。そうでない場合、JspWriter の「出力」はフラッシュされません。
relativeUrlPath が "/" で始まる場合、指定された URL はこの JSP の
ServletContext
の DOCROOT を基準として計算されます。パスが "/" で始まらない場合、指定された URL は呼び出し元の JSP にマップされたリクエストの URL を基準として計算されます。JSP の
_jspService(...)
メソッド内で実行されるThread
からこのメソッドを呼び出すことのみが有効です。- パラメーター:
relativeUrlPath
- 含めるターゲットリソースへの相対 URL パスを指定しますflush
- JspWriter がインクルードの前にフラッシュされる場合は true、そうでない場合は false。- 例外:
ServletException
- 転送されたページが ServletException をスローする場合IOExceptionSE
- 転送中に I/O エラーが発生した場合- 導入:
- JSP 2.0
handlePageException
public abstract void handlePageException(ExceptionSE e) throws ServletException, IOExceptionSE
このメソッドは、この JSP の指定されたエラーページに例外を転送することにより、未処理の「ページ」レベルの例外を処理することを目的としています。転送が不可能な場合(たとえば、レスポンスがすでにコミットされているため)、実装に依存するメカニズムを使用してエラーページを呼び出す必要があります(代わりにエラーページを「含める」)。
ページにエラーページが定義されていない場合は、標準のサーブレットエラー処理が引き継ぐように例外を再スローする必要があります。
通常、JSP 実装クラスは、これを呼び出す前にローカル状態をクリーンアップし、その後すぐに戻ります。クライアントへの出力を生成したり、この呼び出しを呼び出した後に ServletResponse の状態を変更したりすることは不正です。
このメソッドは、後方互換性の理由で保持されます。新しく生成されたコードは PageContext.handlePageException(Throwable)を使用する必要があります。
- パラメーター:
e
- 処理される例外- 例外:
ServletException
- エラーページの呼び出し中にエラーが発生した場合IOExceptionSE
- エラーページの呼び出し中に I/O エラーが発生した場合NullPointerExceptionSE
- 例外が null の場合- 関連事項:
handlePageException(Throwable)
handlePageException
public abstract void handlePageException(ThrowableSE t) throws ServletException, IOExceptionSE
このメソッドは、この JSP の指定されたエラーページに例外を転送することにより、未処理の「ページ」レベルの例外を処理することを目的としています。転送が不可能な場合(たとえば、レスポンスがすでにコミットされているため)、実装に依存するメカニズムを使用してエラーページを呼び出す必要があります(代わりにエラーページを「含める」)。
ページにエラーページが定義されていない場合は、標準のサーブレットエラー処理が引き継ぐように例外を再スローする必要があります。
このメソッドは、この JSP の指定されたエラーページに例外をリダイレクトするか、指定されていない場合は実装に依存するアクションを実行することにより、未処理の「ページ」レベルの例外を処理します。
通常、JSP 実装クラスは、これを呼び出す前にローカル状態をクリーンアップし、その後すぐに戻ります。クライアントへの出力を生成したり、この呼び出しを呼び出した後に ServletResponse の状態を変更したりすることは不正です。
- パラメーター:
t
- 処理されるスロー可能オブジェクト- 例外:
ServletException
- エラーページの呼び出し中にエラーが発生した場合IOExceptionSE
- エラーページの呼び出し中に I/O エラーが発生した場合NullPointerExceptionSE
- 例外が null の場合- 関連事項:
handlePageException(Exception)
pushBody
public BodyContent pushBody()
新しい BodyContent オブジェクトを返し、現在の「出力」JspWriter を保存し、PageContext のページスコープ属性ネームスペースの "out" 属性の値を更新します。- 戻り値:
- 新しい BodyContent
getErrorData
public ErrorData getErrorData()
エラー情報への便利なアクセスを提供します。- 戻り値:
- サーブレット仕様に従って、リクエスト属性から取得されたエラーに関する情報を含む ErrorData インスタンス。これがエラーページでない場合 (つまり、ページディレクティブの isErrorPage 属性が "true" に設定されていない場合)、情報は無意味です。
- 導入:
- JSP 2.0