2013-05-04 3 views
0

나는 대부분의 사람들에게 쉽게 들릴지 모르지만 나는 그것에 매달렸다.웹 사이트에서 java를 실행하고 html로 값을 가져 오는 방법

우선 나는 무엇을 달성하려고하는지 정의하고 싶습니다. 일식 내가 특정 포트를 통해 일부 데이터를 보내는 코드 조각을 실행하고 html과 javascript를 통해 내가 보낸 메시지를 받고 그것을 화면에 인쇄합니다.

무료 호스팅 웹 사이트 중 하나의 계정이 있습니다. 해당 웹 사이트 (예 : mywebsite.blahblah.com/ )에서 코드를 실행하고 내 컴퓨터의 html 파일에서 해당 웹 사이트에 액세스하고 Java 코드로 생성 된 값을 가져 와서 화면에 인쇄하려고합니다.

어디서부터 시작해야할지 모르겠습니다.

<!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> 

감사합니다 - 코드는

자바와 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(); 
} 
} 

입니다!

답변

0

나는이 모든 웹 개발에 대해 아주 새로운 것으로 가정하고 있습니다. 나는 완전히 당신의 코드를 공부하지는 못했지만 기본 아이디어는 자바 코드를 사용하기 때문에 JSP와 같은 서버 측 스크립팅 언어가 필요하다는 것이다. Javascript의 기본 아이디어는 클라이언트의 끝에서 리소스를 사용하거나 데이터를 동적으로로드하는 것입니다. 따라서 서버에서 클라이언트로 일부 값을 표시하는 것에 만 관심이 있다면 간단하게 데이터를 인쇄 할 서블릿을 만들 수 있습니다. MVC 패턴 후 ,

  • 컨트롤러 == 사용자에 의해 요청을 처리하는 서블릿 확인 (즉. 기본적으로, 데이터를 표시 할 링크). 요청을 받으면이 컨트롤러에 모델을 설정하십시오 (GET/POST에서 수행 할 작업을 개별적으로 결정할 수도 있음).
  • 모델 == 표시 할 모든 데이터가 들어있는 추상 표현 (Java 클래스)을 만듭니다.
  • 보기 == 여기 모델을 받게됩니다. 즉, 이것은 귀하의 HTML입니다. JSP 헬퍼를 사용하여보기를 사용자 정의 할 수 있습니다. 기본 아이디어는 사용자에게 표시되는 데이터를 제어하는 ​​것입니다 (따라서 이름보기). HTML은 런타임에 자동으로 생성되어 사용자에게 전달됩니다.

다시 말하지만, 나는 당신이 웹 개발에 매우 ​​익숙하다고 말하고 있습니다. 질문을 잘 이해하지 못했다면 알려주십시오. 코딩 즐기기.

관련 문제