如何在网站上运行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开发很陌生。如果我没有很好地理解你的问题,请告诉我。享受编码。