从java servlet检索hashmap值到flex

时间:2014-01-10 17:11:08

标签: java jsp flex servlets flash-builder4.5

我正在努力“从JSP迁移到FLEX,java作为后端。我是java和JSP的新手。

我坚持从java servlet获取值,它需要httprequest,并且有一个名为forward(request,response)的函数,它响应JSP页面,其中包含需要的值。
现在我需要更改它并从该servlet获取数据并在flex中使用它。

问题:
case1:当使用httpservice时,它将结果作为字符串,但无法作为对象获取 case2:如果我使用RemoteObject,它需要java servlet中的方法来获取返回值,这在现有的servlet中是不存在的。

我可以就此问题得到任何建议。

谢谢

1 个答案:

答案 0 :(得分:1)

case1:您不再使用forward,您可以设置要返回的数据类型,例如:

response.setContentType("application/json");

...并且在servlet中返回数据是通过将数据写入流来完成的,如:

PrintWriter out = response.getWriter();
out.print(object);

但是不久之前我就这么做了,所以你可能会遇到一些小问题......

case2:如果你正在使用servlet,使用HTTPService是正确的,RemoteObject将不起作用,它的使用方式不同....


现在,如果可以的话,我建议使用与servlet不同的东西 - 从java服务器获取数据到Flex - 我喜欢使用GraniteDS。

如果您有兴趣,我会陈述一些我看到的好处:

设置简单: - 在java中,你只需添加一个graniteDS库,两个配置文件(granite + services-config xmls)将一个花岗岩servlet配置添加到web.xml - 在flex中还有花岗岩库和services-config.xml

设置时,使用它也很简单 - 你有一个带有Java方法(或简单的bean或ejb)的类,只返回任何类型的对象!这就是Java [/ p>]

在flex中,在这种情况下你使用只调用远程java方法的RemoteObject,在结果处理程序中你得到dataGranite将负责序列化+传递+反序列化并只给你对象(或者只是动态{}或者甚至是精确的类型)