2009-07-03 8 views
1

JavaFX 애플릿으로 일부 페이지를 작성하고 싶습니다. 애플릿의 내용이 로그인 한 사용자에 따라 달라지기를 원합니다.JavaFX 애플릿이 서버와 통신 중입니다.

JFX에서 웹 서비스를 호출 할 수 있지만 로그인 및 세션은 어떻게됩니까? 게다가 나는 애플릿에서 기계 애플릿에 앉아있는 웹 서비스를 호출하는 것보다 그러한 통신을위한 더 나은 해결책이있을 것이라고 생각한다.

어떻게하면됩니까?

+0

서버쪽에 무엇이 있는지 말할 수 있습니까? 서블릿? javafx에는 특별한 것이 없다고 생각합니다. 그것의 정상적인 애플릿 - 서버 통신. javafx에서 통신을 수행하는 데 필요한 Java 코드를 호출 할 수 있습니다. –

+0

서버 측에 무엇이 있는지 아직 모르겠습니다. 이 프로젝트는 아직 시작되지 않았습니다 :) 아마도 서블릿을 거기에 넣을 것입니다. 나는 그것이 애플릿 서버라는 것을 알고 있지만, javaFX는 웹 서비스에 대한 추가 지원을하고있다. 아마도이 애플릿 - 서버 통신을위한 무언가가있을 것이라고 생각했다. – amorfis

+0

그래, 나는 웹 서비스 지원에 대해서도 알고있다. 내 프로젝트에서는 응용 프로그램 서버와의 통신이 필요했고 일반적인 java jndi 조회로 수행했습니다. 더 이상 당신을 도울 수는 없지만 이것이 최선의 방법을보고 싶습니다. - 질문에 계속 지켜 볼 것입니다. –

답변

1

로그인 한 사용자의 이름을 반환하는 서블릿을 작성할 수 있습니다.

그러면 javafx에서 클래스 javafx.io.http.HttpRequest를 사용하여 서블릿을 호출하고 사용자 이름을 읽을 수 있습니다. (API는 또한 사용하는 방법에 대한 몇 가지 examples이있는 HttpRequest를)

다음 자바 FX 코드는 서블릿의 반환 문자열을 출력한다 :

var response: String; 

def myRequest: HttpRequest = HttpRequest { 

location: "http://localhost:8080/demo/foo.do"; 

method: HttpRequest.GET; 

onInput: function(is: java.io.InputStream) { 
    var buff: StringBuffer = new StringBuffer(); 

     var reader: BufferedReader 

      = new BufferedReader(new InputStreamReader(is)); 

     var data: String; 

     while ((data = reader.readLine()) != null) { 

      buff.append(data); 

     } 

     response = buff.toString(); 

     reader.close(); 
     println(response); 
} 
}; 

myRequest.start(); 

편집 : 당신은이 기사에서 살펴 보셔야합니다 : http://blogs.oracle.com/warren/entry/authenticating_a_javafx_application_using은 문서에있는 애플릿 내에서 html 문서 및 쿠키에 액세스하는 방법을 보여줍니다. 그것은 인증을위한 매우 흥미로운 접근 방식이어야합니다.

+0

HttpRequest만이 "정상적인"브라우저 요청을 공유한다면 이것은 제가 놓친 것입니다. . 나는 그것이 있다고 생각한다. 그래? – amorfis

+0

흠. 사실 나는 방금 시도했고 그들은 같은 세션을 공유하지 않는 것 같습니다. 적어도 fx httprequest의 세션은 비어있었습니다. 하지만 서블릿 만큼은 아닙니다. 어쩌면 serverside에 사용자 이름을 저장하여 나중에 fx로 되돌릴 수있는 방법이있을 수 있습니다. 그러나 나는 또한 방금 추가 한 또 다른 매우 흥미로운 기사를 발견했습니다 ... –

관련 문제