パッケージ 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 final StringSE
    ServletContext を PageContext 名前テーブルに保存するために使用される名前。
    static final int
    アプリケーションスコープ: 名前付き参照は、再生されるまで ServletContext で利用可能です。
    static final StringSE
    ServletConfig を PageContext 名前テーブルに保存するために使用される名前。
    static final StringSE
    ServletRequest 属性リストおよび PageContext 名前テーブルにキャッチされていない例外を格納するために使用される名前。
    static final StringSE
    現在の JspWriter を PageContext 名前テーブルに保存するために使用される名前。
    static final StringSE
    この PageContext の名前テーブルにサーブレットを格納するために使用される名前。
    static final int
    ページ範囲: (これがデフォルトです)名前付き参照は、現在の Servlet.service() 呼び出しから戻るまで、この PageContext で利用可能です。
    static final StringSE
    この PageContext を独自の名前テーブルに保存するために使用される名前。
    static final StringSE
    ServletRequest を PageContext 名前テーブルに保存するために使用される名前。
    static final int
    リクエストスコープ: 名前付き参照は、現在のリクエストが完了するまで、サーブレットに関連付けられた ServletRequest から利用可能のままです。
    static final StringSE
    ServletResponse を PageContext 名前テーブルに保存するために使用される名前。
    static final StringSE
    HttpSession を PageContext 名前テーブルに保存するために使用される名前。
    static final int
    セッションスコープ(このページがセッションに参加している場合のみ有効): HttpSession が無効化されるまで、名前付き参照は、サーブレットに関連付けられた HttpSession(存在する場合)から引き続き利用可能です。
  • コンストラクターの概要

    コンストラクター
    コンストラクター
    説明
    唯一のコンストラクター。
  • メソッドのサマリー

    修飾子と型
    メソッド
    説明
    abstract void
    forward(StringSE relativeUrlPath)
    このメソッドは、現在の ServletRequest および ServletResponse をアプリケーション内の別のアクティブなコンポーネントにリダイレクトまたは「転送」するために使用されます。
    エラー情報への便利なアクセスを提供します。
    abstract ExceptionSE
    例外オブジェクトの現在の値(例外)。
    abstract ObjectSE
    ページオブジェクトの現在の値(サーブレット環境では、これは jakarta.servlet.Servlet のインスタンスです)。
    リクエストオブジェクトの現在の値(ServletRequest)。
    レスポンスオブジェクトの現在の値(ServletResponse)。
    abstract ServletConfig
    ServletConfig インスタンス。
    ServletContext インスタンス。
    abstract HttpSession
    セッションオブジェクトの現在の値(HttpSession)。
    abstract void
    このメソッドは、この JSP の指定されたエラーページに例外を転送することにより、未処理の「ページ」レベルの例外を処理することを目的としています。
    abstract void
    このメソッドは、この 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 オブジェクトを返し、現在の「出力」JspWriter を保存し、PageContext のページスコープ属性ネームスペースの "out" 属性の値を更新します。
    abstract void
    このメソッドは、PageContext の内部状態を「リセット」し、すべての内部参照を解放し、initialize() の以降の呼び出しによる潜在的な再利用のために PageContext を準備します。

    クラス java.lang.ObjectSE から継承されたメソッド

    clone, equalsSE, finalize, getClass, hashCode, notify, notifyAll, toString, wait, waitSE, waitSE
  • フィールドの詳細

    • 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 で利用可能です。
      関連事項:
    • PAGE

      public static final StringSE PAGE
      この PageContext の名前テーブルにサーブレットを格納するために使用される名前。
      関連事項:
    • 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 名前テーブルに保存するために使用される名前。
      関連事項:
    • EXCEPTION

      public static final StringSE EXCEPTION
      ServletRequest 属性リストおよび PageContext 名前テーブルにキャッチされていない例外を格納するために使用される名前。
      関連事項:
  • コンストラクターの詳細

    • PageContext

      public 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 属性の値または null
      needsSession - ページディレクティブからのセッション属性の値
      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

      public abstract void handlePageException(ThrowableSE t) throws ServletException, IOExceptionSE

      このメソッドは、この JSP の指定されたエラーページに例外を転送することにより、未処理の「ページ」レベルの例外を処理することを目的としています。転送が不可能な場合(たとえば、レスポンスがすでにコミットされているため)、実装に依存するメカニズムを使用してエラーページを呼び出す必要があります(代わりにエラーページを「含める」)。

      ページにエラーページが定義されていない場合は、標準のサーブレットエラー処理が引き継ぐように例外を再スローする必要があります。

      このメソッドは、この JSP の指定されたエラーページに例外をリダイレクトするか、指定されていない場合は実装に依存するアクションを実行することにより、未処理の「ページ」レベルの例外を処理します。

      通常、JSP 実装クラスは、これを呼び出す前にローカル状態をクリーンアップし、その後すぐに戻ります。クライアントへの出力を生成したり、この呼び出しを呼び出した後に ServletResponse の状態を変更したりすることは不正です。

      パラメーター:
      t - 処理されるスロー可能オブジェクト
      例外:
      ServletException - エラーページの呼び出し中にエラーが発生した場合
      IOExceptionSE - エラーページの呼び出し中に I/O エラーが発生した場合
      NullPointerExceptionSE - 例外が null の場合
      関連事項:
    • pushBody

      public BodyContent pushBody()
      新しい BodyContent オブジェクトを返し、現在の「出力」JspWriter を保存し、PageContext のページスコープ属性ネームスペースの "out" 属性の値を更新します。
      戻り値:
      新しい BodyContent
    • getErrorData

      public ErrorData getErrorData()
      エラー情報への便利なアクセスを提供します。
      戻り値:
      サーブレット仕様に従って、リクエスト属性から取得されたエラーに関する情報を含む ErrorData インスタンス。これがエラーページでない場合 (つまり、ページディレクティブの isErrorPage 属性が "true" に設定されていない場合)、情報は無意味です。
      導入:
      JSP 2.0