【お題】引っかけ問題(締め切り10月27日(日)23時)

失礼致します。
最近梅雨でじめじめしており嫌ですね。
よろしくお願いいたします。m(__)m
お尋ねしたいことは上記のとおりです。
今Javaを使ってDB管理システムを作成しています。
が、もうすでに出来上がったPHPのDBシステムも存在するのです。違った機能を持たすため両方必要なのですが、両者間で値の共有をしたいです。作成中のシステムから現行のシステムへデータを送るにはどのようにすればいいのでしょうか?
以上、簡単ではございますがよろしくお願いします。

A 回答 (2件)

最近、PHPの案件ばかりが続き、すっかりJavaから疎遠になってる者です。

何度かありました。「データを共有」というのとちょっと違いますが、要するにPHP側からサーブレットにデータを送信したり、その逆をしたりして両者で必要なデータを受け渡せればいいわけですね。

一番手っ取り早いのは、URLにクエリー文字で送信したい情報をつけてしまう方法でしょう。

http://xxx.php?a=aaa&b=bbb

こんな感じで送信先のPHPのURLを用意しリダイレクトしてしまえばいいわけです。日本語の場合はURLエンコードしておきます。
ただし、URL丸見えで渡されるのは気持ち悪いという人は多いと思いますので、URLConnectionを使ってPOST送信するほうがいいかもしれませんね。


try {
URL url = new URL( PHPのURLを指定 );
URLConnection uc = url.openConnection();
uc.setDoOutput(true); //POST可能に
// 以下、ヘッダを設定
uc.setRequestProperty("User-Agent", "Sample-Agent");
uc.setRequestProperty("Accept-Language", "ja");
// 以下、パラメータを送信
OutputStream os = uc.getOutputStream();
String data = "a=aaa&b=bbb"; // 送信するパラメータ
PrintStream ps = new PrintStream(os);
ps.print(data);
ps.close();
//POSTした結果を取得
InputStream is = uc.getInputStream();
BufferedReader br = new BufferedReader(new InputStreamReader(is));
while ((s = br.readLine()) != null) {
// 適当に処理
}
br.close();
}
catch以下略

こんな感じで指定のPHPにPOSTでデータを送信できます。こうやってデータをやり取りしながら処理していくわけです。

PHPで作成している場合、データベースアクセスに必要な情報はまず間違いなくGET/POSTで受けとっているはずですから、これでうまくいかないことはあまりないと思います。また、PHPから結果を受け取る場合は、どういう方式で送られているかわからないとなんともいえません。(HTMLで出力しているか、URLに付加しているか、ヘッダー情報に含めているかなどいろいろ考えられますので)
    • good
    • 0
この回答へのお礼

ご回答ありがとうございました。
そうですサーブレットからPHPに値を受け渡したいのです。
教えていただいた方法で受け渡しを試してみます。
ありがとうございます。m(__)m

お礼日時:2006/06/14 11:16

>両者間で値の共有をしたいです


共有したいデータの大きさや目的は何でしょうか?

パラメータやCookieを使ったり、データ共有用のシステムやデータベースなどを作ったりすることで解決出来ると思いますが、データ共有の目的やデータの大きさなどによって最適解が変わってくると思います。
    • good
    • 0
この回答へのお礼

パラメータを使う方法で解決しようと思います。
ありがとうございました。

お礼日時:2006/06/14 11:19

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!


おすすめ情報