• 締切済み

サーブレットによるpostデータ送信について

久しぶりにJAVAをいじり始めたのですが、早速かべにぶつかってしまいました。 あるサイトの問合せフォームは必須項目を入力し、確認ボタンを押すと 確認画面になり、送信を押すと確定されます。(いづれもpostでパラメータが連携される。) このときにサーブレットからパラメータ値を確認画面のURLに連携し、さらに送信ボタンを押させるところも パラメータ値を連携することで対応させたいです。 たまたま画面イメージとしては https://www.janpara.co.jp/buy/assessment/ の画面のようなものを想定しております。(実際は違う画面ですが、似たものを探してきました。) 必須項目入力後、確認画面に遷移し、登録ボタンを押すことで確定する。 以下のソースを参考にしたのですが、うまくいきません。 http://www.atmarkit.co.jp/fjava/javatips/069java006.html どのように http://www.atmarkit.co.jp/fjava/javatips/069java006.html のソースに手を加えればよいのでしょうか? おおざっぱにでも構いませんので、ご教授下さい。

  • palmo
  • お礼率85% (18/21)
  • Java
  • 回答数3
  • ありがとう数2

みんなの回答

回答No.3

このサンプルはサーバーから指定したURLへデータをPOSTしているだけなので、質問者さんの意図したような。 入力画面に入力したデータをサーバー側で受け取るようなことはできません。(POSTしてその内容を標準出力しただけでプログラムが終了している) もし、質問者さんがやりたいようなことをするのであればAPサーバー上にjavax.servlet.http.HttpServletクラスを継承したクラスを作成し、doPostメソッド内で入力画面からのデータを受け取り、確認画面に画面遷移(同時に受け取ったデータを送信)といったことをする必要があります。 サーブレットについて基本的なことが理解されていないように思えます。 参考サイト http://www.javadrive.jp/servlet/index.html

palmo
質問者

補足

質問内容がよくなかったようです。 >入力画面に入力したデータをサーバー側で受け取るようなことはできません。 この部分についてはすでにプログラムを作成し、問題なく動作することを確認しております。 >このサンプルはサーバーから指定したURLへデータをPOSTしているだけ この部分で指定したURLへデータがうまくPOST連携されず困っておりました。 非常に分かり辛い質問のお相手をして頂き、ありがとうございました。 質問のしかたを考え直します。

  • sh_hirose
  • ベストアンサー率66% (56/84)
回答No.2

http://www.atmarkit.co.jp/fjava/javatips/069java006.html のソースはJavaからGET、POSTを行うサンプルです。 画面の作成等を行うには http://www.javaroad.jp/servletjsp/sj_servlet1.htm http://www.javaroad.jp/servletjsp/sj_jsp1.htm を参考にしてください。

palmo
質問者

補足

回答ありがとうございます。 まさにJavaからPOSTを行おうとしています。 詳細は下の方の質問で補足説明しています。 よろしくお願いいたします。

回答No.1

どのあたりが「うまくいきません」なのでしょうか? 1.サンプルが実行できない。 2.サンプルは実行できたが、サンプルを元に自作したプログラムの実行結果が正しくない。 3.それ以外

palmo
質問者

補足

2番です。説明不足で失礼いたしました。試しに https://www.janpara.co.jp/buy/assessment/ のサイトの必須項目(メーカー名、商品名、状態、詳細、名前、電話番号)をjavaからpost送信し、 結果として確認画面を受信できるようにしたいです。 以下のように修正してみましたが、確認画面でなく、もとの入力画面を結果として受け取っています。 import (省略) public class WWWGet { public static void getWWW() { String urlString = "https://www.janpara.co.jp/buy/assessment/confirm/"; //アドレスを変更しています try { URL url = new URL(urlString); URLConnection uc = url.openConnection(); uc.setDoOutput(true);//POST可能にする uc.setRequestProperty("User-Agent", "@IT java-tips URLConnection");// ヘッダを設定。どう設定していいのか分からないので元のまま uc.setRequestProperty("Accept-Language", "ja");// ヘッダを設定 OutputStream os = uc.getOutputStream();//POST用のOutputStreamを取得 String postStr = "REQUEST=confirm&INP_MKRNAME[1]=1&INP_ITMNAME[1]=2&INP_CONDITION[1]=0&NAME=a&TEL=08012345678&SHPCODE=1";//POSTするデータ 必須項目の設定 入力画面のform部分のソースから拾いました。[]のところは怪しい… PrintStream ps = new PrintStream(os); ps.print(postStr);//データをPOSTする ps.close(); InputStream is = uc.getInputStream();//POSTした結果を取得 BufferedReader reader = new BufferedReader(new InputStreamReader(is,"UTF-8"));//文字コード変換しています。 String s; while ((s = reader.readLine()) != null) { System.out.println(s); } reader.close(); } catch (MalformedURLException e) { System.err.println("Invalid URL format: " + urlString); System.exit(-1); } catch (IOException e) { System.err.println("Can't connect to " + urlString); System.exit(-1); } } } きっと初歩的な間違いだと思いますが、よろしければご教授下さい。

関連するQ&A

  • Javaサーブレット

    Javaサーブレットの初心者です。 「標準 MySQL 改訂第3版」(2007,3月発行)という本でMySQLを勉強しようと始めたのですが、それ以前の場所で詰まってしまいました。 本の流れは  Apache,MySQL,Tomcat,J2SEをインストール → Apacheの動作確認 → Tomcatの動作確認 → ApacheとTomcatを連携させる。(ここまでは正常に動いています。)→Javaサーブレットの動作確認 ここでブラウザから ​http://localhost/java/Test​ と入力すると 「Hello Java」と表示されるはずなのですが HTTPステータス 404 - /java/Test というエラー画面になってしまい、表示されません。 すべて本に書いてあるとおりにやりました。 ファイルの中身なども何度も見直しました。 なぜ表示されないのか教えてください。 お願いします。

  • JSPを使うべき?サーブレットを使うべき?

    HTMLとJavaScriptでアンケートの入力画面を作成しました。 現在全ての入力フォームを1つのformタグでくくり、submitボタンをクリックするとサーブレットへとデータを渡し、確認画面を表示する形になっております。 この時、全ての入力情報をいっぺんに1つのところへ送信するのではなく、部分的に複数の所にデータを渡すことはできるのでしょうか。 例えばよく、郵便番号を入力すると、別ウインドウが開き、住所一覧が出てくると思います。この時、郵便番号のみ送信しているのですよね? そういったことをJAVAを使ってしたいと考えております。 まだまだ初心者なので分からない事が多いのですが宜しくお願いいたします。

  • JSPとサーブレット

    書き込み一覧が表示してあるJSPの入力フォームがあり、そこで入力をして「書き込み」ボタンを押すと入力したデータが、DBへ登録するサーブレットへ飛び、入力をした画面上では「書き込みました」のようなHTML画面が表示されるとします。その画面で「TOPへ戻る」ボタンを押すと、今度は検索サーブレットが動き、DBから最新の一覧が引っ張り出され、登録更新後の書き込み一覧JSPが画面上に出るとします。ここで質問なのですが、「書き込み」ボタンを押すと同時に登録サーブレットと検索サーブレットを動かすことは出来ないのでしょうか?理想としては、「書き込みました」のようなHTML画面は使用せず、一気に更新後の一覧を表示させたいのです。 この辺の知識はあんまり無いもので、具体的な記述方法を教えて頂くと嬉しいです。

    • ベストアンサー
    • Java
  • Javascript実行結果をサーブレットで読む

    JavascriptとJavaサーブレットの連携について質問させていただきます。 【やりたいこと】 あるJavascript対応のWebサービスから情報を取得し、その情報をJavaサーブレットで読み込む 【困っていること】 まずはJavascriptで情報を取得するためのHTMLファイルを作成し、ブラウザに表示させるところまではできました。 しかし、ページソースそのものが書き換わるわけではないので、Javaサーブレットから読み込む方法がわかりません。 何かやり方があるのでしょうか。 それとも、Javascriptのdocument.write関数で取得した情報をアウトプットするようにしているのですが、それがそもそもの間違いなのでしょうか。 ご存知の方がいらっしゃいましたら、お願いします。

    • ベストアンサー
    • Java
  • 送信のボタンがない。

    ソースネクスト社へ購入したソフトのエラーについて問い合わせる手法を回答頂きましたので、画面に質問画面を出し、画面指示に従い入力しても、確認ボタンはありますが送信ボタンはありません。送信するのはどうするのでしょうか。

  • こんなメール送信できるCGI、何方かご存知ありませんか?

    こんなイメージのメール送信CGIを探しております。お金をかければ、あるのですが・・・。できれば、無料でやりたい(小額であれば有料でもいいのですが・・・) ★入力フォームにて各項目入力 ・・・各BOXに対しては、"必須項目・必須項目ではない"などの選択ができる ・・・↑CGIの記述で ★必須項目が抜けたまま送信しようとすると、  送信ボタンクリック後、"xxxが抜けてます。  入力してください"などのエラーメッセージが表示される。 ★メールアドレスの入力BOX、確認のため再度メールアドレスの入力BOX ・・・送信後、同じ内容なければ、エラーとなる。 ★送信内容のコピーを、ユーザー側に"送信する・しない"などの選択ができる ・・・ユーザー側に送信されるテキスト内容は、オリジナル文章を追加可能   例)   お問い合わせありがとうございます。   お客様の内容は下記となります。    ~~~入力フォーム内容コピー~~~ ★送信確認画面を"表示する・表示しない"などの選択ができる ・・・↑CGIの記述で ★送信完了後、同時に2つのメールアドレスに送信される 以上です。 やはり無料は難しいですかねぇ・・・?

    • ベストアンサー
    • CGI
  • iframe内のformから送信したあとに最上部を

    iframeの中にフォームをつくっています。 入力画面→確認画面→送信完了を全部、ifremaのなかに表示させる予定です。 入力画面ではいろいろと項目が多いので 送信ボタンが画面の下の方になっています。 試しに入力したあと、送信ボタンを押してみたところ 確認画面でも画面の下のほうが表示されてしまいます。 iframe内のフォームから送信ボタンを押したあとに 確認画面の最上部を表示させるにはどうしたらいいのでしょうか?

    • ベストアンサー
    • HTML
  • 送信ボタンを押した後の処理について

    HPB5でメール送信フォームを作成しているのですが、 「送信ボタン」を押した時点で必須項目が空欄の時に エラーメッセージが表示されるページへジャンプしたいと思っています。 要は「送信ボタン」が押されたときに必須項目に文字入力されているか 確認する記述がわかりません。 HTML言語やJavaScriptなどどれを使って良いのかもわかりません。 HTML言語やJavaScriptの知識に非常に乏しい私にできるのでしょうか。 無理なら無理と指摘してください。

    • ベストアンサー
    • HTML
  • アンケートフォームの作成方法

    テキストボックスとラジオボタンを数個ずつ使って、 アンケートフォームのようなものを作成しています。 入力された項目をメールで送信させるだけならできるのですが、 必須入力項目の設定ができません。 自分では必須項目に設定したつもりでも、 「送信ボタン」を押すと、 未入力でも送信されてしまいます。 CGI以外の方法で、お分りになる方いらっしゃいますでしょうか? ソースを記述していただけると非常に助かります。

    • ベストアンサー
    • HTML
  • Javaサーブレット

    Javaサーブレットの初心者です。 「標準 MySQL 改訂第3版」(2007,3月発行)という本でMySQLを勉強しようと始めたのですが、それ以前の場所で詰まってしまいました。 本の流れは  Apache,MySQL,Tomcat,J2SEをインストール → Apacheの動作確認 → Tomcatの動作確認 → ApacheとTomcatを連携させる。(ここまでは正常に動いています。)→Javaサーブレットの動作確認 ここでブラウザから http://localhost/java/Test と入力すると 「Hello Java」と表示されるはずなのですが HTTPステータス 404 - /java/Test というエラー画面になってしまい、表示されません。 すべて本に書いてあるとおりにやりました。 ファイルの中身なども何度も見直しました。 なぜ表示されないのか教えてください。 お願いします。

専門家に質問してみよう