`
Messi光明
  • 浏览: 55658 次
  • 性别: Icon_minigender_2
  • 来自: 上海
社区版块
存档分类
最新评论

flex--java

阅读更多
自从呼叫中心项目开始,不知不觉,学习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() ;      
    }    


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) ;      
            }      
        }      
    }    
分享到:
评论

相关推荐

    flex-messaging系列jar包

    Flex Messaging系列JAR包是Adobe Flex与Java之间进行通信的核心组件,主要负责建立富互联网应用程序(RIA)与服务器之间的消息传递。这些JAR文件包含了多种服务和协议的支持,使得Flex客户端能够与Java后端无缝交互...

    flex-messaging-core-4.7.3.jar

    flex-messaging-core-4.7.3.jar 最新版,下载了好长时间才下载下来,亲测可用!

    spring-flex-1.5.0.M2-dist.zip

    4. **SBI(Spring BlazeDS Integration)**:这是Spring Flex的一个重要组成部分,它提供了与Adobe BlazeDS的集成,BlazeDS是Adobe提供的一个免费服务器端套件,用于在Flex和Java应用之间传递数据。 5. **Flex构建...

    flex-messaging-core.jar

    这个Java Archive (JAR) 文件包含了实现AMF(Action Message Format)协议所需的类库,AMF是一种高效的数据序列化协议,广泛用于Flash Player和Flex应用程序与服务器之间的数据交换。 Flex框架是一个开源的开发工具...

    flex-messaging-4.7.3最新版本的jar

    1. ** BlazeDS**:BlazeDS是Adobe官方提供的开源服务器端组件,它为Flex应用提供了与Java后端服务交互的能力,支持AMF(Action Message Format)协议,这是一种高效的二进制数据交换格式,可以显著提高数据传输速度...

    Flex-Java-Demo.rar_flex_flex 控件

    在"Flex-Java-Demo.rar_flex_flex 控件"这个压缩包中,我们很显然会发现一个关于Flex与Java互操作性的演示项目。下面将详细探讨相关的知识点。 1. **Flex**:Flex是由Adobe公司开发的一种开源框架,用于构建基于...

    Flex-Java-file-upload.zip_flex

    标题中的“Flex-Java-file-upload.zip_flex”表明这是一个关于使用Adobe Flex与Java进行文件上传交互的教程。Flex是一种基于ActionScript的开放源代码框架,用于构建富互联网应用程序(RIA)。它允许开发者创建动态...

    Flex-jsp两个必要jar包

    在开发Web应用时,将富互联网应用程序(RIA)如Adobe Flex与传统的Java Server Pages(JSP)技术结合,可以创建出交互性强、用户体验优秀的Web应用。在这个过程中,`flex-bootstrap-jsp.jar` 和 `flex-sdk-merged....

    flex-messaging-common.jar

    flex-messaging-common.jar

    java-flex-mysql

    这里我们深入探讨一下"java-flex-mysql"这个主题,它涉及到的是一套基于Java后端、Flex前端和MySQL数据库的交互实现。 **Java** 是一种广泛使用的面向对象的编程语言,尤其适合于开发企业级应用。在这个项目中,...

    Flex-Spring-JAVA-BLAZEDS.rar_Flex spring_flex_flex java

    标题中的“Flex-Spring-JAVA-BLAZEDS.rar”提到了三个关键技术:Flex、Spring和BlazeDS,这在IT行业中是关于前端与后端交互的重要技术组合。Flex是Adobe开发的一种用于创建富互联网应用(RIA)的开源框架,主要用于...

    noteDao flex-java

    【noteDao flex-java】是一个基于Java技术开发的项目,主要用于数据访问操作,即数据库的CRUD(创建、读取、更新、删除)功能。在Java应用程序中,DAO(Data Access Object)模式是一种常用的设计模式,它封装了对...

    Flex-Spring拦截器

    AMF是一种二进制格式,能将ActionScript对象序列化为网络传输的格式,并在服务器端反序列化为Java对象。 当我们在Flex-Spring集成中使用拦截器时,我们需要配置Spring的`HandlerInterceptor`或`...

    flex-hessian-java实例.rar

    Flex-Hessian-Java实例是一个关于使用Flex客户端与Java服务器之间进行高效远程调用的实践案例。这个压缩包包含了实现这一技术所需的关键组件和文件。Flex是Adobe开发的一种开放源码的富互联网应用(RIA)开发框架,...

    flex-and-java.zip_flex

    标题中的"flex-and-java.zip_flex"表明这是一个关于Flex与Java集成的压缩文件,主要关注Flex如何调用Java的方法。描述中提到这是一个交互性的示例,涵盖了三种不同的方法,这暗示我们将探讨三种不同的通信机制。标签...

    java-flex-webroot配置文件和JAVA包

    理解和配置Java-Flex-webroot的关系是开发混合型RIA的关键,这能帮助开发者充分利用Java的强类型和Flex的可视化优势,为用户提供高性能、高度互动的Web体验。在实际项目中,还需要考虑安全性、性能优化、错误处理等...

    Flex-Java通信

    Flex-Java通信是将Adobe Flex技术与Java平台相结合,以构建富网络应用(Rich Internet Applications,简称RIA)的一种技术方案。RIA是互联网应用程序的新形态,它弥补了传统C/S(客户端-服务器)和B/S(浏览器-...

    flex-webiter.jar.zip

    5. **数据管理**:它提供了对远程数据源的访问,例如通过 BlazeDS 或 LCDS(LiveCycle Data Services)进行的Java对象和关系数据库的透明访问。 6. **事件驱动架构**:Flex Webtier支持事件驱动的编程模型,允许...

Global site tag (gtag.js) - Google Analytics