Flex与Java交互两种常见方式

1.Flex与Java的交互
 Flex与后端服务器程序如Java交互有两种常见方式

 

HttpService和RemoteObject
httpservice通信方式,说白了就是采用get与post方法进行数据传送,和我们平时用的表单提交没有什么不同。

RemoteObject通信方式,基于AMF的数据交互, 速度以及性能是最好的,传输数据类型比较丰富,传输效率相对比较。


如果选择的是HttpService的话,那么Struts就有用了,也就是说Flex通过HttpService的url访问struts的action,然后struts的action调用business Object执行业务逻辑返回结果,生成xml或者json传递给前端,Flex拿到xml或者json字符串后进行解析以显示数据,如果使用RemoteObject的话,那么根本就用不着Struts了,因为RemoteObject可以直接调用到Business Object相当于MVC中的控制器层交由Flex去做了,所以根本不需要多一个Struts的Action层的存在。

 


1.RemoteObject要使用到AS的实体类(使用Bindable绑定Java类)。系统涉及到很多张表,如果改动表结构的话

,AS实体类也要跟着改。十分麻烦,而且写好又要改getter,setter,又要部署到tomcat。除非自己写工具自动

生成。

 


2.使用RemoteObject,那你的J2EE后台要添加remoting-config.xml,services-config.xml 等等的配置文件和

Flex的lib,多了很多文件,而Flex仅仅是客户端显示,然后调用后台。因此服务端完全就可以我们熟悉的J2EE需

要用到的文件。减少了配置和以后的维护。

 


3.如果你要使用到Spring的话,需要配置SpringFactory和destination。例如:

services-config.xml里面添加:

<factories>

<factory id="spring" class="flex.samples.factories.SpringFactory"/>

</factories>

remoting-config.xml里面添加:

<destination id="userService">

<properties>

<!-- 工厂对应你自己取的工厂名字 -->

<factory>spring</factory>

<!-- 这个source对应spring的bean的id -->

<source>userService</source>

</properties>

</destination>

这里需要为每一个Service配置

 


4.做为Flex的UI的开发者,使用RemoteObject有必要了解ORM,不然他们调 RemoteObject的方法时很容易出错,

或者不会调用。而使用HttpService只需要后台人员和前台做UI的Flex开发者约定一套通信的xml格式即可。后台

的负责返回xml,前台的负责发送xml例如:

<root>

<model>

<attribute1>attr1</attribute1>

<attribute2>attr2</attribute2>

</model>

</root>

 


5.Flex的组件对xml的支持十分好。你可以直接将HttpService返回的xml放到组件的dataProvider就可以了,特别

是dataGrid或者tree用起来特别好。

 


6.使用HttpService减少了部署量。我只要将后台的Java程序部署到Tomcat,前台的Flex就可以直接将

FlexBuilder编译好的程序在客户机连接后台,而不用部署到Tomcat,直接测试就可以了。大大提高了开发效率。

 


7.使用HttpService也有缺点。首先就是通信的效率没有RemoteObject来的高(因为是xml,也可以使用JSON或者

其它通信方式)。其次就是,你需要写Object与xml之间的转换。我没有使用xstream,而是自己用反射写工具类

 


8.使用HttpService,用get方法返回xml数据的时候,Flex总是显示旧的数据。解决方法是在你请求的Servlet地

址添加一个参数(参数名随便起,我用random),而且请求的参数必须每一次都不一样(可以通过当前时间或者

UUID实现),例如:http://192.168.2.111:8080/UserController.do?servlet=getAll& amp;random=sdfsdfs

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值