`

Flex的通信方式(四)——HTTPService_2

阅读更多
转载自:http://cs.ntsky.com/flex3-java-json.html
在转载源的基础上进行分析说明



1、Flex中请求URL得到json的数据,然后在script中解析json数据
其中用的是HTTPService通信方式 和 navigateToURL直接访问URL
<?xml version="1.0" encoding="utf-8"?>   
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml"     
    horizontalAlign="center"     
    verticalAlign="middle"     
    verticalGap="15"   
    horizontalGap="15">   
        
    <mx:Script>   
        <![CDATA[   
            import mx.collections.ArrayCollection;   
            import mx.rpc.events.ResultEvent;   
            import com.adobe.serialization.json.JSON;    
            import mx.controls.Alert;   
               
            [Bindable]   
            private var photoFeed:ArrayCollection;   
  
            private function doLogin():void {   
                trace("start send");   
                var params:Object = new Object();   
                params.username = username.text;   
                params.password = password.text;   
                loginCheck.send(params);   
                trace("end send");   
            }   
  
            private function doCancel():void {   
                username.text = "";   
                password.text = "";   
            }   
  
            private function loginHandler(event:ResultEvent):void {   
                   
                var rawData:String = String(event.result);   
                   
                //decode the data to ActionScript using the JSON API   
                //in this case, the JSON data is a serialize Array of Objects.   
                var arr:Array = (JSON.decode(rawData) as Array);   
                var dataArray:ArrayCollection = new ArrayCollection(arr);   
                //arraySize = dataArray.length;   
                       
                // info.text = event.result.toString();   
                var obj:Object = JSON.decode(rawData);   
              
                if(obj.status==1){   
                     var request:URLRequest = new URLRequest();   
                     request.method = URLRequestMethod.GET;   
                     request.url = "http://test.ntsky.com:8080/admin/posts.action";   
                     // request.   
                     var loader:URLLoader = new URLLoader();   
                     navigateToURL(request,"_self");   
                }   
                else{   
                    Alert.show(obj.message);   
                }   
            }   
               
         ]]>   
    </mx:Script>        
        
    <mx:HTTPService id="loginCheck"   
        url="http://test.ntsky.com:8080/admin/login.action"   
        resultFormat="text"   
             
        result="loginHandler(event)" />   
   
    <mx:Panel x="330" y="192" width="290" height="177" layout="absolute" title="用户登录" fontSize="12" horizontalAlign="center" verticalAlign="middle">   
        <mx:Form x="10" y="10" width="253" height="90">   
            <mx:FormItem label="用户名:">   
                <mx:TextInput id="username"/>   
            </mx:FormItem>   
            <mx:FormItem label="密  码 :">   
                <mx:TextInput id="password" displayAsPassword="true"/>   
            </mx:FormItem>   
        </mx:Form>   
        <mx:Button x="65" y="103" label="登录" click="doLogin()"/>   
        <mx:Button x="144" y="103" label="取消" click="doCancel()"/>   
    </mx:Panel>   
        
</mx:Application>   



2、Java中进行数据处理得到json格式的数据,部分代码
/**   
 * 浏览器直接返回信息   
 *    
 * @param content 内容   
 * @param character 编码   
 * @throws IOException   
 */   
protected void out(String content,String character) throws IOException {    
    HttpServletResponse response = ServletActionContext.getResponse();    
    response.setContentType("text/html;charset="+character);    
    PrintWriter out = response.getWriter();    
    out.print(content);    
    out.flush();    
    out.close();    
}    
   
    try{    
        Author author = authorService.getAuthorByName(username);    
        if( author==null ){    
            JSONObject json = new JSONObject();    
            json.put("status","0");    
            json.put("message","用户名不存在");    
            super.out(json.toString());    
        }    
        if(author.getPassword().equals(MD5.md5(password))){    
            session.put(Symbols.SESSION_AUTHOR, author);    
            JSONObject json = new JSONObject();    
            json.put("status","1");    
            json.put("message","登录成功");    
            super.out(json.toString());                 
        }    
        else{    
            JSONObject json = new JSONObject();    
            json.put("status","0");    
            json.put("message","密码错误");    
            super.out(json.toString());         
        }    
            
    }    
    catch(ServiceException se){    
        JSONObject json = new JSONObject();    
        json.put("status","0");    
        json.put("message","登录失败");    
        super.out(json.toString());     
        throw new Exception(se);    
    } finally {    
    }           
    return NONE;    



补充:JSON快速入门简易介绍:http://baike.baidu.com/view/136475.htm?fr=ala0
分享到:
评论

相关推荐

    Flex的通信方式(三)——HTTPService_1

    在Flex中,与服务器进行数据交互是应用的重要部分,而HTTPService是Flex提供的一种用于与HTTP服务器进行通信的组件。本篇文章将详细探讨Flex中的HTTPService,以及如何通过HTTPService来实现数据的发送和接收。 ...

    Flex 第一步 Chapter_2

    10. **Flex与服务器通信**:讲解如何使用HTTPService、WebService或Remoting等技术与后端服务器进行数据交互。 这个章节可能是逐步引导式的,通过实例来解释上述概念,帮助初学者建立坚实的基础。通过实践这些知识...

    Flex案例代码,Flex案例代码

    5. **服务调用**:Flex可以轻松地与后端服务器进行通信,如通过HTTPService或WebService调用远程API,获取或提交数据。 6. **事件驱动编程**:Flex应用是事件驱动的,用户操作或其他系统事件会触发相应的事件处理器...

    Flex从入门到实践——源代码(10章)

    2. **Flex SDK和Flex Builder**:了解如何设置开发环境,包括安装Flex SDK和使用Flex Builder(现为IntelliJ IDEA或Adobe Flash Builder)。源代码可能包含项目配置和编译设置的示例。 3. **组件库**:Flex提供了...

    Flex从入门到实践_1

    Flex SDK包含了编译器、IDE集成、组件库以及运行时环境——Flash Player或Adobe AIR。Flex的应用程序通常以SWF格式运行在浏览器中,为用户提供交互性强、视觉效果丰富的体验。 2. **ActionScript基础** ...

    Flex从入门到实践——源代码(15,16,17章)

    - 这一章可能涵盖了如何使用Flex与服务器进行通信,包括AMF(Action Message Format)和WebServices。 - BlazeDS或LiveCycle Data Services是Adobe提供的中间件,用于在Flex应用和Java或.NET后端之间传输数据。 -...

    Java和Flex通过Blaze 通信

    在这样的背景下,BlazeDS应运而生,它作为中间件,提供了Java和Flex之间的数据通信解决方案。 BlazeDS是Adobe公司发布的一个开源项目,它的主要功能是为Java服务器和Flex客户端提供实时的双向通信。通过使用BlazeDS...

    3DGame.rar_flex_跳棋

    最后,考虑到网络功能,Flex也支持WebSocket、HTTPService等网络通信协议,这意味着3D跳棋游戏可以轻松实现多人在线对战模式。玩家可以通过网络连接与其他玩家实时对弈,增加了游戏的趣味性和互动性。 总的来说,"3...

    ASP.NET源码——[图片动画]flex图片上传带预览功能.zip

    这个压缩包“ASP.NET源码——[图片动画]flex图片上传带预览功能.zip”显然是一个用于展示如何在ASP.NET环境中实现图片上传并带有预览功能的示例代码。 Flex是Adobe公司推出的一种用于创建富互联网应用(RIA)的开发...

    ColdFusion Flex intergeration demo 1

    《ColdFusion与Flex集成应用探索——以"ColdFusion Flex intergeration demo 1"为例》 在当今的Web开发领域,ColdFusion和Flex是两种强大的技术,它们分别在服务器端和客户端展现出了各自的优势。ColdFusion,由...

    flex4组建以及DEMO实例.安装序列号

    Spark组件基于Flex4的图形渲染引擎——Gumbo,允许开发者自定义组件外观和行为,提供了更丰富的UI设计可能性。例如,Button、Label、Accordion、TabNavigator等都是常用的Spark组件,它们可以通过MXML或ActionScript...

    FLEX通过JSP与数据库交互

    为了解决FLEX无法直接与数据库通信的问题,可以采用以下方法:通过HTTPService组件向JSP页面发送请求,由JSP页面处理这些请求并与数据库进行交互。这种方法不仅解决了跨平台问题,还能够利用Java强大的后端处理能力...

    flex 教程 flex 自学完成手册

    7. **服务调用**:Flex可以方便地与后端服务器通信,如使用HTTPService、WebService或AMF服务来获取或提交数据。理解XML、JSON数据格式的处理和序列化。 8. **图形和动画**:Flex支持基本的绘图和动画功能,你可以...

    SAP Web Dynpro Java集成FLEX应用分析.pdf

    Flex的整体架构包括一个开发IDE——FlexBuilder,它有自己的类库框架(Flex Framework)、组件(Components)以及用于服务器通信的中间件(LiveCycle Data Services ES)。Flex应用由MXML、ActionScript和Flex Class ...

    flex学习的资料文档

    在Flex中,事件是组件间通信的主要方式。事件包括用户交互事件(如click、focusIn)、数据改变事件(如dataChange)等。通过添加事件监听器,你可以编写处理这些事件的函数。例如,为Button组件添加点击事件监听器,...

    flex + ssh框架 结合例子

    在Flex中,通过HTTPService或WebService调用这些接口,实现客户端与服务端的通信。Spring的AOP特性可以用来处理事务管理和其他跨切面关注点。 3. **Struts集成**:Struts通常用于处理HTTP请求和响应,提供...

    Flex+java+mySQL(blazds链接方法)

    2. **Flex客户端设置**:在Flex项目中,你需要引入相应的Flex SDK和BlazDS的SWC库。在.mxml或.as文件中,通过HTTPService或WebService组件来调用Java服务。 3. **数据通道**:BlazDS提供了两种主要的数据通道——...

    Flex 3 RIA开发详解与精深实践

    《Flex 3 RIA开发详解与精深实践——企业级Web应用与AIR桌面应用》一书深入探讨了Flex 3在实际项目中的应用,涵盖了从基础到高级的各种技术,包括组件设计、数据绑定、服务集成、动画效果以及Adobe AIR的桌面应用...

    Flex的LCDS服务器架构

    LCDS客户端架构包含了几个关键的Flex组件,如RemoteObject、HTTPService、WebService、Producer、Consumer和DataService。其中,RemoteObject、Producer和Consumer是在Flex SDK的rpc.swc组件库中,而DataService则在...

Global site tag (gtag.js) - Google Analytics