- - PR -
サーブレットからJSPへの制御の移動
| 投稿者 | 投稿内容 | ||||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
投稿日時: 2004-01-23 18:24
現在サーブレットでsetAttributeしてからJSPに制御を移し、値を取得しようと考えています。
制御を移すためにgetRequestDispatcherを使用しているのですが404エラーとなってしまいます。 現在のソースは ServletContext sc = getServletContext(); RequestDispatcher disp = sc.getRequestDispatcher("/www/ank/Tea_admin.jsp"); disp.forward(request, response); です。また RequestDispatcher disp = request.getRequestDispatcher("www/ank/Tea_admin.jsp"); disp.forward(request, response); として実行したところ /servlet/www/ank/Tea_admin.jsp となりました。 コンテキストパスは <Context path="/www" reloadable="true" docBase="D:\java\question\www" workDir="D:\java\question\www\work\org\apache\jsp" /> で、JSPは D:\java\question\www\ank に格納しています。 getRequestDispatcherの引数についてアドバイスいただけないでしょうか | ||||||||||||||||
|
投稿日時: 2004-01-23 19:04
こんにちは。米山@クロノスです。
ServletContextからRequestDispatcherを取得する場合、getRequestDispatcherメソッドの引数にはコンテキストからの絶対パスを指定しなければなりません。 またHttpServletRequestからであれば、getRequestDispatcherメソッドの引数は相対パスを指定します。 hidさんの、そのサーブレットのコンテキストは「www」ですよね? | ||||||||||||||||
|
投稿日時: 2004-01-23 19:25
>米山さま
早速のご回答ありがとうございます。 RequestDispatcher disp = request.getRequestDispatcher("ank/Tea_admin.jsp"); disp.forward(request, response); としまして試しましたところ The requested resource (/servlet/www/ank/Tea_admin.jsp) is not available. とのメッセージが出ました。 System.out.println(request.getServletPath()); でサーブレットパスを見ると /servlet/question とパッケージ名が出たのですが何か関係はありますでしょうか。 また、 ServletContext sc = getServletContext(); RequestDispatcher disp = sc.getRequestDispatcher("/ank/Tea_admin.jsp"); disp.forward(request, response); に関しましても同様に404エラーでした。 The requested resource (/ank/Tea_admin.jsp) is not available. 開発にEclipseを使用しておりまして アプリケーションURI、WEBアプリケーションのルートとするサブディレクトリが共に「/www」となっています。コンテキストはwwwで間違いないと思います。 申し訳ございませんがよろしくお願いします。 | ||||||||||||||||
|
投稿日時: 2004-01-23 19:49
not available のメッセージが出ますか。
一度Tomcatを再起動してみてください。で、もう一度
を試すとどうなりますか? | ||||||||||||||||
|
投稿日時: 2004-01-23 20:08
>米山さま
ご回答ありがとうございます。 ご指摘いただいたTomcat再起動後実行してみましたが同じように The requested resource (/servlet/www/ank/Tea_admin.jsp) is not available. とのことでした。 いかがでしょうか。回答お待ちしています。 | ||||||||||||||||
|
投稿日時: 2004-01-23 21:12
ところで「ank」以下に置いたJSPファイルをブラウザのアドレスバーから直接リクエストして表示できますか? 実行できるのであれば、その際のアドレスはどうなっています。 | ||||||||||||||||
|
投稿日時: 2004-01-23 21:35
>米山さま
ご回答ありがとうございます。 アドレスバーへ http://localhost/www/ank/Tea_admin.jsp と打ち込み、表示することができました。 ただ、値を受け取らなければ表示はできませんので処理が走っただけですが・・・。 いかがでしょうか。 | ||||||||||||||||
|
投稿日時: 2004-01-24 04:55
米山@クロノスです。
であれば、
の指定でダメですか? scでもrequestでも、どちらでもいけると思いますが。。。
これは
のようになっていませんか? | ||||||||||||||||
