从javaservlet到flex检索hashmap值



我正在研究"从JSP到FLEX的迁移,并将java作为后端。我是java和JSP的新手。

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

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

我能得到关于这个问题的建议吗。

谢谢

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

response.setContentType("application/json");

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

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

但我做这件事已经有一段时间了,所以你可能会面临一些小问题。。。

案例2:如果您使用servlet,那么使用HTTPService是正确的,RemoteObject将不起作用,它的使用方式不同。。。。


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

我只会说明我看到的一些好处,以防你感兴趣:

它易于设置:-在java中,您只需添加一个graniteDS库,两个配置文件(granate+cervices-config-xmls)将一个granateservlet配置添加到web.xml-在flex中还有granite库和服务-config.xml

设置好后,使用它也非常容易——您有一个Java中带有方法(或简单bean或ejb)的类,它只返回任何类型的对象!Java 就是这样

在flex中,在这种情况下,您使用RemoteObject,您只需调用该远程java方法,在结果处理程序中,您可以获得数据Granite将负责序列化+传输+反序列化,并只为您提供Object(要么是动态的{},甚至是精确的类类型)

最新更新