2013-05-04 78 views
0

我知道這個問題對大多數人來說可能聽起來很容易,但我堅持使用它。如何在網站上運行java並獲取html的值

首先我想定義我想要達到的目標。我在運行一段代碼,通過特定的端口發送一些數據,並通過html和javascript我得到它的發送和打印它們在屏幕上。

我有一個免費託管網站的帳戶。 我想在該網站上運行我的代碼,例如mywebsite.blahblah.com/... 以及我的計算機上的html文件,我想訪問該網站,獲取由java代碼生成的這些值並將它們打印在屏幕上。

我不知道從哪裏開始。 代碼是

Java和HTML

import java.net.InetSocketAddress; 
import java.net.UnknownHostException; 
import java.util.Collection; 
import org.java_websocket.WebSocket; 
import org.java_websocket.WebSocketImpl; 
import org.java_websocket.handshake.ClientHandshake; 
import org.java_websocket.server.WebSocketServer; 

public class GPSServer extends WebSocketServer { 

static int port = 9876; 

public GPSServer(int port) throws UnknownHostException { 
    super(new InetSocketAddress(port)); 
} 

public GPSServer(InetSocketAddress address) { 
    super(address); 
} 

public void sendData(String s) { 

    Collection<WebSocket> con = connections(); 
    synchronized (con) { 
     for (WebSocket c : con) { 
      c.send(s); 
     } 
    } 
} 

@Override 
public void onOpen(WebSocket arg0, ClientHandshake arg1) { 
    System.out.println(arg0.getRemoteSocketAddress().getAddress() 
      .getHostAddress() 
      + " connected to the server!"); 
} 

@Override 
public void onClose(WebSocket arg0, int arg1, String arg2, boolean arg3) { 
    System.out.println(arg0 + " disconnected!"); 
} 

@Override 
public void onError(WebSocket arg0, Exception arg1) { 
    arg1.printStackTrace(); 
    if (arg0 != null) { 
    } 
} 

@Override 
public void onMessage(WebSocket arg0, String arg1) { 
    System.out.println(arg0 + ": " + arg1); 

} 

public static Runnable sendData() { 

    Runnable r = new Runnable() { 

     @Override 
     public void run() { 
      WebSocketImpl.DEBUG = true; 
      GPSServer server; 

      try { 
       server = new GPSServer(GPSServer.port); 
       server.start(); 

       System.out.println("GPS server started at port: " 
         + server.getPort()); 

       double longitude = 39.55; 
       double latitude = 22.16; 
       String lng = Double.toString(longitude); 
       String ltd = Double.toString(latitude); 
       String all = lng + "-" + ltd; 

       while (true) { 

        server.sendData(all); 
        /* 
        * server.sendData(Double.toString(longitude)); 
        * System.out.println("longitude sent..."); 
        * server.sendData(Double.toString(latitude)); 
        * System.out.println("latitude sent..."); 
        */ 
        Thread.sleep(5000); 
       } 
      } catch (UnknownHostException e) { 
       e.printStackTrace(); 
      } 

      catch (InterruptedException e) { 
       e.printStackTrace(); 
      } 
     } 
    }; 
    return r; 
} 

public static void main(String[] args) throws UnknownHostException { 

    Thread thread = new Thread(GPSServer.sendData()); 
    thread.start(); 
} 
} 

-

<!DOCTYPE HTML> 
<html> 
<head> 
<script type="text/javascript"> 
function WebSocketTest() 
{ 

var lat; 
var lng; 
    if ("WebSocket" in window) 
{ 
alert("WebSocket is supported by your Browser!"); 
console.log("WebSocket is supported by your Browser!"); 
// Let us open a web socket 
var ws = new WebSocket("ws://localhost:9876/echo"); 
ws.onopen = function() 
{ 
    ws.send("Message to send"); 
    alert("Message is sent..."); 


}; 







ws.onmessage = function (evt) { 

    var partsArray = evt.data.split('-'); 
    lng=partsArray[0]; 
    lat=partsArray[1]; 
    alert(lat); 
    alert(lng); 

    }; 






ws.onclose = function() { 
    alert("Connection is closed..."); 
    console.log("Connection is closed..."); 
}; 



    } 
    else 
    { 
    alert("WebSocket NOT supported by your Browser!"); 
    } 
} 

</script> 
</head> 
<body> 
<div id="sse"> 
    <a href="javascript:WebSocketTest()">Run WebSocket</a> 
</div> 
<div> 
<p id="para"> BASIC HTML!</p> 
</div> 
</body> 
</html> 

謝謝!

回答

0

我假設你對這個web開發很新。我沒有完全研究你的代碼,但基本的想法是你需要像JSP這樣的服務器端腳本語言(當然,因爲你使用的是Java代碼,所以是JSP)。我希望你知道Javascript的基本思想是在客戶端使用資源,或動態加載數據。所以如果你只關心顯示從服務器到客戶端的一些值,你可以簡單地製作一個servlet來打印你的數據。 繼MVC模式,

  • 控制器==使一個servlet將處理由用戶做出的請求(即,它會顯示數據,基本上鍊接)。一旦你收到一個請求,你可以在你的模型中設置你的模型(你也可以決定在GET/POST上分別做些什麼)。
  • 模型==創建一個抽象表示(Java的類),其中包含要顯示的所有數據。
  • 查看==在這裏,您將收到模型。換句話說,這將是你的HTML。您可以使用JSP助手來定製視圖,基本的想法是控制數據將如何顯示給用戶(因此名稱視圖)。 HTML將在運行時自動生成並傳遞給用戶。

再次,我說我假設你對web開發很陌生。如果我沒有很好地理解你的問題,請告訴我。享受編碼。

相關問題