从Javaservlet到flex检索hashmap值
我正在研究“从JSP到FLEX,java作为后端的迁移。我是java和JSP的新手。” 我一直在从java servlet获取值,它接受httprequest,并且有一个名为从Javaservlet到flex检索hashmap值,java,jsp,apache-flex,servlets,flash-builder4.5,Java,Jsp,Apache Flex,Servlets,Flash Builder4.5,我正在研究“从JSP到FLEX,java作为后端的迁移。我是java和JSP的新手。” 我一直在从java servlet获取值,它接受httprequest,并且有一个名为forward(request,response)的函数,该函数作为JSP页面响应,其中包含所需的值。 现在我需要改变这一点,只从servlet获取数据,并在flex中使用它 问题: 案例1:使用httpservice时,它将结果作为字符串,但无法作为对象获取。 案例2:如果我使用RemoteObject,它需要JavaSe
forward(request,response)
的函数,该函数作为JSP页面响应,其中包含所需的值。现在我需要改变这一点,只从servlet获取数据,并在flex中使用它 问题:
案例1:使用httpservice时,它将结果作为字符串,但无法作为对象获取。
案例2:如果我使用RemoteObject,它需要JavaServlet中的方法来获取返回值,这在现有的servlet中是不存在的 我能得到关于这个问题的建议吗
谢谢案例1:您不再使用“转发”,而是设置要返回的数据类型,例如:
response.setContentType("application/json");
…在servlet中返回数据是通过将数据写入流来完成的,如:
PrintWriter out = response.getWriter();
out.print(object);
但我这么做已经有一段时间了,所以你可能会面临一些小问题
案例2:如果您使用的是servlet,那么使用HTTPService是正确的,RemoteObject将无法工作,它的使用方式不同
现在,如果可以的话,我建议使用不同于servlet的东西——从java服务器到Flex获取数据——我喜欢使用GraniteDS 如果您感兴趣,我将仅说明我看到的一些好处: 设置起来很容易: -在java中,您只需添加一个graniteDS库,两个配置文件(granite+services config xmls)将granite servlet配置添加到web.xml -flex中还有granite库和services-config.xml 在设置时,使用它也非常容易-您有一个Java中带有方法(或简单bean或ejb)的类,它只返回任何类型的对象!Java中就是这样
在flex中,在本例中,您使用RemoteObject,您只需调用该远程java方法,在结果处理程序中,您得到的dataGranite将负责序列化+传输+反序列化,并只给您对象(仅动态{}或确切的类类型)如果对象是列表或映射,请尝试将resultFormat更改为“array”,看到您从服务器返回。很抱歉,我回复晚了。我忙于其他项目,从那时起我就无法上网了。我很荣幸地感谢@user和matilu在这个问题上对我的帮助。再次感谢。