• 締切済み

servlet

servletで request.getParameter("id"); で、パラメータを取得できますが、 反対にset.Parameter("id","123")のようなメソッドもあるんですか? RequestDispatcher rDispatcher = req.getRequestDispatcher("showQ"); rDispatcher.forward(req, res); を実行して、showQ の中でgetParameterしたいんです。 どうしたらいいんですか?

  • Java
  • 回答数1
  • ありがとう数2

みんなの回答

  • ---
  • ベストアンサー率50% (7/14)
回答No.1

setAttribute(String name, Object o) で設定して getAttribute(String name) で取得できます。(スコープはrequest)

参考URL:
http://java.sun.com/j2ee/sdk_1.3/techdocs/api/index.html

関連するQ&A

  • RequestDispatcher でURL引数の扱い

    はじめまして。SINといいます。 今、ServletとJSPを使っているんですが、JSPからServletにはURL引数を渡す ことはできているんですが、ServletからJSPにはURL引数を渡すことはできるのでしょうか? 色々と調べていたんですが、わからず困っています。 SrvletからJSPへはRequestDispatcher の forward メソッドを使っています。 どなたか知恵をお貸しください。 下記にソースを抜粋したものを書きました。 String nextUrl = "/xxxx/xxxxx.jsp?aaa"; ServletContext context = request.getSession().getServletContext(); RequestDispatcher requestDispatcher = context.getRequestDispatcher(nextUrl); requestDispatcher.forward(request, response);

  • RequestDispatcherオブジェクトについて。

    データベース表示を行うサーブレットを呼び出す処理を行うには、RequestDispatcherオブジェクトを取得して、そのforwardメソッドを呼び出すだけと聞きましたが、うまくいきません。どなたかどこが悪いか教えてください。 // データベース表示するために、RequestDispatcherを取得 ServletContext cx = getServletContext(); RequestDispatcher rd = cx.getRequestDispatcher( "/netjv/servlet/shuwa.ext_db5_2_1"); // サーブレットを呼び出す rd.forward(request, response); } catch (Exception e) { e.printStackTrace(); } } 後、URL部分にはどこからのパスを書けばよいのでしょうか?あってるか不安です。

    • ベストアンサー
    • Java
  • servletからjspへオブジェクトの配列情報を送る方法

    いつもお世話になっております。echo2002です。 さて、今回は以下のような処理を行いたいのですが、可能なのでしょうか? ”servletで作成したオブジェクトの配列をjspにforwardして表示させる” こんなような処理を考えています。 構成:FileListServletクラス, FileInfomationクラス, disp.jsp FileInfomationクラスではファイル名やファイルサイズなどの情報を持ち、 それぞれgetなどのアクセサメソッドを持つとします。 FileListServletクラスでの処理 FileInfomationクラスの配列を作成し、各情報をsetする。 HttpServletRequestにsetAttributeでFileInfomation情報を付加し、 disp.jspへforwardする。 ※以下の方法を考えています。 request.setAttribute("fileinfo1", fileinfo[0]); request.setAttribute("fileinfo2", fileinfo[1]); request.setAttribute("fileinfo3", fileinfo[2]); ・・・ (配列でsetAttributeできるのかわからなかったので、  とにかくファイルの数分setAttributeしてみました) getServletContext().getRequestDispatcher("/disp.jsp").forward(req, res) わからないこと: disp.jspでどのようにFileInfomationの情報を取得し、 内容を参照できるのかがよくわからないのです。 jspの暗黙オブジェクトrequestを使用して、request.getParameterをすると、 返ってくる値がStringのようなので、FileInfomationクラスにならないんですよね? 突っ込みどころ満載の質問かと思いますが、何かアドバイス頂ければと思います。 オブジェクトの配列をsetAttributeしてjspで読み出せる方法があれば、 それもご教授いただけますでしょうか。 よろしくお願いいたします。jsp難しいです・・・。

    • ベストアンサー
    • Java
  • Servletでのエラーページへの転送方法について

    ServletでDBにアップロードするページをつくろうとしてます。そこで、登録フォームの入力チェックをし、エラーがあればエラーページに転送したいのですがうまくいきません。 下記がプログラムの一部なのですが、 ------------------ (省略) name = req.getParameter("NAME"); // 文字列の長さのチェック(入力文字にエラーがあればエラー文字列を追加) errorMessage += エラーチェックメソッド(name); // エラーメッセージが設定されていたら if(!errorMessage.equals("")) { // request オブジェクトにエラーメッセージを設定 req.setAttribute("error_message", errorMessage); ServletContext sc = getServletContext(); //エラーページへ転送 RequestDispatcher rd = sc.getRequestDispatcher("エラーページURL"); rd.forward(req,res); } } name = new String(name.getBytes("8859_1"),"SJIS"); //登録処理 (省略) -------------------- 登録フォームで無記入で登録して、エラーを発生させてると下記の様なエラーが発生してうまくエラーページに転送ができません。 どの様にエラーページに転送すればいいのかわからず、困ってます。 どのたか、ご教授頂けないでしょうか?よろしくお願いいたします。 -------------------------- エラー内容 'NAME' には、長さ 0 の文字列を格納できません。

    • ベストアンサー
    • Java
  • servletからjspへの遷移時に文字化け

    質問します。 用件:servletからjspに遷移する際に文字化けが発生します。 環境: Eclipse3.7 java6 ApacheTomcat7.0 フレームワークはなし 内容: フォワードでTest.jspに遷移します。 RequestDispatcher requestdispatcher = request.getRequestDispatcher("/Test.jsp"); requestdispatcher.forward(request, response); Test.jspに遷移すると、Test.jspの「<body>テスト</body>」がブラウザ表示時に文字化けします。 (英数字は化けません。) servletを使用せず、Test.jspに直接アクセスすると文字化けが起きません。 servletで、Test.jspで適当なhiddenを作成し、servletでgetParameterをSystem.out.printしても 文字化けなどはおきません。 また、RequestDispatcherでは文字化けが起こりますが、 response.sendRedirect("/Test.jsp"); だと文字化けがおきません。 現状、sendRedirectとsessionを使用して値の受け渡しを行っておりますが、 RequestDispatcherを使用したいので困っております。 また文字コードは javaファイルそのものはSJIS jspは<%@ page language="java" contentType="text/html; charset=SJIS" %> となっております。 わかりにくい文章で申し訳ありませんが、ご回答の程よろしくお願いします。

    • ベストアンサー
    • Java
  • RequestDispatcherの使用方法

    RequestDispatcherの使用方法について教えてください doPostメソッドにて以下のロジックを実行しています。 public void doPost(HttpServletRequest req, HttpServletResponse res){ Strin uri= "/aaa/bbb/ccc/ddd.jsp"; RequestDispatcher dis = request.getRequestDispatcher(uri); dis.foward(req, res); return; } この処理でfowardのところからreturnに進まず再度doPost()がよばれてしまい 無限ループ状態になります。 RequestDispatcher に設定されている情報は以下です。 servletPath = "bbb"; pathInfo = "/aaa/bbb/ccc/ddd.jsp"; 情報が足りていないとは思いますが よろしくお願い致します。

    • ベストアンサー
    • Java
  • ServletとJSPで。。。

    省略してますが、下記の記述で JSPの----部分の記述方法がわかりません。 実際、実行できる環境だといいのですが、今は実行環境がないので調査できません。 まだなにもわからない状態なので、記述が正しいかも自信ありませんがよろしくお願いします。 =============Servlet==============================Schedulebean bean = new Schedulebean(); bean.setYear(request.getParameter("year")); bean.setMonth(request.getParameter("month")); request.setAttribute("bean", bean); request.getRequestDispatcher("/jsp/schedulefrm.jsp").forward(request,response); ============ JSP ================== <%@ page contentType = "text/html; charset=Shift_JIS"%> <jsp:useBean id="bean" scope="request" class="java.lang.String"/> <HTML> <FRAMESET FRAMESPACING="10" COLS="250,*"> <FRAME src="/jsp/calender.jsp?Year=<%= year % -------- ↑ >&Month=<%= month %>" --------- ↑    上記をid 取得する記述は? name = "left" scrolling = "no" NORESIZE /> <FRAME src="/jsp/schedule.jsp?Year=<%= year %>&Month=<%= month %>" name = "right" scrolling = "yes" /> </FRAMESET> </HTML>

    • ベストアンサー
    • Java
  • HTTPステータス 404 - /servlet/Testが表示される

    はじめまして。Javaの初心者です。 どうしてもわからないことがあります。それは、 最初にTest.jspを実行して送信ボタンを押すと、 サーブレットからforwardされてきた「あああああ」 が表示されるのですが、再び送信ボタンを押すと、 「HTTPステータス 404 - /servlet/Test」が表示 されます。なぜなのでしょうか?また、どのようにす れば、404エラーを出すことがなく実行できるのが どうか教えてください。お願いします。 ************************************************* <%-- Test.jsp --%> <%@ page contentType="text/html; charset=Shift_JIS" %> <html> <head> <title>Test</title> </head> <body> <form method="POST" action="/servlet/Test"> <input type="submit" name="submit" value="送信"/><br/> </form> <% if(request.getParameter("submit") != null) { %> <hr/> <%= (String)request.getAttribute("b") %> <% } %> </body> </html> ************************************************* import java.io.IOException; import javax.servlet.*; import javax.servlet.http.*; public final class Test extends HttpServlet { public void doPost ( HttpServletRequest request, HttpServletResponse response ) throws IOException,ServletException { request.setAttribute("b","あああああ"); ServletContext sc = this.getServletContext(); RequestDispatcher rd = sc.getRequestDispatcher("/Test.jsp"); rd.forward(request,response); } } *************************************************

    • ベストアンサー
    • Java
  • サーブレットのパラメタ変更

    例えば、 - a.html - <form method="post" action="/Servlet1"> <input type="text" name="animal" size="12"> <input type="submit" value="送信"> </form> というHTML文がありanimalのテキスト内容がcatとしてServlet1へリクエストしたとします。 Servlet1ではgetParameter("animal")でcatを取得できます。そこで次のページをレスポンスするべく、 getServletContext().getRequestDispatcher("Jsp1.jsp").forward( request, response ); という形でJsp1.jspへフォワードします。Jsp1.jspでもrequest.getParameter("animal");とすると catという値が取得できると思うのですが、これをServlet1でanimalがcatならdogというようにパラメータの値を変更することはできますでしょうか? 初歩的な質問かと思いますが、何卒、宜しくお願いいたします。

    • ベストアンサー
    • Java
  • Cookieが反映されない

    Servletで設定したCookieをJSPで取得できないのです。 具体的には (1)Servletクラスで↓のようにresponseに対してaddCookieを行います。 Cookie cookie = new Cookie("key", "KEY"); cookie.setMaxAge(-1); // ブラウザが終了するまで有効 HttpServletResponse response.addCookie(cookie); (2)nextPage.jspにホワードします。 HttpServletRequest req; HttpServletResponse res; ServletContext context = this.getServletContext(); RequestDispatcher rd =context.getRequestDispatcher("nextPage.jsp"); rd.forward(req,res); (3)nextPage.jspでCookieを取得 Cookie cookies[] = request.getCookies(); String name = cookies[0].getName(); String value = cookies[0].getValue(); 以下の方法でServletで書き換えたCookieが取得できません、もっと具体的に言うと1つ前のCookieの状態が取得されてしまいます。(最新のCookie情報が取得できない) というような状況です。 皆様よきアドバイスを。。。