• 締切済み

getParameterの値変更

jspからservlet1に値を2つ(mao, saito)渡し、 そのうち1つの値をservlet1の中で変更(mao→ai)し、 変更後の値(ai)と変更してない値(saito)を servlet2に渡したいのですが、うまくいきません。 1.servlet1でgetParameterで値は取得できましたが、 その値の変更方法がわかりません。 2.servlet1-servlet2間をforwordを使用しようとして、一先ずsetAttributeで値を変更することはできたのですが、直後にgetParameterすると変更前の値でした。 検索しましたが、参考になりそうなものが発見できず困ってます。どなたか教えてください。 検索の掛け方が悪いのかもしれないので 参考になりそうなページがあればURL教えてください。

みんなの回答

  • fortranxp
  • ベストアンサー率26% (181/684)
回答No.2

現状は 1.servlet1  name1=request.getParameter("name1");//mao  name2=request.getParameter("name2");//saito        ↓  name1="ai";  request.setAttribute("name1",name1);//ai  request.setAttribute("name2",name2);//saito 2.servlet1→servlet2  name1=request.getParameter("name1");//mao  name2=request.getParameter("name2");//saito   ここでrequest.getParameter()でなくて  name1=request.getAttribute("name1");//ai  ではいけないのですか?

mao4rent
質問者

お礼

お礼が送れてすみません。 getParameterでは単に確認のために標準出力で確認しているだけです。 getAttributeだとうまくとれます。 ですが、なぜPara・・・がNGなのかがわからなくていました。 ありがとうございました。

全文を見る
すると、全ての回答が全文表示されます。
noname#18558
noname#18558
回答No.1

まず、 HttpServletRequestのparameterは、読み取り専用なので変更できません。 それを踏まえて、 1.の回答は、 2.でも質問されているようにsetAttributeを使います。 2.の回答は、 最初にも説明しましたが、parameterは変更できませんので、 request#getAttributeで取得します。

参考URL:
http://www.kab-studio.biz/Programing/JavaA2Z/Word/00000768.html
mao4rent
質問者

お礼

お礼が送れてすみません。 読み取り専用とは知りませんでした。 勉強になりました。 ありがとうございました。

全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

  • getParameter と getAttributeの違いについて

    Servletで、Form内の任意の項目を取得する場合には、 「getParameter」 と 「getAttribute」があります。 この二つの違いとしては getParameter 戻り値:String なのに対して getAttribute 戻り値:Object という違いがあります。 感覚的には getParameterも、getAttributeも、 Form内の任意の項目の値を取得する場合に getParameter("項目名"); getAttribute("項目名"); という使い方で 「どちらでもHTML(JSP)のフォーム内のデータを取得できる」という感覚がありあます。 ちょっと上手く纏められず、前提が長くなってしまったのですが 【ご質問1】 getParameterとgetAttributeの、 決定的な違いとはなんなのでしょうか? 参考のURLにもあるように 「Parameter は request にユーザが乗せてきたもの。 」であり、 「Attribute は request 生成後に Servlet だか JSP だかがくっつけたもの。」であるという違いが決定的な違いでしょうか? 言い換えれば Parameter は フォーム内のリクエストデータを受け、渡す役割をもつ、担当者であり Attribute は フォーム内のリクエストデータを受け、加工し、渡す役割を持つ担当者である ということでしょうか? 【ご質問2】 getAttributeがあるにも関わらず、 getParameterは何故存在するのでしょうか? getAttributeは戻り値をObject型として戻りますが、String型にキャストしてやれば、それでgetParameterで取得した効果と同じ効果が得られるものだと思われるので getParameterの存在理由が見出せないのですけども、getParameterはgetParameterで何か特別な役割をもっているのでしょうか? 【ご質問3】 フォーム内データを取得する場合、 「getParameter」でなければならないとか「getAttribute」を使用しなければならない、とかそういった決まりはありますでしょうか? [参考URL] http://www.atmarkit.co.jp/bbs/phpBB/viewtopic.php?topic=403&forum=12

    • ベストアンサー
    • Java
  • リンクの値→サーブレット

    いつもお世話になっております。 今回もよろしくお願いいたします。 (1)jsp画面のリンクの値をServletへおくる (2)ServletでDBアクセスし、処理を行う (3)(2)で処理した値をBeanに格納する (4)jsp画面でBeanの値を取得する といった流れをしています。 [(1)のjspでのコード(一部)] <form name= henkou method="post" action="../servlet/RequestServSession"> <a href= "../henkou.jsp"> <input type=hidden name=MySubmit> <jsp:getProperty name="reqObject" property="id" /> </a> </form> <script language="JavaScript"> function func(MyCommand){ document.henkou.MySubmit.value=MyCommand; document.henkou.submit(); } </script> [(2)Servletのコード(一部)] String strId = (String)request.getParameter("MySubmit"); String strSesId = new String(strId.getBytes("iso-8859-1"),("Shift_JIS")); int intId = (Integer.parseInt(strId));           ・           ・           ・ //処理された値をBeanに格納 HttpSession session = request.getSession(); *1→session.setAttribute("id",sid); *2→session.setAttribute("name",name); *3→session.setAttribute("biko",biko);           ・           ・           ・ などを実行すると、(4)では   *1→ 0   *2→ null   *3→ null が表示されます。 リンクの値がServletへきちんと送れていないのだと思い、jsp→Servletのみで実行したところ、 "Http-500エラー NullPointerException" が発生します。 どのようにしたらうまく値をおくることができるのでしょうか? どなたかご教授のほどよろしくお願いいたします。 

    • ベストアンサー
    • 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
  • JSPからServletへの値の引渡し

    JSPからServletへパラメータを渡そうとしています。 JSP同士のやり取りのようにrequest.getParameter でやろうとするとNullPointerExceptionが出てしまいます。 ひょっとして私って何も分かってないのかも…。 JSPで、 <input type=hidden name="nickname" value="pinky"> として渡すべき値を設定しました。 そして、PostでServletを呼び出します。 呼び出されたServlet側で、この"nickname"を受け取りたいのです。 必要な情報があれば仰って下さい。補足致します。 よろしくお願いします。

    • ベストアンサー
    • Java
  • *値の受け渡し方法が分かりません*

    失礼いたします。 お昼過ぎからjavateaです。 質問させて下さい。 今、jspファイルの中にサーブレットを、include演算子を用いて埋め込もうとしています。 <jsp:include page = "/servlet" flush="true" /> ところが、このサーブレットに値をどう受け渡せばいいのか分かりません。 jsp→サーブレットなら普段サーブレット側でrequestのgetParameterとかを使って値を受け渡しているのですが、jspの中に埋め込まれている場合どうすればいいのでしょうか? 埋め込まれているものは同じページだと解釈してjspソース内で受け取った値をそのまま使ってよろしいのでしょうか?(そんな訳ないですよね・・・) かなり混乱しています。 教えてください、よろしくお願いします。m(__)m

    • ベストアンサー
    • Java
  • JSPから値を送ったときのServletでの受け取り方について

    JSPから<form>で値を送って、それをServletでgetParameterで受け取る処理を しているのですが、 JSPから送る値がいくつあるかわからない場合、Servlet側ではどのように 受け取る方法があるでしょうか? 例えば、 <form action="<%= response.encodeURL("/mimi/abc") %>" method="post"> <% for(int i=0;i<attr.size();i++) { //attr.size()にはいくつ入ってるか不明として String strNameAtr = (String)attr.elementAt(i) ; %> 値 <input type="text" value="<%= strNameAtr %>" name="xmlValueAttr_"+"<%= i %>"><br> <% } %> <input type="submit" value="変更" name="getText"> </form> これを、Servletで受け取る場合、どのように受け取れるでしょうか? xmlValueAttr_iの"i"の部分はいくつまで入っているかわからないので、 普通の処理だと、対応できません。 いい方法があったら、教えてください、お願いします。

    • ベストアンサー
    • Java
  • requestパラメータの内容変更

    はじめまして。 request.getParameter()とrequest.setAttribute()について教えてください。 サーブレット側で画面制御をするために、アクションクラスの中での処理内容によってrequestパラメータを変更しようとしています。 具体的には、submit時に ...?id=aaa とした値をサーブレット側の処理内容によって request.setAttribute("id",'bbb')などと変更したいのです。 上記の構文であっているとは思うのですが、値が変わってくれません。 request.setAttribute("id","bbb")のあと、すぐにrequest.getParameter("id")とすると"aaa"が取れるのです。 これは何か使い方が間違っているのでしょうか? ご教授よろしくお願いします。

  • jspのテキストボックスの値保持について

    jspにおける、値の保持についての質問です。 以下のjsp内テキストボックスに値を入れ、その値を元に検索する、というものです。 jspです <form name = "form_serchList" method ="post" action ="BookSrv" > 書籍名検索 <br> 書籍名をどうぞ<input type = "text" name = "serchWord"> <input type = "hidden" name = "serch" value = "serch"> <input type="submit" value="検索"> </form> servletです // 一覧/検索画面の検索を押した際の処理 }else if("serch".equals(serch)){ // 検索したい言葉を取得 String serchWord = request.getParameter("serchWord"); // セレクト処理を呼ぶ List<BookBean>list_ = bd.selectOrSerch(con_,serchWord); // ジャンル一覧をリクエストスコープに格納 request.setAttribute("BOOK_LIST",list_); address = LIST; その際、例えば「ア」を入れて検索した場合検索は可能ですが、テキストボックス内の「ア」は消えてしまいます。これを、「ア」を消さずに保持しておく、というやり方について、どなたか教えて頂けないでしょうか?よろしくお願い致します。

    • ベストアンサー
    • Java
  • JSPとservletについて質問です。

    よろしくお願いします。 jsp→servlet→jsp の順で入力画面→getPatameterで値をゲットして一度 setAttributeでその値をforwardで次のjspにやろうと したいのですがどうしてもservletのところで java.lang.NoSuchMethodErrorが出てしまいます。 その行を見てみるとforwardの場所出ているようです。 そこで、最後のjspをservletにしてやってみると今度はエラー出ずに、表示されるのですがすべての値がnullになってしまいます。 二番目のservletの場所で試しに表示してみると表示されるので渡す時にうまく渡っていないみたいです。 因みにdoGetメソッドを使用していて、一番最後のservletのところのアドレスを見てみるとちゃんと値を 渡しているみたいです。 もうかれこれ5日間程ずっとここでつまっていてもうどうしたらいいのか分かりません。 どなたかアドバイスをお願いします。

    • ベストアンサー
    • 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