Mergedoc
Translation

javax.servlet
インタフェース RequestDispatcher


public interface RequestDispatcher

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

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

作成者:
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

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

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

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

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

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

include

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

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

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

Mergedoc
Translation

Copyright © 2000- The Apache Software Foundation. All rights Reserved.