- - PR -
getRequestDispatcher("パス")がよくわかりません。
1|2|3
次のページへ»
| 投稿者 | 投稿内容 | ||||||||
|---|---|---|---|---|---|---|---|---|---|
|
投稿日時: 2003-08-12 10:20
初体験JAVAサーブレットで環境を作りました。
現在の参考書はやさしいJAVA活用編です。 class path:C:\jakarta-tomcat-3.3.1\webapps\first\WEB-INF\classes URL: http://localhost:8080/first/servlet/クラスファイル名 jsp path:C:\jakarta-tomcat-3.3.1\webapps\first\jsp URL:http://localhost:8080/first/jsp/ファイル名.jsp それでサーブレットからJSP、HTMLファイルへリクエストの転送 を行いたい場合どのようにすれば宜しいのでしょうか? 下記の場合/test01.htmlはどこからのパスになるのでしょうか? ServletContext sc = getServletContext(); sc.getRequestDispatcher("/test01.html").forward どうしてもわかりません。初歩的な事だと思いますが宜しくお願いします。 もう、Tomcat上のフォルダにtest.htmlを貼り付けたのですが駄目でした>< /test01.htmlのパスを変更して現在試していますが、まだできていません。 できればしっかりとした意味を理解しておきたいです。 | ||||||||
|
投稿日時: 2003-08-12 13:13
ServletContext#getRequestDispatcher()のパラメータはコンテキストルートからの絶対パスで指定します。
sc.getRequestDispatcher("/test01.html") 上記の指定は、webapps/first/test01.htmlを指定していることになります。 | ||||||||
|
投稿日時: 2003-08-12 16:30
Daraemonさん返答有難う御座います。
なるほど、webapps/first/test01.htmlを指定してるんですね。 ちなみに上記のパスを出力する事はできませんか? もしかしたら変な質問かもしれませんがJAVA3日目の初心者ですので宜しくお願いします。 | ||||||||
|
投稿日時: 2003-08-12 17:12
こんにちは。米山@クロノスです。
> なるほど、webapps/first/test01.htmlを指定してるんですね。 > ちなみに上記のパスを出力する事はできませんか? getServletContext().getRealPath("仮想パス") で、実際のパスを取得できます。 | ||||||||
|
投稿日時: 2003-08-12 19:58
米山@クロノスさんレス有難う御座います。
再度すいません。 ServletContext sc = getServletContext(); sc.getRequestDispatcher("/jsp/test01.html").forward とやって見ましたがリクエストの転送はできませんでした。 通常JSPファイルを見るときは URL:http://localhost:8080/first/jsp/ファイル名.jsp で見ることはできています。 Daraemonさんが教えてくれたパスで組み合わせると 例としてgetRequestDispatcher("/jsp/test01.html")は URL:http://localhost:8080/webapps/first/test01.htmlとなるんでしょうか? 後、getServletContext().getRealPath("仮想パス")の中身を実際にブラウザに出力はできますか? | ||||||||
|
投稿日時: 2003-08-12 20:15
sc.getRequestDispatcher("/jsp/test01.html").forward(request,response);
ではないですか? | ||||||||
|
投稿日時: 2003-08-12 20:37
Paracheck.class
import javax.servlet.*; import javax.servlet.http.*; public class Paracheck extends HttpServlet{ public void doGet(HttpServletRequest request,HttpServletResponse response) throws ServletException{ try{ //フォームデータの取得 String lgid = request.getParameter("loginid"); String pas = request.getParameter("password"); //サーブレットコンテキストの取得 ServletContext sc = getServletContext(); //リクエストの転送 if((lgid.length() != 0) && (pas.length() != 0)){ sc.getRequestDispatcher("/jsp/test01.html").forward(request,response); }else{ sc.getRequestDispatcher("/jsp/test02.html").forward(request,response); } }catch(Exception e){ e.printStackTrace(); } } } test.html <html> <head><Title>test</title></head> <body> <center><h2>test</h2><hr size="0"> <br><br> <hr width="500" size="0"> <!--▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼▼--> <form action="servlet/Paracheck" method=get> <br> id<input type="text" name="loginid"><br> pass<input type="text" name="password"><br> <input type="submit" value="送信"> </form> <br> <hr size="0"> </body> </html> sc.getRequestDispatcher("/jsp/test01.html").forward(request,response); は/jsp/test01.htmlや/first/jsp/test01.htmlなどやりましたが駄目でした>< | ||||||||
|
投稿日時: 2003-08-13 10:15
とありますが、 [http://localhost:8080/first/jsp/test01.html] では見れていますか?
とりあえずSystem.out.println()で標準出力に出してみるとか。 WindowsならDOS窓に出てくると思います。 [ メッセージ編集済み 編集者: amnaky 編集日時 2003-08-13 10:16 ] | ||||||||
1|2|3
次のページへ»
