JSPからServletへの値の引渡し

このQ&Aのポイント
  • JSPからServletへの値の引渡しについて、NullPointerExceptionのエラーが発生してしまう問題について解決方法を教えてください。
  • JSPからServletへパラメータを渡す方法について、inputタグを使用してhiddenフィールドを設定し、PostでServletを呼び出す手順について教えてください。
  • JSPで設定したhiddenフィールドの値をServlet側で受け取る方法について詳しく教えてください。
回答を見る
  • ベストアンサー

JSPからServletへの値の引渡し

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

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

質問者が選んだベストアンサー

  • ベストアンサー
noname#30871
noname#30871
回答No.1

 参考URLのように、サーブレットのソースでdoPost()メソッドを定義してその中でrequest.getParameter()を呼ぶだけです。  getParameter()でNullPointerExceptionが出るという症状は、厳密にはどちらでしょうか。 (A) getParameter()からNullPointerExceptionがthrowされる。 →getParameter()の引数値がnullになっていませんか? (B) getParameter()の返り値がnullになる。 →getParameter()の引数値は正しい(JSP/HTMLの<INPUT>タグのNAME属性値に等しい)ですか?

参考URL:
http://www.atmarkit.co.jp/fjava/onepoint/svltjsp/svltjsp04.html
pinky23
質問者

お礼

分かっちゃいましたよー!!!! amajunさんの回答を読んで、私は何か勘違いしてると思いました。 教えていただいた参考URLものぞいてみました。 で、ふと分かったのです。 バカなことに私は <form action = "AAA" method="post">  <input type="hidden" name="nickname" value="pinky">  <input type="submit" name="hoge1" value="hogehoge1"> </form <form action="BBB" method="post">  <input type="submit" name="hoge2" value="hogehoge2"> </form> って処理をして、"BBB"のほうで"nickname"を受け取ろうとしていたのです。 分かってみたらバカバカしいけど本気で悩んでました。 ありがとうございましたー!!!

関連するQ&A

  • jsp から servlet に

    パラメータをJSPからServlet に渡す所で、どうしても、null になってしまします‥。 主要な部分だけ書きます。 --jsp-- <jsp:useBean id="beanId" class="Bean" scope="request" /> <form method="POST" action="servlet"> <input type="submit" value="送信"> <input type="text" size="10" name="name"> --servlet-- import Bean; Bean bean = (Bean)request.getAttribute( "beanId" ); // ↑ここが、nullになってしまう。 --Bean-- public String getName() { return name; } public void setName( String name ) { this.name = name; } 考え方が違ってるかも知れないのですが‥。 よろしくお願いします。

    • ベストアンサー
    • 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
  • JSP→JSP フォームチェック

    困っているので助けてください。 まずプログラムの説明をさせてもらいます。 JSPからfromをつかってJSPにフォーム情報を送ります。 プログラムはこんな感じです。 <form action="abcdefg.jsp" method="post"> <input type="hidden" name="abc" value="abc"> <input type="hidden" name="def" value="def"> <input type="checkbox" name="aa" value="aa"> <input type="checkbox" name="bb" value="bb"> <input type="checkbox" name="cc" value="cc"> <input type="submit" value="次へ"> </form> これをabcdefg.jspで受け取る場合 String hidden_abc = request.getParameter("abc"); String hidden_def = request.getParameter("def"); とhiddenは必ず値が入っているのでこれで受け取れるのですが チェックボックスは選択しているかどうかわからないので上の記述では だめなようなのですがどのようなプログラムを書いたらいいのですか? 説明がうまく出来なく申し訳ないです。よろしければ教えてください。

    • ベストアンサー
    • Java
  • jspからServletにデータを送るには?

    javaを使って開発をしているのですが、 jspからServletにデータを送るのってform型のsubmitでしかできないですか? <a href="~">で行うことは無理でしょうか? ちなみに、form型だと以下のようにしています <form method="post" action ="hogeServlet" > <input type="hidden" name="id" value =<%=hoge.getid() %>> <input type="submit" id="button1" value="ほげ"> </form>

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

    例えば、 - 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のテキストボックスの値保持について

    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
  • Servlet-JSP間のhidden要素での値受け渡し

    Servletをはじめて間もない初心者です. 説明がわかりづらいかも知れませんがご容赦ください. Servlet-JSP間の値の受け渡しについての質問です. Servlet1-----page1.jsp  |      |__beans1.java  | Servlet2-----page2.jsp        |__beans2.java という2つのページがあるとします. page1.jspからpage2.jspを開く時に page1.jsp → Servlet2 → page2.jsp(編集モード)               → page2.jsp(登録モード) の何れかのモードでpage2.jspを開きたいと考えています. page1.jspの中に <input type="hidden" name="PageState"> というhidden要素を定義してServlet2にフラグを渡せば解決できると思うのですが,hidden要素はセキュリティ上使用しない方が良い?という記述を読んだことがあるので,この方法でよいのか悩んでおります.  何かご意見や別の方法がありましたらアドバイスお願いいたします.

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

    変数の受け渡しがうまくいかない・・ 助言お願いします。 【入力フォーム1】 <form action="confirm.php" method="post" target="_brank"> <input type="submit" name="which" value="A"> <input type="submit" name="which" value="B"> </form> 上の入力フォームから送信されてきたデータを 表示しながら次の入力フォームでデータを確認画面へとばす その際に【入力フォーム1】で入力された which と 日付関数 $now = date(Y) . date(m) . date(d). ":" . $count をCSVデータにおとしていく 【入力フォーム2】 // 日付関数 $now = date(Y) . date(m) . date(d). ":" . $count; // csvデータへ落とす値↓ $buf = "$now,$which\r\n"; import_request_variables("gP","" ); session_cache_limiter('private'); session_start(); $_SESSION['pageData'] = $_POST['which']; <html> <head> </head> <body> <form method="post" action="check.php"> <input type="hidden" name="submitflg" value="$submitflg"> <input type="hidden" name="name1" value="$name1"> //======================================================================== // ココ↓で次ページへ$nowの値を引き渡すことができなくて困ってます。 <input type="hidden" name="now" value="$now"> //======================================================================== <input type="hidden" name="which" value="<?=$_POST['which']?>"> ありがとうございます! ■さっき入力された値は:<br> <? echo $_SESSION['pageData'];?><br> ■ペンネーム <input type="text" name="name1"> </form> </body> </html>

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

専門家に質問してみよう