- - PR -
ServletからJSPにパラメータを渡す方法について
| 投稿者 | 投稿内容 | ||||||||
|---|---|---|---|---|---|---|---|---|---|
|
投稿日時: 2003-08-11 13:33
駄目ですか? 念の為に下記のようなサンプルを作成してテストしてみました。 私のところはこれで問題なく値が渡せております。 環境はj2sdk1.3.1_02+JRUN3.1です。 //TestServlet.java import java.io.*; import javax.servlet.*; import javax.servlet.http.*; public class TestServlet extends HttpServlet{ public void doGet(HttpServletRequest request, HttpServletResponse response)throws ServletException,IOException{ getServletContext().getRequestDispatcher("/test.jsp?message=テスト").forward(request,response); } public void doPost(HttpServletRequest request, HttpServletResponse response)throws ServletException,IOException{ doGet(request,response); } } //test.jsp <%@ page contentType="text/html; charset=shift_jis"%> <HTML> <HEAD> <TITLE>テスト</TITLE> </HEAD> <BODY> <h1><%= request.getParameter("message")%></h1> </BODY> </HTML> | ||||||||
|
投稿日時: 2003-08-11 14:32
[quote]
(株)ぽちさんの書き込み (2003-08-11 12:07) より:
どうもニシトミです。 追加発行がわかりませんが? ぽちさんの仰ってるのは逆でしょうか? RequestDispatcherはコンテナの内部で通信して pageを返すので、requestは引継ぎます HttpServletResponseのsendRedirectは、 クライアントに強制指定した、URLを 開かせるので、requestは引き継げません。 | ||||||||
|
投稿日時: 2003-08-11 14:52
みーちくです。
皆様、いろいろありがとうございました。 takuさん 私とtakuさんのソースの違いは、私はPostでtakuさんはGetです。 あと、メッセージを表示している所も、私は上部のスクリプレット内でパラメーターを 取得し、表示してます。 違いは無いように感じるのですが。 今の所、setAttributeで問題なく動いているので、このまま開発を続けようと思います。 が、ちょっと気になるので、調査は続けたいと思います。 原因がわかり次第、また投稿いたします。 皆様、ありがとうございました。 | ||||||||
|
投稿日時: 2003-08-11 15:07
これは完全に僕の認識が違っていました。 requestを「引き継ぐ」のはわかります。 ただ、getRequestDispatcherでクエリーを発行すること 自体ができるのか疑問だったのです。 「追加」というのは 1.表示側でリクエスト発行 →<form>で発行。 2.servlet側でjspにdispatchする際にまたrequest発行 →getRequestDispatcher("/hoge.jsp?xxx=xxx")で発行 ここで、2.の部分を同一のrequestに「追加」することが できる、できないという意味です。 答えは、「できる」ということですね。
これは、わかります。 最初に書いた内容ができない場合、getReqestDispatcherではなく sendRedirect("URL?xxx=xxx")でやればパラメータ渡せるのでは という意味でした。 今回のケースでは、requestを「引き継ぐ」必要はないんですよね? servletで設定した文字列をjspに渡したいだけですから。 なので、sendRedirectのケースを出したのです。 わたしもまだ未熟故理解していないこともあり、勉強になります。 では。 | ||||||||
|
投稿日時: 2003-08-11 15:10
takuさん、みーちくさん
私の方でも試してみました。 takuさんのソースを試したところ、すんなりできました。 私の認識違いのようでした。ありがとうございます。 また、みーちくさんの提示しているソースも試したが こちらもエラーメッセージが表示されました。 みーちくさん環境でnullになってしまうのは不思議ですね。 環境 j2sdk1.4.1_01 apache2.0.39 tomcat4.1.3 | ||||||||
|
投稿日時: 2003-08-11 15:10
初めての投稿ながら突っ込みです。
みーちくさんのソース req.getRequestDispatcher("/Search/error.jsp?error_message=" + error_message+ "").forward(req, res); takuさんのソース getServletContext().getRequestDispatcher("/test.jsp?message=テスト").forward(request,response); 対象ObjectがServletContextか、Requestかの差異があるようですが? ※的外れならすみません。テストまではしていないので。 | ||||||||
|
投稿日時: 2003-08-11 15:17
連続で投稿してしまってすいません。。
もしかしたら、ここで提示しているソースと 元ソースとで差分ありませんか? 元ソースのコピー&ペーストでしょうか? 提示しているソースでは基本的部分で コンパイルエラーが出ます。 「}」が一つ多いため。 コピー&ペーストでないなら、もしかしたら 元ソースのクエリー文字列部分がスペルミスってる とかないですかね? # 問題自体は解決しているようなのであまり # 追求しても仕方ないですが・・。 | ||||||||
|
投稿日時: 2003-08-11 15:37
(株)ぽちさんすみません
私の方もなんか誤解してました、というか 私のレスではなかったのですねすぐ下に ぽちさんの書き込みがあって勘違いしてました。 失礼しました。 | ||||||||
