Flex两种与后台JAVA交互的方式.docx_第1页
Flex两种与后台JAVA交互的方式.docx_第2页
Flex两种与后台JAVA交互的方式.docx_第3页
Flex两种与后台JAVA交互的方式.docx_第4页
Flex两种与后台JAVA交互的方式.docx_第5页
已阅读5页,还剩25页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

Flex两种与后台JAVA交互的方式flexjava持久层框架flexbuilderxmlspring我之前的构想也是使用RemoteObject的,但是后来发现RemoteObject有一些不爽的地方。 1.RemoteObject要使用到AS的实体类(使用Bindable绑定Java类)。我的系统涉及到200多张表,如果改动表结构的话,AS实体类也要跟着改。十分麻烦,而且写好又要改getter,setter,又要部署到tomcat。除非你自己写工具自动生成。 2.使用RemoteObject,那你的J2EE后台要添加remoting-config.xml,services-config.xml等等的配置文件和Flex的lib,多了很多文件,而我做项目的Flex仅仅是客户端显示,然后调用后台。因此我的服务端完全就可以我们熟悉的J2EE需要用到的文件。减少了配置和以后的维护。 3.如果你要使用到Spring的话,需要配置SpringFactory和destination。例如: services-config.xml里面添加: remoting-config.xml里面添加: spring userService springuserService springvrpService springtmsService 这里需要为每一个Service配置,多的话。 4.我这边做Flex的UI的开发者都是应届毕业生,使用RemoteObject有必要了解ORM(我后台持久层框架是JPA),不然他们调RemoteObject的方法时很容易出错,或者不会调用。而使用HttpService只需要我们后台人员和前台做UI的Flex开发者约定一套通信的xml格式即可。后台的负责返回xml,前台的负责发送xml,很爽!例如: attr1 attr2 5.Flex的组件对xml的支持十分友好。你可以直接将HttpService返回的xml放到组件的dataProvider就可以了,特别是dataGrid或者tree用起来特别好。 5.使用HttpService减少了部署量。我只要将后台的Java程序部署到Tomcat,前台的Flex就可以直接将FlexBuilder编译好的程序在客户机连接后台,而不用部署到Tomcat,直接测试就可以了。大大提高了开发效率。 6.使用HttpService也有缺点。首先就是通信的效率没有RemoteObject来的高(因为是xml,也可以使用JSON或者其它通信方式)。其次就是,你需要写Object与xml之间的转换。我没有使用xstream,而是自己用反射写工具类。你还需要提供Servlet给Flex调用。我用的是SpringMVC提供的MulitiController对Flex提供Http服务。 7.使用HttpService,我碰到了一些意想不到的事情。最呕血的是我提供get方法返回xml数据的时候,Flex总是显示旧的数据。解决方法是在你请求的Servlet地址添加一个参数(参数名随便起,我用random),而且请求的参数必须每一次都不一样(可以通过当前时间或者UUID实现),例如:11:8080/UserController.do?servlet=getAll&random=sdfsdfs 这个我查错了很久,郁闷。flex4与Java交互 flex4出来一段时间了,去年看了一段时间flex3,后来由于暂时没有项目需求.所以flex遗忘了很多.这次使用flex4+myeclipse8.5录制了一个视频.以免时间长了遗忘.软件环境:windows7+flex4+myeclipse8.5+blazeds功能描述:分别用代码实现了三种flex4与Java通信三种方式:1flex 与普通java类通信RemoteObject2 flex 与服务器交互HTTPService3 flex与webservice交互WebService1flex 与普通java类通信RemoteObject普通Java类: packagecom.flex.demo;/*功能描述:该类用来实现flex与普通java类中的方法通信*authorAdministrator*/publicclassSimpleServicepublicStringsayHello(Stringname)returnHello,+name;配置说明:配置remoting-config.xmlcom.flex.demo.SimpleService调用2flex 与服务器交互HTTPServiceservlet代码 packagecom.flex.demo;importjava.io.IOException;importjavax.servlet.ServletException;importjavax.servlet.http.HttpServlet;importjavax.servlet.http.HttpServletRequest;importjavax.servlet.http.HttpServletResponse;/*功能描述:该servlet用来与flex进行交互*authorAdministrator*/SuppressWarnings(serial)publicclassSimpleServiceServletextendsHttpServletOverrideprotectedvoidservice(HttpServletRequestrequest,HttpServletResponseresponse)throwsServletException,IOExceptionrequest.setCharacterEncoding(utf-8);response.setCharacterEncoding(utf-8);response.getWriter().write(我是服务器);调用3flex与webservice交互WebService!-第二种调用webservice的方法-!-webservice中的方法名-city.text三种方式完整的配置例子!-第二种调用webservice的方法-!-webservice中的方法名-city.text初次接触flex的朋友,看上面的肯定很迷惑,因此这里录制了视频教程,视频的质量是蛮好的,该视频从头至尾演示了flex4整合 Java的过程.为了方便在windows平台下播放,该视频默认导出格式为exe,在此说明该文件并非病毒,实乃视频文件,大家可放心观看.点我下载flex4与Java交互演示视频视频截图:flex和java交互的三种方法之一:Remote Object这个demo也是根据程序从前台页面执行到后台java程序的流程来书写的注:在此程序中引入了blazeds1. 页面中的组件元素view plaincopy to clipboardprint? 2. 实现click属性中的方法clickMe()函数view plaincopy to clipboardprint? 注意:在clickMe()函数中用到了远程对象testService,以及远程对象中的方法sayHello(),在书写该方法时并不会给出提示。3. 在页面中引入远程对象testServiceview plaincopy to clipboardprint? 解释:1)destination属性引入在remoting-config.xml文件中配置的标签中的对象名(该xml文件在下面的5部分给出)2) 中的id表示给该对象起个唯一标识名称。3)中name属性列出的是在远程对象中方法的名称,result属性是声明一个回调函数来处理结果值,该结果值在参数event中有封装。4. 介绍处理返回结果的处理函数returnResultHandler(event)view plaincopy to clipboardprint? 解释:1)event.result得到远程对象的结果返回值,并转换成String类型,并复制给str2)弹出对话框并输出str变量的值 Alert.show(str);5. remoting-config.xml文件里暴漏出java对象供flex页面使用view plaincopy to clipboardprint? com.test.service.TestService com.test.service.TestService 注意:在书写该文件的过程中并没有提示功能,大家输入的时候,请多注意!最好是copy6.对应该配置文件中的远程对象com.test.service.TestService 类的文件如下:view plaincopy to clipboardprint?public class TestService public String sayHello(String name) System.out.println(method=sayHello); return hello:+name; public class TestService public String sayHello(String name)System.out.println(method=sayHello);return hello:+name;以上就是一个flex+java交互的小例子,该交互是通过Remote Object方法来完成!flex和java交互的三种方法之二:httpservice2011-09-26 0个评论 收藏 我要投稿 环境:myeclipse8.5+flex4+blazeds 描述:flex4中httpservice与服务器端交互的值传递问题 方式一:通过标签进行交互,在该标签内部以要传递的参数名作为该标签内的子标签,值作为内容进行传递,服务端接受数据采用request.getParmeter(参数名)获取数据. 示例代码: flex中的代码: txtusername.text txtpassword.text 后台接受参数的代码: /获取flex传递的参数 username password String username=request.getParameter(username); /get方式处理乱码 /username=new String(username.getBytes(ISO-8859-1),utf-8); String password=request.getParameter(password); /password=new String(password.getBytes(ISO-8859-1),utf-8); 方式二:第二种传值方式通过send()方法传值send方法中传递参数 ,服务端接受数据采用request.getParmeter(参数名)获取数据. 示例代码: /第二种传值方式 通过send()方法传值 send方法中传递参数 /定义一object对象 var val:Object=new Object(); /分别将文本框username,password的值传递到后台 /object对象.参数名=值 传值操作 val.username=txtusername.text; val.password=txtpassword.text; service.send(val); 贴出完整的代码: 服务器端:package com.servlet;import java.io.IOException;import java.io.PrintWriter;import java.util.ArrayList;import java.util.List;import javax.servlet.ServletException;import javax.servlet.http.HttpServlet;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletResponse;/* */* 功能描述:flex httpservice与java交互参数传递探讨* author sxyx2008* date 2010-07-19*/SuppressWarnings(serial)public class TestHttpServiceServlet extends HttpServlet Override protected void service(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException /处理post方式乱码 request.setCharacterEncoding(utf-8); /设置浏览器输出字符编码 response.setCharacterEncoding(utf-8); PrintWriter writer=response.getWriter(); /获取flex传递的参数 username password String username=request.getParameter(username); /get方式处理乱码 /username=new String(username.getBytes(ISO-8859-1),utf-8); String password=request.getParameter(password); /password=new String(password.getBytes(ISO-8859-1),utf-8); /构建一个list存放一些数据用来模拟用户是否存在这一功能 List list=new ArrayList(); list.add(张三); list.

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论