2017-05-22 14 views
0

私はJavaを作成しようとしていますが(Javaではなく、確かにそれを含めることができます)、他のJavaプログラムからWebページにライブコンソールを印刷できるようになります。私はJava Webサーバーを作成する方法を知っていて、実行中の他のJavaプログラムの入出力ストリームにアクセスする方法を知っていますが、コンソール出力を送信し、そのWebページからコンソール入力を取得する方法はわかりません。Java WebサーバーからWebページにライブアップデートを提供するにはどうすればよいですか?

私はhtmlを使うことができ、半秒ごとにページをリロードすることができましたが、誰もコンソールに送るものは誰も入力できませんでした。

私はASPを使用することをお勧めしますが、私はどこから始めるべきかわかりません。

要約すると、私はライブデータをウェブページに送信して表示し、ライブユーザ入力をウェブサーバに戻したいと思う。参考のため

、私は、Webページに送信する出力のため、以下のものを使用しています:

ProcessBuilder pb = new ProcessBuilder("java", "-jar", "my.jar"); 
pb.directory(new File("C:/Users/Michael Forseth/Desktop/Server Stuff/Test Moltres/TEST SERVER")); 
final Process p = pb.start(); 

InputStream in = p.getInputStream(); 
InputStreamReader ins = new InputStreamReader(in); 
BufferedReader br = new BufferedReader(ins); 

String line; 
while((line = br.readLine()) != null){ 
    //Send "line" to webpage for user to see 
    System.out.println("CONSOLE: " + line); 
} 

答えて

0

あなたは近代的なウェブサイトがどのように機能するかを記述しています。 Java WebサーバーはHTTP要求をリッスンし、データ(通常はjsonまたはhtml形式)を返します。ユーザーが入力できないようにブラウザ(クライアント)でページを再ロードしないようにするには、ページの一部をリロードするだけです。これはajaxで行います。最も簡単な方法は、javascriptとjQueryというライブラリを使用することです。このためにjavascriotを学習したくない場合は、intercoolerjsというjavascriptライブラリがあります。このライブラリを使用すると、プレーンなhtml属性でajaxを有効にすることができます。

編集:ユーザーが何もせずにサーバーでページを更新する必要がある場合は、Webソケットについて読む必要があります。これがあなたを正しい方向に送ることを願っています。

+0

ユーザーが何もしなくても更新する必要があるので、私はwebsocketを探していると思います。 ajaxに毎秒更新するよう要求するjsタイマーを作ることは可能でしょうか? – Forseth11

+0

WebSocketは、httpプロトコルのように1回の要求後に接続を閉じることはないため、Webサーバーを調整する必要があります。 シンプルなjsタイマーでうまくいくかもしれませんが、この例を示す[この回答](https://stackoverflow.com/questions/6835835/jquery-simple-polling-example)をチェックしてください。 インタークーラを調べる場合は、[この例]をご覧ください(http://intercoolerjs.org/attributes/ic-poll-repeats.html) – fowlie

+0

WebSocketsを介して動作させるようにしました。私はこの例をここで見つけました:http://restlessdev.com/blog/websockets-in-javaそして私はそれを変更することができました。これは今のようになりました。そして、私が作ったコマンドとやりとりするJava:[完成した画像](https://i.gyazo.com/37ae5cf4ac6bc014c22b2fab03b52f0d.png) – Forseth11

関連する問題