お世話になっております。
WEBアプリケーションを作成しているのですが、
問題が解消されずに困っております。
どなたかわかる方、ご教授いただけないでしょうか。
【質問】
サーバーAからサーバーBへデータをPOSTする方法を教えてください。
【詳細】
現在サーバーAのサーブレットより、サーバーBのサーブレットへデータをPOSTで渡そうとしています。
そして、サーバーBのサーブレットが持つdoPostメソッドにて、渡したデータ処理を実施したいです。
forwardとsendRedirectを考えたのですが、
forwardだと他サーバーへデータを渡すことができないようです。
また、sendRedirectだとdoGetメソッドが実行されるため、おそらくGetが行われていると考えられます。
現在、Javaだけでコーディングを実施しているため、Javaでの実現方法を教えていただけると非常に助かります。
大変困っておりますので、わかる方はぜひご教授ください。
No.2ベストアンサー
- 回答日時:
方法は幾つかありますが、以前HttpURLConnectionを使った方法を。
--- サーバーAのサーブレット ---
import java.io.*;
import java.net.*;
import javax.servlet.*;
import javax.servlet.http.*;
public class ServletA extends HttpServlet {
private static final long serialVersionUID = 1L;
protected void service(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
// 下のURL部分はサーバーBのサーブレットを指定します
URL url = new URL( "http://192.168.0.100/hoge/HogeServlet" );
HttpURLConnection con = (HttpURLConnection)url.openConnection();
con.setRequestMethod( "POST" );
con.setRequestProperty( "Accept-Language", "ja" );
con.setDoOutput( true );
PrintWriter pw;
pw = new PrintWriter( con.getOutputStream() );
pw.print( "para1=ABC¶2=123" ); // 複数パラメータは「&」で区切って送ります
pw.close();
// 一応、受信するフリをしないとダメっす
BufferedReader br = new BufferedReader( new InputStreamReader( con.getInputStream() ) );
br.close();
con.disconnect();
}
}
--- サーバーBのサーブレット ---
import java.io.*;
import javax.servlet.*;
import javax.servlet.http.*;
public class Servlet2 extends HttpServlet {
private static final long serialVersionUID = 1L;
protected void service(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
String str1 = request.getParameter( "para1" );
String str2 = request.getParameter( "para2" );
System.out.println( str1 );
System.out.println( str2 );
// 一応、レスポンスするフリをしないとダメっす
PrintWriter pw = response.getWriter();
pw.close();
}
}
あとはjakarta commonsを使う手かもです。
http://jakarta.jp/commons/httpclient/
mintia007さん
ご回答ありがとうございました。
ソースまで添付して頂き、非常に助かりました。
参考にさせていただきます。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- UNIX・Linux サーバー間のデータコピー(データ形式とデーターフォーマットの変換あり。一定間隔で処理) 2 2023/08/22 22:15
- サーバー 初心者「HP制作の依頼」でお客さんのサーバーに移す流れについて! 3 2022/09/08 19:38
- サーバー Googleドライブなどを使わずにテザリングAndroidでWindowsとファイル共有 1 2023/02/19 13:14
- ASP・SaaS イントラネットを構築したい 2 2022/04/24 11:08
- UNIX・Linux Linuxサーバーのパーティション・ディレクトリの推奨見積もりについて 3 2023/01/17 00:46
- UNIX・Linux いつの間にか自宅サーバーが見れなくなっていた時のトラブルシューティング手順をご教示ください 4 2023/02/15 21:01
- サーバー エックスサーバーに登録をしたのですが、 料金支払いをしたいのに、「発行された請求情報はありません。」 1 2023/03/10 22:22
- バックアップ 至急!ニンテンドーオンラインに詳しい方! 1 2022/09/16 17:28
- サーバー メールサーバーについて詳しい方、メールサーバーの管理業務経験のある方、教えてください。 3 2022/11/12 18:24
- Gmail SPFレコードとDNSサーバーについて、gmailを設定できるかどうか 2 2023/06/10 23:55
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・プリン+醤油=ウニみたいな組み合わせメニューを教えて!
- ・タイムマシーンがあったら、過去と未来どちらに行く?
- ・遅刻の「言い訳」選手権
- ・【大喜利】【投稿~11/12】 急に朝起こしてきた母親に言われた一言とは?
- ・好きな和訳タイトルを教えてください
- ・うちのカレーにはこれが入ってる!って食材ありますか?
- ・好きな「お肉」は?
- ・あなたは何にトキメキますか?
- ・おすすめのモーニング・朝食メニューを教えて!
- ・「覚え間違い」を教えてください!
- ・とっておきの手土産を教えて
- ・「平成」を感じるもの
- ・秘密基地、どこに作った?
- ・【お題】NEW演歌
- ・カンパ〜イ!←最初の1杯目、なに頼む?
- ・一回も披露したことのない豆知識
- ・これ何て呼びますか
- ・初めて自分の家と他人の家が違う、と意識した時
- ・「これはヤバかったな」という遅刻エピソード
- ・これ何て呼びますか Part2
- ・許せない心理テスト
- ・この人頭いいなと思ったエピソード
- ・牛、豚、鶏、どれか一つ食べられなくなるとしたら?
- ・ハマっている「お菓子」を教えて!
- ・【大喜利】【投稿~11/1】 存在しそうで存在しないモノマネ芸人の名前を教えてください
- ・好きなおでんの具材ドラフト会議しましょう
- ・餃子を食べるとき、何をつけますか?
- ・あなたの「必」の書き順を教えてください
- ・ギリギリ行けるお一人様のライン
- ・10代と話して驚いたこと
- ・つい集めてしまうものはなんですか?
- ・自分のセンスや笑いの好みに影響を受けた作品を教えて
- ・【お題】引っかけ問題(締め切り10月27日(日)23時)
- ・大人になっても苦手な食べ物、ありますか?
- ・14歳の自分に衝撃の事実を告げてください
- ・【大喜利】【投稿~10/21(月)】買ったばかりの自転車を分解してひと言
- ・ホテルを選ぶとき、これだけは譲れない条件TOP3は?
- ・家・車以外で、人生で一番奮発した買い物
- ・人生最悪の忘れ物
- ・【コナン30周年】嘘でしょ!?と思った○○周年を教えて【ハルヒ20周年】
- ・あなたの習慣について教えてください!!
- ・都道府県穴埋めゲーム
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
干支の計算で。。。
-
javaで警告音
-
importするには java.io.*; imp...
-
javaの課題でコンパイルエラー...
-
文字列を数式に
-
javaの代入演算式がうまくいき...
-
「例外 *** は対応する try 文...
-
Javaで常駐するソフトを作って...
-
なんかエラーがでた
-
データの外挿について
-
Selenium IDEでexportしたコー...
-
ダブルクォーテーションを含む...
-
C言語のポインターに関する警告
-
System.err. printlnとSystem.o...
-
配列にnullを代入すると、null...
-
大量のデータを読み込んで表示...
-
ORA-01858: 数値を指定する箇所...
-
1~100までの数字を表示し、か...
-
べき乗
-
VB.net 引数で配列変数を渡す際...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
eclipseに記述したjavaファイル...
-
「例外 *** は対応する try 文...
-
文字列を次々に表示するアプリ...
-
importするには java.io.*; imp...
-
setAttribute(String, int)は適...
-
<forEach> 内で供給された "ite...
-
フレームの×ボタンを押しても閉...
-
ColabでのPytorchのエラー
-
Selenium IDEでexportしたコー...
-
JAXPのDTD検証
-
シャットダウンフックが呼ばれない
-
importとextendsの用い方の違い...
-
handleText()で取得したテキス...
-
【JAVAエラー】互換性のない型...
-
ファイル名を動的に生成したい
-
Javaを使ってデジタル時計を作...
-
メニューバーのプログラム
-
ActionForm form にnullが入っ...
-
Java での グローバルIP取得
-
JAVAのアプレットの文の改行方法。
おすすめ情報