2013-05-04 2 views
0

Я знаю, что вопрос может показаться легким для большинства из вас, но я застрял с ним.Как запустить java на веб-сайте и получить значения в html

Прежде всего, я хочу определить, чего я пытаюсь достичь. на eclipse Я запускаю кусок кода, который отправляет некоторые данные по определенному порту, а через 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

Я предполагаю, что вы очень новичок во всей этой веб-разработке. Я не изучил ваш код полностью, но основная идея заключается в том, что вам нужен серверный скриптовый язык, такой как JSP (конечно, JSP, потому что вы используете Java-код). Надеюсь, вы знаете, что основная идея Javascript - использовать ресурсы на стороне клиента или динамически загружать данные. Поэтому, если вам нужно только отображать некоторые значения от сервера к клиенту, вы можете просто сделать сервлет, который будет печатать ваши данные. После MVC шаблон,

  • Controller == Сделать сервлет, который будет обрабатывать запрос, сделанный пользователем (то есть. Ссылка, которая будет отображать данные, в основном). Задайте модель в этом контроллере после получения запроса (вы также можете решить, что делать в GET/POST отдельно).
  • Model == Сделайте абстрактное представление (класс Java), содержащее все ваши данные, которые должны отображаться.
  • View == Здесь вы получите модель. Другими словами, это будет ваш HTML. Вы можете использовать JSP-помощники, чтобы настроить представление, основная идея - контролировать, КАК ДАННЫЕ БУДУТ ПОКАЗЫВАТЬ ПОЛЬЗОВАТЕЛЮ (отсюда и название View). HTML будет автоматически генерироваться во время выполнения и передаваться пользователю.

Опять же, я говорю, что я предполагаю, что вы очень новичок в веб-разработке. Пожалуйста, дайте мне знать, хорошо ли я понял ваш вопрос. Наслаждайтесь кодированием.