`
coral0212
  • 浏览: 101427 次
  • 性别: Icon_minigender_1
  • 来自: 合肥
社区版块
存档分类
最新评论

java flex servlet 通讯

    博客分类:
  • UI
阅读更多

自从呼叫中心项目开始,不知不觉,学习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") ;       
            //*********建立数据库 名为flex*************//       
             String url = "jdbc:microsoft:sqlserver://localhost:1433;DatabaseName=flex" ;       
            //**********换上你自己的用户名和密码信息************//       
             con = DriverManager.getConnection(url, "sa", "135780") ;       
             stmt = con.createStatement() ;       
            //**********里面建表名为USERS   具体SQL语句见附件下载**********//       
             result = stmt.executeQuery("select * from USERS") ;       
         } catch(Exception e) {       
             e.printStackTrace() ;       
         }       
        //重要:设置响应格式为XML格式       
         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") ;       
                //*****创建XMLdocument*******//       
                 xml.create(strs) ;       
             }       
             result.close() ;       
             stmt.close() ;       
             con.close() ;       
            //*******写XML文件到客户端********//       
             xml.output(out) ;     

 

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

java 代码

/**  
      * 把XML文档写入到输出流  
      *   
      * @param out  
      *        ----指定的输出流  
      * @throws Exception  
      *   
      * 编写者:王景辉 湖南农业大学&湖南爱瑞洁投资管理公司  
      */     
    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() ;      
     }    

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

 
java 代码

 

/**   

      * 创建XML文档   
      *    
      * @param    strs    
      *        -------传送过来的姓名和密码和学校参数   
      *    
      * 编写者:王景辉 湖南农业大学&湖南爱瑞洁投资管理公司   
      */      
    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) ;       
             }       
         }       
     

 

分享到:
评论
1 楼 wei83523408 2009-08-19  
<mx:Model>标签,source属性指定的是一个servlet映射。是怎么回事啊。我看了你的源代码,里面没有first啊,为什么你的Source路径source="http://localhost:8080/flex/first"
麻烦楼主解答一下!!

相关推荐

    Flex与java通讯

    在Java端,我们可以使用Servlet来接收和响应Flex的请求。对于更复杂的业务逻辑管理,Spring框架提供了集成BlazeDS的解决方案,可以轻松地将Flex与Spring服务和DAO层连接起来。 6. **Security and Cross-Domain ...

    通过MyEclpise整合JAVA与FLEX进行通讯(通过将Flex工程加到Java web工程中)

    本话题主要关注如何通过MyEclipse这个流行的Java集成开发环境(IDE)整合JAVA与FLEX,使得它们能够有效地进行通讯。这一过程涉及到将Flex工程添加到Java Web工程中,以便在后端服务器和前端富互联网应用程序(RIA)...

    flex4与Java通信实例

    Flex4与Java通信是开发富互联网应用程序(RIA)时的一项重要技术,允许前端用户界面与后端业务逻辑之间进行高效的数据交换。在本实例中,我们探讨了三种Flex4与Java交互的方式:通过RemoteObject、HTTPService以及...

    flex嵌入jsp,与servlet通讯实例

    3. **Servlet配置**:在Java项目中,我们需要创建一个Servlet类,继承自`HttpServlet`,并在`doGet`或`doPost`方法中处理请求。在`web.xml`中注册这个Servlet,指定其映射路径,以便Flex应用可以找到它。 4. **数据...

    flex与java通讯配置源码demo

    Flex与Java之间的通讯是Web应用程序开发中的重要环节,特别是在构建富互联网应用(RIA)时。Flex作为Adobe开发的客户端UI框架,主要用于创建交互性强、视觉效果丰富的用户界面,而Java则在服务器端处理业务逻辑和...

    FLex+java 通讯

    标题中的“FLex+java 通讯”指的是使用Adobe Flex(一种用于构建富互联网应用程序的开源框架)与Java后端进行数据交互的技术。Flex是基于ActionScript编程语言和Flex框架,通常用于创建用户界面,而Java则是一种广泛...

    Flex与Java交互通讯视频详解

    Flex与Java交互通讯是Web开发中的一个重要话题,它涉及到客户端与服务器端的高效协同工作。Flex,作为Adobe的开源框架,主要用于构建富互联网应用程序(RIA),而Java则是一种广泛使用的后端开发语言,能提供强大的...

    Flex和Java通讯方法(全)

    标题中的“Flex和Java通讯方法(全)”指的是在开发中如何使用Adobe Flex(一个用于创建富互联网应用程序的开源框架)与Java应用程序进行通信的全面技术。这种通信通常涉及到客户端(Flex应用)与服务器端(Java应用)...

    flex与httpService通信(java)

    压缩包中的`test.jsp`可能是用于测试Flex与Java后台通信的一个简单的Java Servlet。在实际应用中,可能需要更复杂的Java代码来处理业务逻辑和数据库操作。 通过以上介绍,我们可以理解Flex如何使用`HTTPService`...

    Java与Flax通讯

    Java与Flax通讯是关于构建Java后端与Adobe Flex前端应用程序之间交互的技术。Flex是一种用于创建富互联网应用程序(RIA)的框架,而BlazeDS是一个免费的开源项目,由Adobe提供,它允许Java应用程序和Flex客户端进行...

    flex java

    在描述中提到的"所有jar包"可能包含如 BlazeDS 或 LCDS (LiveCycle Data Services) 这样的库,它们是Adobe提供的中间件,用于实现Flex与Java之间的AMF(Action Message Format)通讯,提供高效的数据传输。...

    FLex与Java通信实例

    本实例主要介绍如何使用Flex与后台的Servlet进行通讯,以展示Flex客户端如何接收并显示由Java Servlet发送的XML数据。 首先,Flex客户端是一个基于MXML的应用程序,其核心是一个`&lt;mx:DataGrid&gt;`组件用于展示从...

    flex+blazeDS配置指南

    而BlazeDS是Adobe提供的一个免费服务器端组件,用于实现Flex与Java后端的数据通信。本文将深入探讨如何配置Flex与BlazeDS,让它们协同工作,实现高效、稳定的数据交换。 首先,我们需要准备必要的工具和环境。...

    Flex4 + J2EE + Blazeds 配置 jspweb 工程 含实例源码

    通过以上步骤,你将能够构建一个完整的Flex4 + J2EE + Blazeds应用,利用Flex的强大界面设计能力,结合J2EE的业务处理能力,通过Blazeds实现前后端的无缝通讯。这样的架构广泛应用于各种复杂的企业级Web应用中,如...

    IT技术文章示例

    Flex与Java通过BlazeDS的通讯 BlazeDS作为Flex与Java之间的桥梁,提供了数据推送和远程调用的能力。通过BlazeDS,Flex客户端可以订阅Java服务器上发布的事件,实时接收数据更新;同时也可以调用Java服务器上的服务...

    基于SOA和ROA的整体技术架构.docx

    - **Flex**:Adobe Flex提供了一个富互联网应用程序(RIA)平台,通过HTTPService、RemoteObject和Web服务与Java后端通信,支持XML、JSON等多种数据格式。 - **AJAX**:AJAX允许Web页面在不刷新整个页面的情况下与...

    基于SOA和ROA的整体技术架构(doc 11页).docx

    Flex通过HTTPService、RemoteObject或Web服务与Java后端通信,支持XML、JSON等数据格式交换。 6. 开源框架的应用: 在J2EE架构下,Struts、Spring、Hibernate等开源框架提供了对MVC模式的支持,简化了业务逻辑和...

    WEB工程师个人简历表.doc

    - 民政业务客户需求调研、流程定制、PowerDesigner数据库设计、多元灵活定制查询 (Java/Servlet)。 - NFS+Web网络文件管理与即时消息通讯冒泡程序 (C#)。 - 负责顺义区建设委员会协同办公及综合应用系统的开发。 ...

Global site tag (gtag.js) - Google Analytics