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

      コンストラクター  
      コンストラクター 説明
      PageContext()
      唯一のコンストラクター。
    • フィールドの詳細

      • 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(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