org.apache.struts.action
クラス RequestProcessor

java.lang.Object
  拡張org.apache.struts.action.RequestProcessor
直系の既知のサブクラス:
TilesRequestProcessor

public class RequestProcessor
extends java.lang.Object

RequestProcessor は、 コンテナから各サーブレットリクエストを受け取り、 ActionServlet が実行する処理ロジックを含みます。 リクエスト処理の振る舞いはこのクラスをサブクラス化し、 振る舞いを変えたいメソッドをオーバライドすることでカスタマイズできます。

導入されたバージョン:
Struts 1.1
バージョン:
$Revision: 1.5 $ $Date: 2005/02/11 03:27:19 $
翻訳者:
棚澤 昌幸

フィールドの概要
protected  java.util.HashMap actions
          生成そして初期化された、 Action インスタンスのセット。
static java.lang.String INCLUDE_PATH_INFO
          RequestDispatcher.include 要求を処理する間、 パス情報が格納されるリクエスト属性。
static java.lang.String INCLUDE_SERVLET_PATH
          RequestDispatcher.include 要求を処理する間、 サーブレットパス情報が格納されるリクエスト属性。
protected static org.apache.commons.logging.Log log
          Commons Logging のインスタンス。
protected  ModuleConfig moduleConfig
          関連付けられた ModuleConfiguration
protected  ActionServlet servlet
          関連付けられたサーブレット。
 
コンストラクタの概要
RequestProcessor()
           
 
メソッドの概要
 void destroy()
          アプリケーション終了の準備として消去を行います。
protected  void doForward(java.lang.String uri, javax.servlet.http.HttpServletRequest request, javax.servlet.http.HttpServletResponse response)
          RequestDispatcher を使用して指定された URI にフォワードします。
protected  void doInclude(java.lang.String uri, javax.servlet.http.HttpServletRequest request, javax.servlet.http.HttpServletResponse response)
          RequestDispatcher を使用して指定された URI インクルードします。
protected  MessageResources getInternal()
          内部にメッセージの文字列を含む MessageResources インスタンスを返します。
protected  javax.servlet.ServletContext getServletContext()
          実行しているウェッブアプリケーションのための ServletContext を返します。
 void init(ActionServlet servlet, ModuleConfig moduleConfig)
          リクエスト処理インスタンスを初期化します。
protected  void internalModuleRelativeForward(java.lang.String uri, javax.servlet.http.HttpServletRequest request, javax.servlet.http.HttpServletResponse response)
          リクエストディスパッチャーを使用して、 指定された URI へのフォワードとモジュールを関係付けます。
protected  void internalModuleRelativeInclude(java.lang.String uri, javax.servlet.http.HttpServletRequest request, javax.servlet.http.HttpServletResponse response)
          リクエストディスパッチャーを使用して、 指定された URI に含めるモジュールを関係付けます。
protected  void log(java.lang.String message)
          推奨されていません。 この替わりに commons-logging を使用して下さい。 このメソッドは Struts 1.2. より後に削除されます。
protected  void log(java.lang.String message, java.lang.Throwable exception)
          推奨されていません。 この替わりに commons-logging を使用して下さい。 このメソッドは Struts 1.2. より後に削除されます。
 void process(javax.servlet.http.HttpServletRequest request, javax.servlet.http.HttpServletResponse response)
          HttpServletRequest を処理して該当の HttpServletResponse を生成します。
protected  Action processActionCreate(javax.servlet.http.HttpServletRequest request, javax.servlet.http.HttpServletResponse response, ActionMapping mapping)
          このリクエストを処理するために使用される Action インスタンスを返します。
protected  ActionForm processActionForm(javax.servlet.http.HttpServletRequest request, javax.servlet.http.HttpServletResponse response, ActionMapping mapping)
          必要に応じ生成し維持しているマッピングに関連付けられた ActionForm を回収して返します。
protected  ActionForward processActionPerform(javax.servlet.http.HttpServletRequest request, javax.servlet.http.HttpServletResponse response, Action action, ActionForm form, ActionMapping mapping)
          このリクエストを扱うことを指定された Action インスタンスへの問い合わせです。
protected  void processCachedMessages(javax.servlet.http.HttpServletRequest request, javax.servlet.http.HttpServletResponse response)
          メッセージの isAccessed メソッドが真となる場合、 Globals.MESSAGE_KEY の中のセッションにある全ての ActionMessages を削除します。
protected  void processContent(javax.servlet.http.HttpServletRequest request, javax.servlet.http.HttpServletResponse response)
          要求された全てのレスポンスに対し、 (任意の文字エンコーディングとなる) デフォルトコンテントタイプを設定します。
protected  ActionForward processException(javax.servlet.http.HttpServletRequest request, javax.servlet.http.HttpServletResponse response, java.lang.Exception exception, ActionForm form, ActionMapping mapping)
          例外を扱うために例外ハンドラーへ問い合わせを行います。
protected  boolean processForward(javax.servlet.http.HttpServletRequest request, javax.servlet.http.HttpServletResponse response, ActionMapping mapping)
          (もしあれば)このマッピングによってリクエストされたフォワード先へ処理が渡されます。
protected  void processForwardConfig(javax.servlet.http.HttpServletRequest request, javax.servlet.http.HttpServletResponse response, ForwardConfig forward)
          指定機構により、指定先へフォワードまたはリダイレクトします。
protected  boolean processInclude(javax.servlet.http.HttpServletRequest request, javax.servlet.http.HttpServletResponse response, ActionMapping mapping)
          (もしあれば)このマッピングによるリクエストされた内部で処理します。
protected  void processLocale(javax.servlet.http.HttpServletRequest request, javax.servlet.http.HttpServletResponse response)
          リクエストされた場合、ユーザの Locale を自動的に選定します。
protected  ActionMapping processMapping(javax.servlet.http.HttpServletRequest request, javax.servlet.http.HttpServletResponse response, java.lang.String path)
          このリクエストの選択パスを処理するために使用されるマッピングを選定します。
protected  javax.servlet.http.HttpServletRequest processMultipart(javax.servlet.http.HttpServletRequest request)
          マルチパートリクエストの場合、 特別なラッパでラップします。
protected  void processNoCache(javax.servlet.http.HttpServletRequest request, javax.servlet.http.HttpServletResponse response)
          リクエストされた場合、全てのレスポンスに no-cache ヘッダを設定します。
protected  java.lang.String processPath(javax.servlet.http.HttpServletRequest request, javax.servlet.http.HttpServletResponse response)
          遷移するための ActionMapping を選定するため使用する (リクエスト URI からの) パスコンポーネントを確認して返します。
protected  void processPopulate(javax.servlet.http.HttpServletRequest request, javax.servlet.http.HttpServletResponse response, ActionForm form, ActionMapping mapping)
          このリクエストに含まれるリクエストパラメータから、 指定された ActionForm インスタンスのプロパティを作成します。
protected  boolean processPreprocess(javax.servlet.http.HttpServletRequest request, javax.servlet.http.HttpServletResponse response)
          サブクラスにより処理内容をオーバライドすることで、 多目的な前処理を行うことができます。
protected  boolean processRoles(javax.servlet.http.HttpServletRequest request, javax.servlet.http.HttpServletResponse response, ActionMapping mapping)
          アクションがセキュリティ上役割により保護されている場合、 現在のユーザが少なくともその中の一人であるかを確認します。
protected  boolean processValidate(javax.servlet.http.HttpServletRequest request, javax.servlet.http.HttpServletResponse response, ActionForm form, ActionMapping mapping)
          このリクエストがキャンセルされず、 かつリクエストの ActionMapping 検証が無効でない場合、 ActionForm で指定された validate メソッドが呼ばれ、 エラーがあった際には入力元のパスにフォワードされます。
 
クラス java.lang.Object から継承したメソッド
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

フィールドの詳細

INCLUDE_PATH_INFO

public static final java.lang.String INCLUDE_PATH_INFO

RequestDispatcher.include 要求を処理する間、 パス情報が格納されるリクエスト属性。

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

INCLUDE_SERVLET_PATH

public static final java.lang.String INCLUDE_SERVLET_PATH

RequestDispatcher.include 要求を処理する間、 サーブレットパス情報が格納されるリクエスト属性。

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

actions

protected java.util.HashMap actions

生成そして初期化された、 Action インスタンスのセット。 Action クラスの省略していない Java クラス名をキーとします。


moduleConfig

protected ModuleConfig moduleConfig

関連付けられた ModuleConfiguration


log

protected static org.apache.commons.logging.Log log

Commons Logging のインスタンス。


servlet

protected ActionServlet servlet

関連付けられたサーブレット。

コンストラクタの詳細

RequestProcessor

public RequestProcessor()
メソッドの詳細

destroy

public void destroy()

アプリケーション終了の準備として消去を行います。


init

public void init(ActionServlet servlet,
                 ModuleConfig moduleConfig)
          throws javax.servlet.ServletException

リクエスト処理インスタンスを初期化します。

パラメータ:
servlet - 関連付けられた ActionServlet
moduleConfig - 関連付けられた ModuleConfig
例外:
javax.servlet.ServletException - 初期化中にエラーが生じた場合

process

public void process(javax.servlet.http.HttpServletRequest request,
                    javax.servlet.http.HttpServletResponse response)
             throws java.io.IOException,
                    javax.servlet.ServletException

HttpServletRequest を処理して該当の HttpServletResponse を生成します。 または、他のリソースに渡します。

パラメータ:
request - 関連付けられたサーブレットリクエスト
response - 生成するサーブレットリクエスト
例外:
java.io.IOException - 入出力エラーが生じた場合
javax.servlet.ServletException - 処理で例外が生じた場合

processActionCreate

protected Action processActionCreate(javax.servlet.http.HttpServletRequest request,
                                     javax.servlet.http.HttpServletResponse response,
                                     ActionMapping mapping)
                              throws java.io.IOException

このリクエストを処理するために使用される Action インスタンスを返します。 必要に応じて新しいインスタンスを作成します。

パラメータ:
request - 関連付けられたサーブレットリクエスト
response - 生成するサーブレットリクエスト
mapping - 使用するマッピング
例外:
java.io.IOException - 入出力エラーが生じた場合

processActionForm

protected ActionForm processActionForm(javax.servlet.http.HttpServletRequest request,
                                       javax.servlet.http.HttpServletResponse response,
                                       ActionMapping mapping)

必要に応じ生成し維持しているマッピングに関連付けられた ActionForm を回収して返します。 マッピングに関連付けられた ActionForm が無い場合、 null を返します。

パラメータ:
request - 関連付けたサーブレットリクエスト
response - 生成するサーブレットレスポンス
mapping - 使用するマッピング

processForwardConfig

protected void processForwardConfig(javax.servlet.http.HttpServletRequest request,
                                    javax.servlet.http.HttpServletResponse response,
                                    ForwardConfig forward)
                             throws java.io.IOException,
                                    javax.servlet.ServletException

指定機構により、指定先へフォワードまたはリダイレクトします。 このメソッドは、 ActionForward の代わりに ForwardConfig オブジェクトを使用します。

パラメータ:
request - 処理するサーブレットリクエスト
response - 生成するサーブレットレスポンス
forward - 次に行く先を制御する ForwardConfig
例外:
java.io.IOException - 入出力エラーが生じた場合
javax.servlet.ServletException - サーブレット例外が生じた場合

processActionPerform

protected ActionForward processActionPerform(javax.servlet.http.HttpServletRequest request,
                                             javax.servlet.http.HttpServletResponse response,
                                             Action action,
                                             ActionForm form,
                                             ActionMapping mapping)
                                      throws java.io.IOException,
                                             javax.servlet.ServletException

このリクエストを扱うことを指定された Action インスタンスへの問い合わせです。 (もしあれば)さらに処理を行うため呼ばれた Action により戻された ActionForward インスタンスを返します。

パラメータ:
request - 処理を行うサーブレットリクエスト
response - 生成するサーブレットレスポンス
action - 使用されるActionインスタンス
form - この Action に渡される ActionForm インスタンス
mapping - この Action に渡される ActionMapping のインスタンス
例外:
java.io.IOException - 入出力エラーが生じた場合
javax.servlet.ServletException - サーブレット例外が生じた場合

processCachedMessages

protected void processCachedMessages(javax.servlet.http.HttpServletRequest request,
                                     javax.servlet.http.HttpServletResponse response)

メッセージの isAccessed メソッドが真となる場合、 Globals.MESSAGE_KEY の中のセッションにある全ての ActionMessages を削除します。 これよりメッセージは、セッションに格納され、 ある期間表示でき、そこから解除されることになります。

パラメータ:
request - 処理を行うサーブレットリクエスト
response - 生成するサーブレットレスポンス
導入されたバージョン:
Struts 1.2

processContent

protected void processContent(javax.servlet.http.HttpServletRequest request,
                              javax.servlet.http.HttpServletResponse response)

要求された全てのレスポンスに対し、 (任意の文字エンコーディングとなる) デフォルトコンテントタイプを設定します。 注意 - RequestDispatcher.forward が最後に呼ばれた場合、 このヘッダは自動的にオーバライドされます。

パラメータ:
request - 処理を行うサーブレットリクエスト
response - 生成するサーブレットレスポンス

processException

protected ActionForward processException(javax.servlet.http.HttpServletRequest request,
                                         javax.servlet.http.HttpServletResponse response,
                                         java.lang.Exception exception,
                                         ActionForm form,
                                         ActionMapping mapping)
                                  throws java.io.IOException,
                                         javax.servlet.ServletException

例外を扱うために例外ハンドラーへ問い合わせを行います。 (もしあれば)呼ばれた ExceptionHandler により戻された ActionForward インスタンスを返します。

パラメータ:
request - 処理を行うサーブレットリクエスト
response - 生成するサーブレットレスポンス
exception - 扱う例外
form - 処理を行う ActionForm
mapping - 使用する ActionMapping
例外:
java.io.IOException - 入出力エラーが生じた場合
javax.servlet.ServletException - サーブレット例外が生じた場合

processForward

protected boolean processForward(javax.servlet.http.HttpServletRequest request,
                                 javax.servlet.http.HttpServletResponse response,
                                 ActionMapping mapping)
                          throws java.io.IOException,
                                 javax.servlet.ServletException

(もしあれば)このマッピングによってリクエストされたフォワード先へ処理が渡されます。 標準処理が続く場合 true を返します。 また、このリクエストが既に処理された場合 false を返します。

パラメータ:
request - 処理を行うサーブレットリクエスト
response - 生成するサーブレットレスポンス
mapping - 使用する ActionMapping
例外:
java.io.IOException
javax.servlet.ServletException

processInclude

protected boolean processInclude(javax.servlet.http.HttpServletRequest request,
                                 javax.servlet.http.HttpServletResponse response,
                                 ActionMapping mapping)
                          throws java.io.IOException,
                                 javax.servlet.ServletException

(もしあれば)このマッピングによるリクエストされた内部で処理します。 標準処理が続く場合 true を返します。 また、このリクエストで既に処理された場合 false を返します。

パラメータ:
request - 処理を行うサーブレットリクエスト
response - 生成するサーブレットレスポンス
mapping - 使用する ActionMapping
例外:
java.io.IOException
javax.servlet.ServletException

processLocale

protected void processLocale(javax.servlet.http.HttpServletRequest request,
                             javax.servlet.http.HttpServletResponse response)

リクエストされた場合、ユーザの Locale を自動的に選定します。 注意 - ロケール選定の設定は、 必要に応じた新たな HttpSession 作成の切っ掛けとなります。

パラメータ:
request - 処理を行うサーブレットリクエスト
response - 生成するサーブレットレスポンス

processMapping

protected ActionMapping processMapping(javax.servlet.http.HttpServletRequest request,
                                       javax.servlet.http.HttpServletResponse response,
                                       java.lang.String path)
                                throws java.io.IOException

このリクエストの選択パスを処理するために使用されるマッピングを選定します。 マッピングが見つけられない場合、 エラーレスポンスを生成して null を返します。

パラメータ:
request - 処理を行うサーブレットリクエスト
response - 生成するサーブレットレスポンス
path - マッピングを選定するためのリクエスト URI の一部
例外:
java.io.IOException - 入出力エラーが生じた場合

processMultipart

protected javax.servlet.http.HttpServletRequest processMultipart(javax.servlet.http.HttpServletRequest request)

マルチパートリクエストの場合、 特別なラッパでラップします。 その他の場合、リクエストをそのまま返します。

パラメータ:
request - 処理を行う HttpServletRequest

processNoCache

protected void processNoCache(javax.servlet.http.HttpServletRequest request,
                              javax.servlet.http.HttpServletResponse response)

リクエストされた場合、全てのレスポンスに no-cache ヘッダを設定します。 注意 - RequestDispatcher.forward が最後に呼ばれた場合、 このヘッダは自動的にオーバライドされます。

パラメータ:
request - 処理を行うサーブレットリクエスト
response - 生成するサーブレットレスポンス

processPath

protected java.lang.String processPath(javax.servlet.http.HttpServletRequest request,
                                       javax.servlet.http.HttpServletResponse response)
                                throws java.io.IOException

遷移するための ActionMapping を選定するため使用する (リクエスト URI からの) パスコンポーネントを確認して返します。 そのようなパスが確認できない場合、 エラーレスポンスを生成して null を返します。

パラメータ:
request - 処理を行うサーブレットリクエスト
response - 生成するサーブレットレスポンス
例外:
java.io.IOException - 入出力エラーが生じた場合

processPopulate

protected void processPopulate(javax.servlet.http.HttpServletRequest request,
                               javax.servlet.http.HttpServletResponse response,
                               ActionForm form,
                               ActionMapping mapping)
                        throws javax.servlet.ServletException

このリクエストに含まれるリクエストパラメータから、 指定された ActionForm インスタンスのプロパティを作成します。 付け加えると、 CancelTag により生成されたボタンでリクエストがサブミットされた場合 リクエスト属性 Globals.CANCEL_KEY が設定されます。

パラメータ:
request - 処理を行うサーブレットリクエスト
response - 生成するレスポンス
form - 作成する ActionForm インスタンス
mapping - 使用する ActionMapping
例外:
javax.servlet.ServletException - RequestUtils.populate() メソッドにより例外がスローされた場合

processPreprocess

protected boolean processPreprocess(javax.servlet.http.HttpServletRequest request,
                                    javax.servlet.http.HttpServletResponse response)

サブクラスにより処理内容をオーバライドすることで、 多目的な前処理を行うことができます。 標準処理が継続される場合 true を返します。 また、レスポンスが既に完成した場合 false を返します。 デフォルトの実装はありません。

パラメータ:
request - 処理を行うサーブレットリクエスト
response - 生成するサーブレットレスポンス

processRoles

protected boolean processRoles(javax.servlet.http.HttpServletRequest request,
                               javax.servlet.http.HttpServletResponse response,
                               ActionMapping mapping)
                        throws java.io.IOException,
                               javax.servlet.ServletException

アクションがセキュリティ上役割により保護されている場合、 現在のユーザが少なくともその中の一人であるかを確認します。 通常の処理が続く場合 true を返します。 また、適切なレスポンスが生成されて処理が終了する場合 false を返します。

パラメータ:
request - 処理を行うサーブレットリクエスト
response - 生成するサーブレットレスポンス
mapping - 使用するマッピング
例外:
java.io.IOException - 入出力エラーが生じた場合
javax.servlet.ServletException - サーブレット例外が生じた場合

processValidate

protected boolean processValidate(javax.servlet.http.HttpServletRequest request,
                                  javax.servlet.http.HttpServletResponse response,
                                  ActionForm form,
                                  ActionMapping mapping)
                           throws java.io.IOException,
                                  javax.servlet.ServletException

このリクエストがキャンセルされず、 かつリクエストの ActionMapping 検証が無効でない場合、 ActionForm で指定された validate メソッドが呼ばれ、 エラーがあった際には入力元のパスにフォワードされます。 処理が続く場合、true を返します。 また、入力フォームに戻された場合、 false を返します。

パラメータ:
request - 処理を行うサーブレットリクエスト
response - 生成するサーブレットレスポンス
form - 作成するActionFormインスタンス
mapping - 使用する ActionMapping
例外:
java.io.IOException - 入出力エラーが生じた場合
javax.servlet.ServletException - サーブレット例外が生じた場合

internalModuleRelativeForward

protected void internalModuleRelativeForward(java.lang.String uri,
                                             javax.servlet.http.HttpServletRequest request,
                                             javax.servlet.http.HttpServletResponse response)
                                      throws java.io.IOException,
                                             javax.servlet.ServletException

リクエストディスパッチャーを使用して、 指定された URI へのフォワードとモジュールを関係付けます。 URI はカレントモジュールに関係します。 実際の URI はモジュールの名前にプレフィックスを付けて導出されます。

このメソッドはパッケージ内で使用され、 パブリック API の部分はありません。 サブクラスの中で使わないことをお勧めします。

パラメータ:
uri - フォワードのためにモジュールと関連付けた URI
request - このページのリクエスト
response - このページのレスポンス
例外:
java.io.IOException
javax.servlet.ServletException
導入されたバージョン:
Struts 1.1

internalModuleRelativeInclude

protected void internalModuleRelativeInclude(java.lang.String uri,
                                             javax.servlet.http.HttpServletRequest request,
                                             javax.servlet.http.HttpServletResponse response)
                                      throws java.io.IOException,
                                             javax.servlet.ServletException

リクエストディスパッチャーを使用して、 指定された URI に含めるモジュールを関係付けます。 URI はこのモジュールに関係します。 実際の URI はモジュールの名前にプレフィックスを付けて導出されます。

このメソッドは内部で使われ、 パブリック API ではありません。 サブクラスでは使わなようにして下さい。

パラメータ:
uri - 内部に含めるためにモジュールと関係付ける URI
request - このページのリクエスト
response - このページのレスポンス
例外:
java.io.IOException
javax.servlet.ServletException
導入されたバージョン:
Struts 1.1

doForward

protected void doForward(java.lang.String uri,
                         javax.servlet.http.HttpServletRequest request,
                         javax.servlet.http.HttpServletResponse response)
                  throws java.io.IOException,
                         javax.servlet.ServletException

RequestDispatcher を使用して指定された URI にフォワードします。 フォワードが必要となる全ての内部メソッドによってこのメソッドは使われます

パラメータ:
uri - フォワードするためのコンテクストと関連づける URI
request - このページのリクエスト
response - このページのレスポンス
例外:
java.io.IOException
javax.servlet.ServletException
導入されたバージョン:
Struts 1.1

doInclude

protected void doInclude(java.lang.String uri,
                         javax.servlet.http.HttpServletRequest request,
                         javax.servlet.http.HttpServletResponse response)
                  throws java.io.IOException,
                         javax.servlet.ServletException

RequestDispatcher を使用して指定された URI インクルードします。 このメソッドはインクルードする事が必要となる全ての内部メソッドにより使用されます。

パラメータ:
uri - インクルードするためのコンテクストに関連付ける URI
request - このページのリクエスト
response - このページのレスポンス
例外:
java.io.IOException
javax.servlet.ServletException
導入されたバージョン:
Struts 1.1

getInternal

protected MessageResources getInternal()

内部にメッセージの文字列を含む MessageResources インスタンスを返します。


getServletContext

protected javax.servlet.ServletContext getServletContext()

実行しているウェッブアプリケーションのための ServletContext を返します。


log

protected void log(java.lang.String message)
推奨されていません。 この替わりに commons-logging を使用して下さい。 このメソッドは Struts 1.2. より後に削除されます。

このウェッブアプリケーションのサーブレットコンテクストログのための指定されたメッセージを記録します。

パラメータ:
message - 記録されるメッセージ

log

protected void log(java.lang.String message,
                   java.lang.Throwable exception)
推奨されていません。 この替わりに commons-logging を使用して下さい。 このメソッドは Struts 1.2. より後に削除されます。

このウェッブアプリケーションのサーブレットコンテクストログのための指定されたメッセージと例外を記録します。

パラメータ:
message - 記録されるメッセージ
exception - 記録される例外


このドキュメントは、Ja-Jakartaにより訳されました。コメントがある場合は、report@jajakarta.orgまでお願いします。
Copyright (C) 2000-2004 - Apache Software Foundation