• 締切済み

requestパラメータの内容変更

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

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

みんなの回答

noname#86752
noname#86752
回答No.2

パラメータを変更したいというのは、それによって処理内容を変えるということですよね。ということはパラメータを変える以外の方法でも処理内容を変えることは実現可能だと思いますがどうでしょう? (そういう理由でsetParameterメソッドがないのだと思います)

回答No.1

まちがえています。 set/get以下が同じ名前のメソッド同士ペアで利用します。 setAttributeで設定した値は、getAttributeで取得します。 また、パラメータを変更するsetParameterはありません。 ですので、パラメータが変更できないので、別の方法を考えてください。

関連するQ&A

  • HTTPリクエストのリクエスト行部とデータ本体部

    HTTPリクエストには (1)「HTTPリクエスト行」 (2)「HTTPヘッダー」 (3)「データ本体」の3つのパートがあると思います。 これらのうち、「データ本体」について質問です。 クライアント側から、 formのinputタグにリクエストパラメータをセットしてsubmitしたとき、 サーブレット側ではgetParameterで値を取得していますが、 これは、(3)「データ本体」から取っているのでしょうか? (1)「HTTPリクエスト行」から取っているのでしょうか?

    • ベストアンサー
    • Java
  • javascriptからURLパラメータ値を送る

    使用言語はJSPです。 画面上のラジオボタンの値を取得しているjavascriptが以下です。 これでボタンが押下されたとき、この関数を呼び出しラジオボタンのVALUE値をアラートとして表示することはできています。 これをURLパラメータとして、JSPサーバ側に送りたいと思いますが、 NULL値となってしまいます。 取得は、request.getParameter("aaa"); としていますがNULL値です。 JAVASCRIPTからURLパラメータを送付・サーバ側から取得する方法を教えていただけますか。 function check(){ var aaa = document.getElementsByName("ラジオボタンの名前"); for(var i=0;i<arr.length;i++){ if(aaa[i].checked) var param = aaa[i].value; aaa.action = "./bbb.jsp?param="+param; aaa.submit(); return aaa[i].value; } }

  • [JSP]1Servletから複数フレームにパラメータ渡し

    HTMLの<frame>タグでaaa.jspとbbb.jspを同時に表示させています。 aaa.jspからのフォームの値をHOGEというServletで受取り、 処理したものをaaa.jsp・bbb.jsp共に反映(更新)させるにはどうすれば良いでしょうか? 現状、forwardを2回書いているのですが、下記の様に怒られてしまいます。 (エラー/java.lang.IllegalStateException: レスポンスをコミットした後でフォワードできません ) ============aaa.jspのフォーム=================================== <form name="a1" method="post" action="/HOGE"> <input type="submit" name="GO" value="go"> </form> ================================================================ ============HOGE (サーブレット)================================ public class HOGE extends HttpServlet { public void doPost (HttpServletRequest request, HttpServletResponse response){ //jspに渡すパラメータをセット request.setAttribute("pram1", "judy"); request.setAttribute("pram2", "mary"); //forward準備 ServletContext sc = getServletContext(); RequestDispatcher aaa = sc.getRequestDispatcher("/jsp/aaa.jsp"); ServletContext sa = getServletContext(); RequestDispatcher bbb = sa.getRequestDispatcher("/jsp/bbb.jsp"); try { aaa.forward(request, response); bbb.forward(request, response); //ここでエラー } catch (ServletException e) { } catch (IOException e) { } } } ============================================================== どなたかご存知の方いらっしゃいましたら御教授宜しくお願いします。

  • サーブレットのパラメタ変更

    例えば、 - 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
  • シェルの引数を、実行するパラメータに指定するには?

    シェル初心者です。 シェルの実行パラメータを、その中で実行する処理のパラメータに再び指定したいのですが可能でしょうか。 ただし、パラメータの数は可変です。 環境はSolarisです。 aaa.sh aaa bbb ccc aaa.shの中 bbbコマンド aaa bbb ccc ということを行いたいです。 パラメータ数が固定であれば問題なさそうですが 可変の場合、どのような記述をすればよいでしょうか?

  • JSPからのパラメータチェック

    いつもお世話になっております。 開発環境はeclipse SDK。OSはWInXP。 現在JSPより送られてきた値のチェックを行うプログラミングをしているのですがうまくいきません。 JSP側で"すべて"という文字列を送信してサーブレットでその文字列を受け取り、if文で判定を行おうとしています。 デバッグでみるとサーブレットにきちんと"すべて”の文字が送られてきています。 サーブレット内のif文をどうしてもとおりません。 問題のif文は以下のような感じです。 String msg = request.getParameter("msg"); if(msg == "すべて") msg = "すべてが入力されました"; request.setAttribute("msg",msg); JSPから送られている"すべて"とデバッグで調べても同じに見えます。 型がおかしいのかと思い、ためしに以下のようなことをしてみました。 String msg = request.getParameter("msg"); String chekmsg = "すべて"; if(msg == chekmsg) msg ="すべてが入力されました"; request.setAttribute("msg",msg); としても結果が同じです。 残る可能性は、デバッグモードで見ると、msgとchekmsgのhashの数字が違うところぐらいです。 お分かりなる方がいましたらよろしくお願いいたします。

    • ベストアンサー
    • Java
  • getParameter and スペース

    HTMLフォームのテキストフィールドに「 AAA△BBB 」と入っているとします。 HTMLフォームから送信されたデータをサーブレットを受け取る為に getParameter() メソッドを使用すると 「AAA」と取得されます。 どうも△(半角スペース)が途中に存在するとそれ以降の値が取れません。(全 角スペースはまだ試していません) AAA△BBB を取得するにはどうしたらよいのでしょうか?

    • ベストアンサー
    • Java
  • Ajax.Requestで?を含むパラメータがPOSTできなくて、困っています

    はじめまして、ajaxはほとんど初心者です。 早速質問させていただきます。 javascriptで var paramList = "link=aaa?bbb"; new Ajax.Request(url, { method: 'post', onSuccess: getData, onFailure: showErrMsg, parameters: paramList }); と入力して $_POST["link"]でパラメータを受け取ろうとしても、うまく受け取ることができません。 var paramList = "link=aaabbb"; として試してみたらうまく受け取れたので、 おそらく?に何かあると思い調べてみたのですがよくわかりませんでした。 "aaa?bbb"という文字列をそのままpostする方法はあるのでしょうか? わかる方がいらっしゃったら回答をよろしくお願いします。

  • requestの値が削除されません…

    requestの値を削除したいのですが、全く削除出来ません。 ソースは Enumeration parameterNames = request.getParameterNames(); while( parameterNames.hasMoreElements() ) { // パラメータ名取得 String name = (String)(parameterNames.nextElement()); /* 値列挙 */ String[] valueList = request.getParameterValues(name); /* パラメータ値列挙 */ for ( int i = 0 ; i < valueList.length ; i++ ) { // 値を削除 request.removeAttribute(name); } } です。 試しに request.setAttribute(name,"***"); で値をセットし、 request.removeAttribute(name); (または、request.setAttribute(name,null);) でnameを特定のパラメータで、やってみて、 request.getAttribute(name); で確認したところ、値は削除されました。 値のセットの仕方が問題なのでしょうか?? 環境は、 JDK1.3.1 oc4j1.0.2.2.1 です。 どうすれば、requestの値を削除出来るのか、ご教授お願いしますm(_ _)m

    • ベストアンサー
    • Java
  • submitで送られた内容をすべて表示させたい

    いつもお世話になってます。 サーブレットのdoPostでgetParameter()を使ってformの中のパラメータを取得するのですが、submitされたすべてのパラメータを取得する方法はありますでしょうか? 要するに、どんな情報が送られてきているのかを見たいのですが・・・。 ご存知の方がおられましたらご教授ください。 よろしくお願いします。

    • ベストアンサー
    • Java

専門家に質問してみよう