Passing the data from JSP to Flex & from Flex to JSP

이 포스팅은 Flex와 JSP의 Data연동하는 방법을 기술하였습니다.

시작하기에 앞서 간단한 기본 개념정리부터 하겠습니다. 

HTTPService는 Flex에서 제공하는 RPC의 한 방법입니다.

출처 : http://ko.wikipedia.org/wiki/%EC%9B%90%EA%B2%A9_%ED%94%84%EB%A1%9C%EC%8B%9C%EC%A0%80_%ED%98%B8%EC%B6%9C

* 원격프로시저호출(RPC, Remote Procedure Call)란? 

원격 프로시저 호출(remote procedure call, 리모트 프로시저 콜, RPC)은 컴퓨터 프로그램이 다른 주소 공간에서 원격 제어를 위한 프로그래머의 세세한 코딩 없이 함수나 프로시저의 실행을 허용하는 기술이다. 다시 말해, 프로그래머는 함수가 실행 프로그램에 로컬 위치에 있든 원격 위치에 있든 간에 반드시 동일한 코드를 짜게 된다.

어떠한 소프트웨어가 객체 지향의 원칙을 사용하여 프로그래밍 때, RPC는 원격 호출(remote invocation) 또는 원격 메소드 호출(remote method invocation)이라고 일컫는다.

쉽게말해  서로다른 컴퓨터, 즉 서로다른 서버에서 Data 연동하는 것을 의미합니다.

Flex에서 제공하는 RPC Data연동하는 방법으로 HTTPService, WebService, RemoteObject 3가지가 있습니다.

이번 포스팅은 3가지 클래스 중 HTTPService에 대해 알아보고자 합니다.

HTTPService Class properties

HTTPService클래스의 기본 속성은 다음과 같습니다. 

<S:HTTPService
		id="No default."
		method="GET|POST|HEAD|OPTIONS|PUT|TRACE|DELETE"
		resultFormat="object|array|xml|e4x|flashvars|text"
		url="No default."
		fault="No default."
		result="No default."
	>

● id  HTTPService를 참조할때 쓰는 이름

● method  서버로 Request 하는 방법

● resultFormat  결과 포멧방식 설정

● url  요청할 서버 주소

● fault  예외발생시 핸들러를 호출하는 이벤트핸들러장치

● result  서버로부터 결과를 받을때 핸들러를 호출하는 이벤트핸들러장치 

Example

출처 : 다음 예제는 네어버카페Flex4u 공룡님 강의 실습 예제 입니다.http://cafe.naver.com/flex4u

다음 예제는 DB를 사용하지 않고 간단하게 ID/PWD를 입력받아 로그인 하는 예제입니다.

HTTPServiceTest.jsp

HTTPServiceTest.mxml

소스는 다운받으시면 되시고, jsp파일은 서버에 올려주세요. 예를들면 톰캣의 경우에는 /tomcat/webapps/<AppName>/ 에 위치하면 되겠습니다.

 

 

전체적인 흐름을 살펴보기에 앞서, 코드상에 간단한 규칙(?)을 살펴보겠습니다.

 

HTTPService에서 send 할 때 인자값으로 Model객체를 넣습니다. 그럼 sending할때 Model안의 태그값들도 같이 넘어갑니다. 그러므로 Model안의 태그이름들이 JSP에서의 getParameter()이름과 매칭이 되어야 합니다. (당연한 소리~!)

B

JSP페이지의 태그 이름들은 Flex에서 HTTPService의 result값의 속성에 매칭됩니다.

C

자동으로 사용자가 입력한 값들이 바인딩 됩니다.

 

사용자가 LogIn버튼을 클릭하면, 사용자가 입력한 ID,PWD를 Model객체의 태그에 담겨져 JSP로 넘깁니다. 그럼 JSP페이지에서는 getParameter()로 사용자가 입력한 값을 자겨옵니다. 그 후 Flex는 result값으로 xml형태의 Data를 읽어들이고, ID,PWD가 맞으면 "환영" 이라고 Alert창을 띄웁니다.

 

 

 

 

AND