如何在网站上运行java并获取html的值

问题描述:

我知道这个问题对大多数人来说可能听起来很容易,但我坚持使用它。如何在网站上运行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> 

谢谢!

我假设你对这个web开发很新。我没有完全研究你的代码,但基本的想法是你需要像JSP这样的服务器端脚本语言(当然,因为你使用的是Java代码,所以是JSP)。我希望你知道Javascript的基本思想是在客户端使用资源,或动态加载数据。所以如果你只关心显示从服务器到客户端的一些值,你可以简单地制作一个servlet来打印你的数据。 继MVC模式,

  • 控制器==使一个servlet将处理由用户做出的请求(即,它会显示数据,基本上链接)。一旦你收到一个请求,你可以在你的模型中设置你的模型(你也可以决定在GET/POST上分别做些什么)。
  • 模型==创建一个抽象表示(Java的类),其中包含要显示的所有数据。
  • 查看==在这里,您将收到模型。换句话说,这将是你的HTML。您可以使用JSP助手来定制视图,基本的想法是控制数据将如何显示给用户(因此名称视图)。 HTML将在运行时自动生成并传递给用户。

再次,我说我假设你对web开发很陌生。如果我没有很好地理解你的问题,请告诉我。享受编码。