javax.servlet
インタフェース RequestDispatcher


public interface RequestDispatcher

クライアントからリクエストを受け取り、さらにそのリクエストをサーバ上の(Servletや HTML ファイル、JSP ファイルのような)リソースに転送するオブジェクトを定義します。 Servlet コンテナは RequestDispatcher オブジェクトを生成します。 このオブジェクトは特定のパスか、指定された名前で参照できるサーバ上のリソースのラッパーとして使われます。

このインタフェースはServletをラップするために用意されていますが、 ServletコンテナがRequestDispatcherオブジェクトを生成すれば、どのようなタイプのリソースでもラップできます。

バージョン:
$Version$
作成者:
Various
関連項目:
ServletContext.getRequestDispatcher(java.lang.String), ServletContext.getNamedDispatcher(java.lang.String), ServletRequest.getRequestDispatcher(java.lang.String)

メソッドの概要
 void forward(ServletRequest request, ServletResponse response)
          Servletからサーバ上の他のリソース(Servlet、 JSPファイル、HTMLファイル)へとリクエストをフォワードします。
 void include(ServletRequest request, ServletResponse response)
          リソース(Servlet、JSPファイル、HTML ファイル)の内容をレスポンスにインクルードします。
 

メソッドの詳細

forward

public void forward(ServletRequest request,
                    ServletResponse response)
             throws ServletException,
                    IOException
Servletからサーバ上の他のリソース(Servlet、 JSPファイル、HTMLファイル)へとリクエストをフォワードします。 このメソッドを使うとあるServletは前処理を行うだけで、 他のリソースがレスポンスを生成するようなことができます。

RequestDispatcher オブジェクトは getRequestDispatcher() メソッドを通して得られるので、 ServletRequest オブジェクトには最終的なフォワード先となるリソースのパスに合うようなパス要素やパラメータがあります。

forward メソッドはレスポンスがクライアントに送り返される 前に(レスポンスボディの出力がフラッシュされる前に)実行されなければなりません。 レスポンスがすでに返された後に実行されると、このメソッドは IllegalStateException をスローします。 レスポンスバッファの送り返されてない出力は、フォワードの前にクリアされます。

リクエスト、レスポンスに関連付けられているパラメータはServletの service メソッドに渡されるものと同じオブジェクトか、リクエスト、 レスポンスをラップしている ServletRequestWrapper 、あるいは ServletResponseWrapper クラスのサブクラスでなければなりません。

パラメータ:
request - クライアントがServletに出したリクエストを表すServletRequest オブジェクト
response - Servletがクライアントに返すレスポンスを表すServletResponse オブジェクト
例外:
ServletException - 最終的なフォワード先となるリソースがこの例外をスローした場合
IOException - 最終的なフォワード先となるリソースがこの例外をスローした場合
IllegalStateException - すでにレスポンスが返された後に実行された場合

include

public void include(ServletRequest request,
                    ServletResponse response)
             throws ServletException,
                    IOException
リソース(Servlet、JSPファイル、HTML ファイル)の内容をレスポンスにインクルードします。 実質的にこのメソッドはプログラムによるサーバサイドインクルードを出来るようにしたものです。 パラメータを持っていますが、 これは呼び出し元から渡される過程で変化することはありません。 インクルードされたServletはレスポンスの状態コードを変更したり、 ヘッダに値を設定することはできません。そのような試みは全て無視されます。

リクエスト、レスポンスに関連付けられているパラメータはServletの service メソッドに渡されるものと同じか、リクエスト、レスポンスをラップしている ServletRequestWrapper 、あるいは ServletResponseWrapper クラスのサブクラスでなければなりません。

パラメータ:
request - クライアントのリクエストを表すServletRequestオブジェクト
response - Servletのレスポンスを表すServletResponseオブジェクト
例外:
ServletException - インクルードされるリソースがこの例外をスローした場合
IOException - インクルードされるリソースがこの例外をスローした場合


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

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