サーブレット API の拡張機能

JRun には、サーブレットの JSP ドキュメントをプログラム内から呼び出す機能があり、その機能により JSP ドキュメントがサポートされています。

allaire.jrun.servlet.JRunResponse クラス

このクラスにより、javax.servlet.http.HttpServletResponse インターフェイスが実装され、サーブレットでページを呼び出し、必要に応じてコンテキストを渡せるようにするメソッドが追加されます。このクラスは JRun の以前のリリースとの下位互換性を保つためにあり、com.livesoftware.jrun.JRunServletResponse として参照できます。


メモ

新しいアプリケーションの開発または古いアプリケーションの書き替えの場合は、 "JSP に制御を渡す方法"で説明しているように、JRunResponse.callPage を使用しな いで RequestDispatcher.forward または RequestDispatcher.include を呼び出して ください。


callPage(String fileName, HttpServletRequest req)

このメソッドを使用して、サーブレット内部から JSP を提供します。request オブ ジェクトを使用して、このメソッドに一部のコンテキストを渡すことができます。 ファイルは、このページがキャッシュされないことをブラウザに伝えるヘッダ ディレクティブとともに返されます。

パラメータ

fileName 出力を生成し、コンテンツを表示するために使用されるファイルを 表す URL 名。「/」で始まる名前は、ドキュメント ルートに対する相対パスで あると見なされます。先頭が「/」でない場合は、現在の要求の呼び出しに使用 された URL への相対パスと見なされます。

req このメソッドを呼び出すサーブレットの HttpServletRequest オブジェ クト。request オブジェクトのコンテキストでは、コンテンツは通常、Bean として渡されます。

サーブレットの service メソッド内部から JSP を呼び出す例は次のとおりです。

service(HttpServletRequest req, HttpServletResponse res) 
  throws IOException, ServletException {
  JRunServletRequest jrunReq = (JRunServletRequest)req;
  // 要求オブジェクトに属性を保存します。
  jrunReq.setAttribute("greeting", "Hello World");
  JRunServletResponse jrunRes = (JRunServletResponse)res;
  jrunRes.callPage("/a.JSP", jrunReq);
}

このサーブレットの例では、次の例に示す HTTPServletRequest.getAttribute メソッドを使用して request-scope 属性にアクセスできる a.jsp という JSP ページを呼び出しています。

<% String greeting = (String)request.getAttribute(“greeting”); %>

別のサーブレットへの制御の受け渡しの詳細については、"制御の受け渡し"を参照してください。