Flex与JavaServlet交互实例浅析

这是一个用Flex与后台的 Servlet进行交互的例子,希望对一些刚学习Flex的新手有所帮助。为了搞清楚Flex是如何与后台进行通讯,本人在刚开始学Flex前五天可以说是碌碌无为,这个文章的目的就是为了使初学者少走弯路。

站在用户的角度思考问题,与客户深入沟通,找到和静网站设计与和静网站推广的解决方案,凭借多年的经验,让设计与互联网技术结合,创造个性化、用户体验好的作品,建站类型包括:成都网站设计、做网站、成都外贸网站建设公司、企业官网、英文网站、手机端网站、网站推广、空间域名、网站空间、企业邮箱。业务覆盖和静地区。

交互原理:三个字母---------XML,客户端接受从服务器端发送过来的XML数据。

本例工作流程:客户端很简单就一个DataGrid组件,用来显示服务器端传送过来的数据。对应的mxml文件如下:

XML 代码

 
 
 
  1. ﹤?xml version="1.0" encoding="UTF-8"?﹥       
  2.  ﹤mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute"﹥       
  3.      ﹤mx:Model source="http://localhost:8080/flex/first" id="model"﹥       
  4.                 
  5.     ﹤/mx:Model﹥       
  6.     ﹤mx:Panel title="用户信息" width="776" height="281" fontSize="18"﹥       
  7.          ﹤mx:DataGrid dataProvider="{model.user}" width="748" height="231"﹥       
  8.             ﹤mx:columns﹥       
  9.                  ﹤mx:DataGridColumn dataField="name" headerText="用户"﹥       
  10.                              
  11.                  ﹤/mx:DataGridColumn﹥       
  12.                  ﹤mx:DataGridColumn dataField="pwd" headerText="密码"﹥       
  13.                              
  14.                  ﹤/mx:DataGridColumn﹥       
  15.                 ﹤mx:DataGridColumn dataField="school" headerText="现在学校"﹥       
  16.                             
  17.                 ﹤/mx:DataGridColumn﹥       
  18.              ﹤/mx:columns﹥       
  19.          ﹤/mx:DataGrid﹥       
  20.      ﹤/mx:Panel﹥       
  21.  ﹤/mx:Application﹥     

在此需要注意﹤mx:Model﹥标签,source属性指定的是一个servlet映射,这个servlet的作用是利用response向客户端写入XML。

读取数据库数据,生成XML文件由两个类组成,一个为FirstServlet.java,一个为XML.java,其中前者就是一个普通的servlet,用来写XML文件,后者专门用来生成XML文件,由Java XML API操作完成。废话少说,先看看代码

FirstServlet代码摘要:

Java 代码

 
 
 
  1. try {        
  2.             xml.init() ;        
  3.             Class.forName("com.microsoft.jdbc.sqlserver.SQLServerDriver") ;        
  4.           //*********建立数据库 名为flex*************//        
  5.             String url = "jdbc:microsoft:sqlserver://localhost:1433;DatabaseName=flex" ;        
  6.             //**********换上你自己的用户名和密码信息************//        
  7.             con = DriverManager.getConnection(url, "sa", "135780") ;        
  8.             stmt = con.createStatement() ;        
  9.             //**********里面建表名为USERS  具体SQL语句见附件下载**********//        
  10.             result = stmt.executeQuery("select * from USERS") ;        
  11.         } catch(Exception e) {        
  12.             e.printStackTrace() ;        
  13.         }        
  14.         //重要:设置响应格式为XML格式        
  15.         response.setContentType("text/xml") ;        
  16.         response.setCharacterEncoding("UTF-8") ;        
  17.         PrintWriter out = response.getWriter() ;     

以上为servlet连接数据库并设置响应格式的代码,下面是写XML文件的关键代码:

Java 代码

 
 
 
  1. while(result.next()) {        
  2.                 String[] strs = new String[3] ;        
  3.                strs[0] = result.getString("name") ;        
  4.                 strs[1] = result.getString("pwd") ;        
  5.                strs[2] = result.getString("school") ;        
  6.                 //*****创建XMLdocument*******//        
  7.              xml.create(strs) ;        
  8.            }        
  9.              result.close() ;        
  10.             stmt.close() ;        
  11.             con.close() ;        
  12.             //*******写XML文件到客户端********//        
  13.             xml.output(out) ;     

其中末行的xml是XML.java的一个实例,XML的一些重要方法如下:

Java 代码

 
 
 
  1. /**      
  2.     * 把XML文档写入到输出流      
  3.     *       
  4.     * @param out      
  5.     *       ----指定的输出流      
  6.     * @throws Exception      
  7.     *       
  8.     * 编写者:王景辉 湖南农业大学&湖南爱瑞洁投资管理公司      
  9. */       
  10.    public void output(Writer writer) throws Exception{        
  11.        Transformer trans = TransformerFactory.newInstance().newTransformer() ;        
  12.       trans.setOutputProperty(OutputKeys.ENCODING, "UTF-8") ;        
  13.       Source source = new DOMSource(document) ;        
  14.        Result result = new StreamResult(writer) ;        
  15.       trans.transform(source, result) ;        
  16.        writer.flush() ;        
  17.       writer.close() ;        
  18.   }     

Java 代码

 
 
 
  1. /**      
  2. * 创建XML文档      
  3. *       
  4. * @param   strs       
  5. *       -------传送过来的姓名和密码和学校参数      
  6. *       
  7. * 编写者:王景辉 湖南农业大学&湖南爱瑞洁投资管理公司      
  8. */       
  9. public void create(String[] strs) {        
  10.      //*********级子节点******//        
  11.        Element first = document.createElement("user") ;        
  12.        root.appendChild(first) ;        
  13.                 
  14.        for(int i=0; i﹤strs.length; i++) {        
  15.          if(i==0) {        
  16.              //*******第二级子节点******//        
  17.              Element name = document.createElement("name") ;        
  18.               name.appendChild(document.createTextNode(strs[i])) ;        
  19.                first.appendChild(name) ;        
  20.            } if(i==1) {        
  21.               Element pwd = document.createElement("pwd") ;        
  22.                  pwd.appendChild(document.createTextNode(strs[i])) ;        
  23.                  first.appendChild(pwd) ;        
  24.             } if(i==2) {        
  25.                 Element school = document.createElement("school") ;        
  26.               school.appendChild(document.createTextNode(strs[i])) ;        
  27.                 first.appendChild(school) ;        
  28.              }        
  29.         }        
  30.     }     

其实说到底,这个例子没有什么神秘的,只要记住,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 Servlet交互实例浅析就到这里告一段落了,不知道你的感觉如何?

标题名称:Flex与JavaServlet交互实例浅析
路径分享:http://www.shufengxianlan.com/qtweb/news17/55917.html

网站建设、网络推广公司-创新互联,是专注品牌与效果的网站制作,网络营销seo公司;服务项目有等

广告

声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 创新互联