お世話になっております。
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を探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
eclipseに記述したjavaファイル...
-
Selenium IDEでexportしたコー...
-
<forEach> 内で供給された "ite...
-
「1」などの数字を「January」...
-
シャットダウンフックが呼ばれない
-
「例外 *** は対応する try 文...
-
(急募)JavaカレンダーをGUI可に...
-
Chorometerで一時停止した後再...
-
なんかエラーがでた
-
Log4jで機能毎に別ファイルへ出...
-
このプログラミング誰か教えて...
-
C言語のポインターに関する警告
-
Javaで改行などが出来ないのです。
-
flush()とclose()について
-
javaで質問です。 文字列2023/2...
-
JSPやサーブレットでSystem.out...
-
[JAVA]try 内の変数を外で!?
-
配列にnullを代入すると、null...
-
VBAで配列の計算
-
Path型をString型へ変換する(Java)
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
eclipseに記述したjavaファイル...
-
「例外 *** は対応する try 文...
-
干支の計算で。。。
-
Selenium IDEでexportしたコー...
-
Javaを使ってデジタル時計を作...
-
ColabでのPytorchのエラー
-
importするには java.io.*; imp...
-
生年月日と今日の日付から年齢...
-
ファイル名を動的に生成したい
-
文字列を数式に
-
<forEach> 内で供給された "ite...
-
シャットダウンフックが呼ばれない
-
Javaからストアド実行(配列項目)
-
ActionForm form にnullが入っ...
-
setAttribute(String, int)は適...
-
(急募)JavaカレンダーをGUI可に...
-
文字サイズが可変のラベル
-
Java での グローバルIP取得
-
python OpenPyXLを使って出力結...
-
データの外挿について
おすすめ情報