servlet forwardの方法


最近strutsの元のプログラムを読んで、いくつかのコードを抜粋しました.次はforwardを他のリソースに要求するコードです.

RequestDispatcher rd = getServletContext().getRequestDispatcher(uri);
rd.forward(request, response);

RequestDispatcherはrequestの処理を割り当てるリソースです.
ネットで資料を調べて、getServiceletContext().getRequestDispacher(uri)とrequest.getRequestDispatcher(uri)には次のような違いがあります.
参照
  1、ServletRequest.getRequestDispatcher(String   path) 
パスは絶対パスであっても相対パスであってもよい
  
  2、ServletContext.getRequestDispatcher(String   path) 
pathはcontext rootを表す「/」で始まる必要があります
   
3、もう一つの方法サーブレットContext.getNameDispatcher(String   name) 
パラメータはパスではなく、その名前で、複数のサーブレット名が同じであればweb.xmlによる構成の違い
  
4.以上の方法で1つのRequestDispatcherオブジェクトを返送し、続いてforward()またはinclude()
  
5、forward()とinclude()の違いは、include()メソッドがHTTPリクエストを他のサーブレットまたはjspに転送した後、このサーブレットまたはjspはリクエストを処理できるが、主導権は元のサーブレットまたはjspであり、呼び出されたサーブレットまたはjspがHTTPレスポンスを生成すると、元のHttpResponseオブジェクトに組み込まれる