- - PR -
getRequestDispatcherについて
1
投稿者 | 投稿内容 |
---|---|
|
投稿日時: 2002-10-30 11:57
こんにちは
servlet-jsp-beanで開発を行っています。 servletからjspにforwardするときのRequestDispatcherは ServletContextとServletRequestのどちらから取得するのが よいのでしょうか。 ServletRequestでは相対パスしか指定できない、とのことですが それ以外になにかパフォーマンスの違いはありますか? また[Java Servlet 徹底解説]で ServletContext ctx = null; public void init(ServletConfig config) { synchronized(this) { if(ctx == null) { ctx = config.getServletContext(); }}} とされているのは、このサーブレットが初期化されたときの サーブレット設定情報を1回だけ取得するための処理、と理解しているのですが、 servletRequest.getRequestDispatcher()と servletContext.getRequestDispatcher()で異なるRequestDispatcherが 返されることがあるのでしょうか。 ご教授よろしくおねがいします。 |
|
投稿日時: 2002-10-30 13:26
servlet2.3の仕様書を参照しましたところ
RequestDispatcherについては、パスの指定の仕方以外の 差異については言及されていませんでした。 どっちがどうということはないんじゃないでしょうか。 あとはコンテナ次第でしょうね。 Struts1.0.2ではServletContextから取っています。 |
|
投稿日時: 2002-10-30 13:55
amnakyさんありがとうございます。
当方はapache-tomcatなんですが、ある書籍のサンプルでは RequestDispatcher rd = getServletContext().getRequestDispatcher(); となっており、あるサイトでは RequestDispatcher rd = rquest.getRequestDispatcher(); となっていました。 とりあえず「Java Servlet 徹底解説」に習っておこう、と思いますが またなにかご報告できればしたいと思います。ありがとうございました。 |
|
投稿日時: 2002-10-30 16:09
ServletRequest.getRequestDispatcher()
の方はそのサーブレットが属しているコンテキストの外部のリソースは指定できなくて、 ServletContext.getRequestDispathcher() の方はServletContextのgetContext()メソッドによって外部のコンテキストを取得すれば外部リソースのRequestDispatcherも取得できるという違いじゃないでしょうか。 |
1