自从呼叫中心项目开始,不知不觉,学习Flex已经十天有余了!现在已经基本进入状态,今天本人在此班门弄斧,发一个利用Flex与后台的Servlet进行通讯的例子,希望对一些刚学习Flex的新手有所帮助。为了搞清楚Flex是如何与后台进行通讯,本人在刚开始学Flex前五天可以说是碌碌无为,今天发这个帖子的目的就是为了让后面的兄弟少走弯路。
交互原理:三个字母---------XML,客户端接受从服务器端发送过来的XML数据。
本例工作流程:客户端很简单就一个DataGrid组件,用来显示服务器端传送过来的数据。对应的mxml文件如下:
xml 代码
- <?xml version="1.0" encoding="UTF-8"?>
- <mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute">
- <mx:Model source="http://localhost:8080/flex/first" id="model">
-
- </mx:Model>
- <mx:Panel title="用户信息" width="776" height="281" fontSize="18">
- <mx:DataGrid dataProvider="{model.user}" width="748" height="231">
- <mx:columns>
- <mx:DataGridColumn dataField="name" headerText="用户">
-
- </mx:DataGridColumn>
- <mx:DataGridColumn dataField="pwd" headerText="密码">
-
- </mx:DataGridColumn>
- <mx:DataGridColumn dataField="school" headerText="现在学校">
-
- </mx:DataGridColumn>
- </mx:columns>
- </mx:DataGrid>
- </mx:Panel>
- </mx:Application>
在此需要注意<mx:Model>标签,source属性指定的是一个servlet映射,这个servlet的作用是利用response向客户端写入XML。
读取数据库数据,生成XML文件由两个类组成,一个为FirstServlet.java,一个为XML.java,其中前者就是一个普通的servlet,用来写XML文件,后者专门用来生成XML文件,由Java XML API操作完成。废话少说,先看看代码
FirstServlet代码摘要:
java 代码
- try {
- xml.init() ;
- Class.forName("com.microsoft.jdbc.sqlserver.SQLServerDriver") ;
-
- String url = "jdbc:microsoft:sqlserver://localhost:1433;DatabaseName=flex" ;
-
- con = DriverManager.getConnection(url, "sa", "135780") ;
- stmt = con.createStatement() ;
-
- result = stmt.executeQuery("select * from USERS") ;
- } catch(Exception e) {
- e.printStackTrace() ;
- }
-
- response.setContentType("text/xml") ;
- response.setCharacterEncoding("UTF-8") ;
- PrintWriter out = response.getWriter() ;
以上为servlet连接数据库并设置响应格式的代码,下面是写XML文件的关键代码:
java 代码
- while(result.next()) {
- String[] strs = new String[3] ;
- strs[0] = result.getString("name") ;
- strs[1] = result.getString("pwd") ;
- strs[2] = result.getString("school") ;
-
- xml.create(strs) ;
- }
- result.close() ;
- stmt.close() ;
- con.close() ;
-
- xml.output(out) ;
其中末行的xml是XML.java的一个实例,XML的一些重要方法如下:
java 代码
-
-
-
-
-
-
-
-
-
- public void output(Writer writer) throws Exception{
- Transformer trans = TransformerFactory.newInstance().newTransformer() ;
- trans.setOutputProperty(OutputKeys.ENCODING, "UTF-8") ;
- Source source = new DOMSource(document) ;
- Result result = new StreamResult(writer) ;
- trans.transform(source, result) ;
- writer.flush() ;
- writer.close() ;
- }
java 代码
-
-
-
-
-
-
-
-
- public void create(String[] strs) {
-
- Element first = document.createElement("user") ;
- root.appendChild(first) ;
-
- for(int i=0; i<strs.length; i++) {
- if(i==0) {
-
- Element name = document.createElement("name") ;
- name.appendChild(document.createTextNode(strs[i])) ;
- first.appendChild(name) ;
- } if(i==1) {
- Element pwd = document.createElement("pwd") ;
- pwd.appendChild(document.createTextNode(strs[i])) ;
- first.appendChild(pwd) ;
- } if(i==2) {
- Element school = document.createElement("school") ;
- school.appendChild(document.createTextNode(strs[i])) ;
- first.appendChild(school) ;
- }
- }
- }
代码很乱?找不到头绪?没有关系,我会把源代码把放到附件里供大家下载。
其实说到底,这个例子没有什么神秘的,只要记住,XML是Flex与后台进行数据交换的媒介,无论后台数据怎么千变万化,出口就有这一个。如果试验,可以先从简单开始,不涉及查询数据库,直接在servlet写出XML。
如果大家还有什么疑问,欢迎留言,我也是初学者,让我们共同进步。。。
程序运行方法:
STEP1: 在SQLServer2000里建一个数据库flex,然后在查询分析器导入附件所带的SQL语句.sql,生成所需表格
STEP2: 把FlexDataService安装目录下的flex.war解压到(比如说D:\a),然后把D:\a\web-inf下的flex整个目录拷贝到WEB程序的WEB-INF下,把D:\a\web-inf\lib目录下的jar包拷贝到对应WEB程序下的lib目录下。
STEP4: 拷贝工程文件到你所建的MyEclipse工程
因为Flex与Java进行通信涉及到的文件会非常多,如果你以前会部署,那再好不过。一般情况下,根据上述步骤能部署成功。如果部署出现了什么问题,或者不明白的告知本人,本人会以最快的速度为大家解答。
分享到:
相关推荐
Flex 和 Java的交互实例.非常值得参考
Flex+Java Servlet文件上传实例
Flex和java交互的登录实例Flex和java交互的登录实例Flex和java交互的登录实例Flex和java交互的登录实例Flex和java交互的登录实例Flex和java交互的登录实例Flex和java交互的登录实例
Flex+Java Servlet处理文件上传 关于上传文件
一个flex+java的登录实例完整版+flex框架 一个flex+java的登录实例完整版+flex框架
拿来直接就用的flex 和java交互的入门实例,简单的不能再简单,包括所有的jar包
Flex与java和数据库交互的完美文档
Flex和java交互搭建,新手可以用来练手,简单易懂
Flex和java交互的示例代码,给出的Flex部分:前端界面和vo,后端Java部分,以及配置部分。注意:我直接用的JDBC连接MySql,且只做了数据显示,没有增修改删除。
本JavaWeb工程用于研究Flex与Servlet之间数据的交互 本工程编码方式:UTF-8 欢迎下载
flex4出来一段时间了,去年看了一段时间flex3,后来由于暂时没有项目需求.所以flex遗忘了很多.这次使用flex4+myeclipse8.5录制了一个视频.以免时间长了遗忘. 软件环境:windows7+... 3 flex与webservice交互WebService
Flex中获取组件快照的ByteArray,然后调用JavaServlet将ByteArray导出成图片。
实现Flex和Java交互.rar 实现flex与java的交互问题
Flex+Java Servlet处理文件上传
详细阐述flex和java交互环境搭建的过程
flex4与java结合实例,绝对真实 初学者一看就会
这里有flex的学习资料 很有价值的,还有flex和java交互的资料 都是word格式的 看了就能懂
最简单的Flex与Java交互(HelloWorld)