javax.servlet.jsp
クラス PageContext

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

public abstract class PageContext
extends Object

PageContextインスタンスは、詳細実装の上のレイヤと同じように、 JSPページに関係する全ての名前空間、いくつかのページ属性へのアクセスを提供します。 暗黙のオブジェクト pageContext は自動的にに追加されます。

PageContext クラスは抽象クラスであり、 適正なJSPエンジンのランタイム環境がこれを拡張して、 このクラスに実装依存の実装を提供できるように設計されたものです。 PageContextインスタンスは、JSP実装クラスでJspFactory.getPageContext() メソッドを呼び出して取得され、JspFactory.releasePageContext()を呼び出すことで開放されます。

PageContext、JspFactoryやその他のクラスのJSPページの実装オブジェクト内での扱い方の例は、別の部分で提供されています。

PageContextはページ/コンポーネントの製作者とページ実装者にいくつかの機能を提供します。 以下のような機能を含んでいます。

コンテナが生成したコードのために用意されたメソッド

いくつかのメソッドは、それを使用するためにコンテナがコード生成を行います。 JSPページやJSPタグライブラリの製作者コードを記述するのではありません。

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

pushBody()popBody()の2つのメソッドは、 タグエクステンションを実行するために入れ子状のJspWriterストリームの管理 を可能にします。

JSP製作者のために用意されたメソッド

いくつかのメソッドはスコープに相当する異なるオブジェクトへの 均一のアクセスを提供します。 その実装は、情報がServletとJSPページ間でやり取りできるように、その スコープに対応した土台となるServlet機構を使用しなければなりません。その メソッドは: setAttribute(), getAttribute(), findAttribute(), removeAttribute(), getAttributesScope(), getAttributeNamesInScope() になります。

以下のメソッドは暗黙のオブジェクトに対する簡易なアクセスを提供します。


フィールドの概要
static String APPLICATION
          PageContextのネームテーブルにServletContextを登録するために使用する名前。
static int APPLICATION_SCOPE
          アプリケーション スコープ:再構築されるまでの間、指定した参照は そのServletContext内で利用することができます。
static String CONFIG
          PageContextのネームテーブルにServletConfigを登録するために使用する名前。
static String EXCEPTION
          PageContextのネームテーブル及びServletRequestの属性リストにキャッチできない例外を登録するために使用する名前。
static String OUT
          PageContextのネームテーブルに現在のJspWriterを登録するために使用する名前。
static String PAGE
          PageContextのネームテーブルにServletを登録するために使用する名前。
static int PAGE_SCOPE
          ページ スコープ:(デフォルト)現在のServlet.service()の呼び出しから戻るまでの間、指定した参照はこのPageContext内で利用することができます。
static String PAGECONTEXT
          PageContextのネームテーブルにPageContext自身を登録するために使用する名前。
static String REQUEST
          PageContextのネームテーブルにServletRequestを登録するために使用する名前。
static int REQUEST_SCOPE
          リクエスト スコープ:現在のリクエストが完了するまでの間、指定した参照はそのServletに関連付けられているServletRequestから利用することができます。
static String RESPONSE
          PageContextのネームテーブルにServletResponseを登録するために使用する名前。
static String SESSION
          PageContextのネームテーブルにHttpSessionを登録するために使用する名前。
static int SESSION_SCOPE
          セッション スコープ(ページがセッションを管理しているときにのみ有効): HttpSessionが無効になるまでの間、指定した参照はそのServletに関連付けられているHttpSessionから利用することができます。
 
コンストラクタの概要
PageContext()
           
 
メソッドの概要
abstract  Object findAttribute(String name)
          ページ、リクエスト、セッション(有効ならば)、アプリケーションの4つのスコープに登録されている属性を検索します。
abstract  void forward(String relativeUrlPath)
           このメソッドはリダイレクト、もしくは現在のServletRequestと ServletResponseをアプリケーション内の別のアクティブなコンポーネントに渡すために使用します。
abstract  Object getAttribute(String name)
          ページスコープ内で引数で与えた名前に対応したオブジェクトを返します。
abstract  Object getAttribute(String name, int scope)
          特定のスコープ内で引数で与えた名前に対応したオブジェクトを返します。
abstract  Enumeration getAttributeNamesInScope(int scope)
          指定したスコープ内の全ての属性名を取得します。
abstract  int getAttributesScope(String name)
          その名前の属性が定義されているスコープを取得します。
abstract  Exception getException()
          例外オブジェクトの現在の値を返します。
abstract  JspWriter getOut()
          outオブジェクト(JspWriter)の現在の値を返します。
abstract  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(Exception e)
           このメソッドは処理できない"ページ"レベルの例外を、 JSPで用意されている指定したエラーページにリダイレクトすることによって処理する事を目的としています。
abstract  void handlePageException(Throwable t)
           このメソッドは、Throwableを受け入れられる点を除けば handlePageException(Exception)と同等です。
abstract  void include(String relativeUrlPath)
           指定したリソースを、呼び出したスレッドによって処理されている現在の ServletRequestとServletResponseの一部として処理します。
abstract  void initialize(Servlet servlet, ServletRequest request, ServletResponse response, String errorPageURL, boolean needsSession, int bufferSize, boolean autoFlush)
           initializeメソッドは、初期化されていないPageContextを初期化するために呼び出します。
 JspWriter popBody()
          このメソッドに対応したメソッド、pushBody()により保存された以前の JspWriter "out"を返し、PageContextのページスコープ属性の名前空間にある"out"属性の値をアップデートします。
 BodyContent pushBody()
          新しいBodyContentオブジェクトを返して現在の "out" JspWriterに保存し、 PageContextのページスコープ属性の名前空間にある"out"属性の値をアップデートします。
abstract  void release()
           このメソッドは内部のすべての参照を開放し、後でinitialize()を呼び出した際に再利用可能にするためにPageContextを準備した上で、PageContextの内部の状態を「リセット」します。
abstract  void removeAttribute(String name)
          全てのスコープで、名前に関連付けられたオブジェクトへの参照を削除します。
abstract  void removeAttribute(String name, int scope)
          特定のスコープで、名前に関連付けられたオブジェクトへの参照を削除します。
abstract  void setAttribute(String name, Object attribute)
          ページスコープで定義された名前とオブジェクトを登録します。
abstract  void setAttribute(String name, 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 String PAGE
PageContextのネームテーブルにServletを登録するために使用する名前。

関連項目:
定数フィールド値

PAGECONTEXT

public static final String PAGECONTEXT
PageContextのネームテーブルにPageContext自身を登録するために使用する名前。

関連項目:
定数フィールド値

REQUEST

public static final String REQUEST
PageContextのネームテーブルにServletRequestを登録するために使用する名前。

関連項目:
定数フィールド値

RESPONSE

public static final String RESPONSE
PageContextのネームテーブルにServletResponseを登録するために使用する名前。

関連項目:
定数フィールド値

CONFIG

public static final String CONFIG
PageContextのネームテーブルにServletConfigを登録するために使用する名前。

関連項目:
定数フィールド値

SESSION

public static final String SESSION
PageContextのネームテーブルにHttpSessionを登録するために使用する名前。

関連項目:
定数フィールド値

OUT

public static final String OUT
PageContextのネームテーブルに現在のJspWriterを登録するために使用する名前。

関連項目:
定数フィールド値

APPLICATION

public static final String APPLICATION
PageContextのネームテーブルにServletContextを登録するために使用する名前。

関連項目:
定数フィールド値

EXCEPTION

public static final String EXCEPTION
PageContextのネームテーブル及びServletRequestの属性リストにキャッチできない例外を登録するために使用する名前。

関連項目:
定数フィールド値
コンストラクタの詳細

PageContext

public PageContext()
メソッドの詳細

initialize

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

initializeメソッドは、初期化されていないPageContextを初期化するために呼び出します。 それによりJSP実装クラスは_jspService()メソッドの中で、送られてくるリクエストとレスポンスをサービスするのに使用できます。

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

このメソッドでは初期化されたJspWriterを生成し、ページスコープ内での名前 "out"と関連付ける必要があります。

このメソッドはページやタグライブラリの製作者が使用すべきではありません。

パラメータ:
servlet - このPageContextに属しているServlet
request - このServletで現在まだ未定のリクエスト
response - このServletで現在まだ未定のレスポンス
errorPageURL - ページ指示子のエラーページ属性の値、もしくはnull
needsSession - ページ指示子のセッション属性の値
bufferSize - ページ指示子のバッファ属性の値
autoFlush - ページ指示子の自動フラッシュ属性の値
例外:
IOException - JspWriterを生成する間
IllegalStateException - outが適切に初期化されなかった場合
IllegalArgumentException

release

public abstract void release()

このメソッドは内部のすべての参照を開放し、後でinitialize()を呼び出した際に再利用可能にするためにPageContextを準備した上で、PageContextの内部の状態を「リセット」します。このメソッドは通常、JspFactory.releasePageContext()から呼び出されます。

サブクラスではこのメソッドは包みこまれます。

このメソッドはページやタグライブラリの製作者が使用すべきではありません。


setAttribute

public abstract void setAttribute(String name,
                                  Object attribute)
ページスコープで定義された名前とオブジェクトを登録します。

パラメータ:
name - 登録する属性名
attribute - 属性名に関係付けるオブジェクト
例外:
NullPointerException - nameもしくはobjectがnullの場合

setAttribute

public abstract void setAttribute(String name,
                                  Object o,
                                  int scope)
選択したスコープで定義された名前とオブジェクトを登録します。

パラメータ:
name - 登録する属性名
o - 属性名に関係付けるオブジェクト
scope - 名前とオブジェクトを関係付けるスコープ
例外:
NullPointerException - nameもしくはobjectがnullの場合
IllegalArgumentException - スコープが不正の場合

getAttribute

public abstract Object getAttribute(String name)
ページスコープ内で引数で与えた名前に対応したオブジェクトを返します。 存在しない場合はnullを返します。

パラメータ:
name - オブジェクトを取得したい属性の名前
例外:
NullPointerException - nameがnullの場合
IllegalArgumentException - スコープが不正の場合

getAttribute

public abstract Object getAttribute(String name,
                                    int scope)
特定のスコープ内で引数で与えた名前に対応したオブジェクトを返します。 存在しない場合はnullを返します。

パラメータ:
name - オブジェクトを取得したい属性の名前
scope - 名前とオブジェクトが関連付けられたスコープ
例外:
NullPointerException - nameがnullの場合
IllegalArgumentException - スコープが不正の場合

findAttribute

public abstract Object findAttribute(String name)
ページ、リクエスト、セッション(有効ならば)、アプリケーションの4つのスコープに登録されている属性を検索します。 戻り値は関連している値もしくはnullです。

戻り値:
関連している値もしくはnull

removeAttribute

public abstract void removeAttribute(String name)
全てのスコープで、名前に関連付けられたオブジェクトへの参照を削除します。

パラメータ:
name - 削除したいオブジェクトの名前

removeAttribute

public abstract void removeAttribute(String name,
                                     int scope)
特定のスコープで、名前に関連付けられたオブジェクトへの参照を削除します。

パラメータ:
name - 削除したいオブジェクトの名前
scope - 属性を削除するスコープ

getAttributesScope

public abstract int getAttributesScope(String name)
その名前の属性が定義されているスコープを取得します。

戻り値:
その名前と関連付けられたオブジェクトのスコープもしくは0

getAttributeNamesInScope

public abstract 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 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 Exception getException()
例外オブジェクトの現在の値を返します。

戻り値:
エラーページに出力される例外

getServletConfig

public abstract ServletConfig getServletConfig()
ServletConfigのインスタンスを返します。

戻り値:
このPageContextのServletConfig

getServletContext

public abstract ServletContext getServletContext()
ServletContextのインスタンスを返します。

戻り値:
このPageContextのServletContext

forward

public abstract void forward(String relativeUrlPath)
                      throws ServletException,
                             IOException

このメソッドはリダイレクト、もしくは現在のServletRequestと ServletResponseをアプリケーション内の別のアクティブなコンポーネントに渡すために使用します。

もし relativeUrlPath が"/"から始まるのであれば、URL指定はこの JSPの ServletContext のDOCROOTを基点に参照されます。パスが "/"から始まらないのであれば、URL指定はリクエストしたJSPのURLを基点に参照されます。

このメソッドは、JSPの _jspService(...) メソッドで実行 されている Thread から呼び出される場合にのみ有効です。

一旦このメソッドの呼び出しに成功すると、呼び出した側の Thread ServletResponse オブジェクトを修正することは不正です。 このような試みをすると、ふるまいは不定です。通常呼び出す側のスレッドは、 呼び出しを追えた後すぐに _jspService(...) から戻ります。

パラメータ:
relativeUrlPath - フォワードのターゲットとなるリソースのURLパス
例外:
ServletException - フォワード先で ServletException が発生した場合
IOException - フォワード先で IOException が発生した場合
IllegalArgumentException - ターゲットリソースのURLが解決できない場合
IllegalStateException - ServletResponse がフォワードできない場合
SecurityException - ターゲットリソースが呼び出す側からアクセスできない場合

include

public abstract void include(String relativeUrlPath)
                      throws ServletException,
                             IOException

指定したリソースを、呼び出したスレッドによって処理されている現在の ServletRequestとServletResponseの一部として処理します。 ターゲットとなったリソースの出力は直接ServletResponseのアウトプットストリームに書き込まれます。

このJSPのJspWriter "out"は、このインクルード処理を行う前にフラッシュされます。

もし relativeUrlPath が"/"から始まるのであれば、URL指定はこの JSPの ServletContext のDOCROOTを基点に参照されます。パスが "/"から始まらないのであれば、URL指定はリクエストしたJSPのURLを基点に参照されます。

このメソッドは、JSPの _jspService(...) メソッドで実行されている Thread から呼び出される場合にのみ有効です。

パラメータ:
relativeUrlPath - インクルードのターゲットとなるリソースのURLパス
例外:
ServletException - インクルード先で ServletException が発生した場合
IOException - インクルード先で IOException が発生した場合
IllegalArgumentException - ターゲットリソースのURLが解決できない場合
SecurityException - ターゲットリソースが呼び出す側からアクセスできない場合

handlePageException

public abstract void handlePageException(Exception e)
                                  throws ServletException,
                                         IOException

このメソッドは処理できない"ページ"レベルの例外を、 JSPで用意されている指定したエラーページにリダイレクトすることによって処理する事を目的としています。 もし例外を指定できない場合には、アクションによる実装を行います。

JSP実装クラスは通常このメソッドを実行する前にあらゆるローカルなステートを消去し、 その後すぐに戻ります。このメソッドを呼び出した後で、クライアントへの出力を生成することもしくはServletResponseの状態を修正することは不正です。

このメソッドはそれ以降の矛盾した理由を保持します。 最近開発されたコードではPageContext.handlePageException(Throwable)を使用しています。

パラメータ:
e - 処理される例外
例外:
ServletException - リダイレクト先で ServletException が発生した場合
IOException - リダイレクト先で IOException が発生した場合
NullPointerException - 例外がnullの場合
SecurityException - ターゲットのリソースが呼び出す側からアクセスできない場合
関連項目:
handlePageException(Throwable)

handlePageException

public abstract void handlePageException(Throwable t)
                                  throws ServletException,
                                         IOException

このメソッドは、Throwableを受け入れられる点を除けば handlePageException(Exception)と同等です。 エラーページの適切な実装において推奨されるメソッドです。

このメソッドは処理できない"ページ"レベルの例外を、 JSPで用意されている指定したエラーページにリダイレクトすることによって処理する事を目的としています。 もし例外を指定できない場合には、アクションによる実装を行います。

JSP実装クラスは通常このメソッドを実行する前にあらゆるローカルなステートを消去し、 その後すぐに戻ります。このメソッドを呼び出した後で、 クライアントへの出力を生成することもしくはServletResponseの状態を修正することは不正です。

パラメータ:
t - 処理されるThrowable
例外:
ServletException - リダイレクト先で ServletException が発生した場合
IOException - リダイレクト先で IOException が発生した場合
NullPointerException - 例外がnullの場合
SecurityException - ターゲットのリソースが呼び出す側からアクセスできない場合
関連項目:
handlePageException(Exception)

pushBody

public BodyContent pushBody()
新しいBodyContentオブジェクトを返して現在の "out" JspWriterに保存し、 PageContextのページスコープ属性の名前空間にある"out"属性の値をアップデートします。

戻り値:
新しいBodyContent

popBody

public JspWriter popBody()
このメソッドに対応したメソッド、pushBody()により保存された以前の JspWriter "out"を返し、PageContextのページスコープ属性の名前空間にある"out"属性の値をアップデートします。

戻り値:
保存されているJspWriter


このドキュメントは、Ja-Jakarta Project により翻訳されました。コメントがある場合は、jajakarta-report@jajakarta.good-day.netまでお願いします。

Copyright © 1999-2002 The Apache Software Foundation. All Rights Reserved.