`

Flex入门-Flex整合Servlet

    博客分类:
  • Flex
阅读更多

Flex入门-Flex整合Servlet
工具 :
Adobe Flash Builder 4 , NetBeans IDE 6.8 , Tomcat6.0
目的 : 主要是编写Flex入门程序,通过页面发起调用服务器的Servlet,从服务器获取数据在页面中动态显示的功能.
步骤 :
一 . Flex端:
新建Flex工程Flex2Servlet , 修改默认包下的Flex2Servlet.mxml文件
使界面调整如下:


  
用户选择下拉框,触发事件,访问服务器,获取数据,显示在下面的TextArea中.
Flex2Servlet.mxml代码如下:

<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute"
    creationComplete="init()">
 <mx:Script>
  <![CDATA[
   import mx.rpc.events.ResultEvent;
   import mx.rpc.events.FaultEvent;
   import com.ibm.flex.J2eeServer;
   import mx.collections.ArrayCollection;
   /**
    * 声明的J2eeServer,自定义的as文件.
    */
   private var jserver:J2eeServer = new J2eeServer();
   //可绑定变量
   [Bindable]
   private var serverResponse:String = "";
   //可绑定变量
   [Bindable]
   private var locales:ArrayCollection = new ArrayCollection(
    [ {label:"en_us", data:"en_us"}, 
     {label:"zh_cn", data:"zh_cn"}]); 
   
   private function init():void
   {
    //事件绑定
    jserver.addEventListener(ResultEvent.RESULT, successHandler);
    jserver.addEventListener(FaultEvent.FAULT, errorHandler);
   }
   /***
    * 下拉框的时间处理,选择一个选项时触发
    */
   private function localeComboxChangeHandler(event:Event):void
   {
    jserver.sendRequest(localeCombox.selectedItem.data);
   }
   
   /**
    * 处理成功返回数据时Flex的处理
    */
   private function successHandler(event:ResultEvent):void
   {
    serverResponse = event.result.toString();
    /***TextArea的ID为greatwqs选项,把服务器端返回的数据,显示在TextArea中***/
    greatwqs.text=serverResponse;
    trace(event.result);
   }
   /***
    * 错误处理
    */ 
   private function errorHandler(event:FaultEvent):void
   {
    serverResponse = event.message.toString();
    trace(event.message);
   }
  ]]>
 </mx:Script>
 <mx:VBox width="345" height="193">
  <mx:Label text="Select your locale:" />
  <mx:ComboBox 
   id="localeCombox" 
   width="160" 
   dataProvider="{locales}" 
   change="localeComboxChangeHandler(event)"/>
  <mx:Label 
   id="greatwqs11111"
   text="The response from server is: {serverResponse}" />        
  <mx:Label text="返回的数据为:" width="147" color="#F61010" fontWeight="bold"/>
  <mx:TextArea id="greatwqs" width="221"/>
 </mx:VBox>
</mx:Application>

 

新建包com.ibm.flex,新建as文件类J2eeServer.as
J2eeServer.as代码

 

package com.ibm.flex{
 import flash.events.EventDispatcher;
 import mx.rpc.AsyncToken;
 import mx.rpc.events.FaultEvent;
 import mx.rpc.events.ResultEvent;
 import mx.rpc.http.HTTPService; 
 public class J2eeServer extends EventDispatcher{
  public function J2eeServer(){}  
  public function sendRequest(locale:String):void{
   var httpObject:HTTPService = new HTTPService();
   httpObject.resultFormat = "text";
   httpObject.url = "http://localhost:8084/Flex/SampleServlet?locale="+locale;
   var responder:mx.rpc.Responder = new mx.rpc.Responder(onSuccess, onFault);
   var call:AsyncToken = httpObject.send();
   call.addResponder(responder);
   var iiii:String = "";
  }
  private function onSuccess(event:ResultEvent):void{
   this.dispatchEvent(event);   
  }  
  private function onFault(event:FaultEvent):void{
   trace("communication failed!");
   this.dispatchEvent(event); 
  }
 }
}

 


  运行Flex程序,菜单run-->运行-->Flex2Servlet
  调用浏览器,生成Flash,界面如上图.

 

二 . Servlet 端


新建web工程-"Flex",Servlet代码:

package com.ibm.sample;

import java.io.IOException;
import java.io.PrintWriter;

import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

public class SampleServlet extends HttpServlet {

    private static final long serialVersionUID = 1L;

    public SampleServlet() {
        super();
    }

    protected void doGet(HttpServletRequest request,
            HttpServletResponse response) throws ServletException, IOException {
        doPost(request, response);
    }

    protected void doPost(HttpServletRequest request,
            HttpServletResponse response) throws ServletException, IOException {
        String locale = request.getParameter("locale");
        response.setContentType("text/html");
        PrintWriter out = response.getWriter();
        out.println("The locale you selected is " + locale);
    }
}

 

配置web.xml,web.xml代码:

 

<?xml version="1.0" encoding="UTF-8"?>
<web-app id="WebApp_ID" version="2.4" xmlns="http://java.sun.com/xml/ns/j2ee"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee
        http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd">
    <display-name>FlexSample</display-name>
    <servlet>
        <display-name>SampleServlet</display-name>
        <servlet-name>SampleServlet</servlet-name>
        <servlet-class>com.ibm.sample.SampleServlet</servlet-class>
    </servlet>
    <servlet-mapping>
        <servlet-name>SampleServlet</servlet-name>
        <url-pattern>/SampleServlet</url-pattern>
    </servlet-mapping>
    <welcome-file-list>
        <welcome-file>index.jsp</welcome-file>
    </welcome-file-list>
</web-app>

 

三 . 部署

    部署web工程Flex , Flash Buider运行Flex程序.
测试效果,服务器已经正常返回数据:



 

 

四 . 尾注 :

 

同事做的Flex很多,花样很多,做为入门,实现一个简单的交互例子.
1 . Flex可以直接在本地执行,如我直接在E:\开发环境\Flex_ch\Flex2Servlet\bin-debug\Flex2Servlet.html查看效果.这个是我没有想到的.可以脱离容器(如Tomcat)与服务器交互.
2 . Flex只是一个与服务器的一个简单的请求和相应的过程,无SESSION的存在,需要则自身手动写SESSION相关代码(HashMap实现)
3 . 感叹一下Flex的界面开发非常顺手,运行效果和开发效果基本无很大变化,很好!Android运行效果和开发的效果区别很大.
4 . 后面的Flex的Json,xml包熟悉,控件的学习还需时日.后面有时间再研究了.
5 . IBM开发者论坛很不错 , 但是缺少一个很好的导航功能 , Flex入门找了半天.https://www.ibm.com/developerworks/cn/web/wa-lo-flexdev/

 

 

附上Netbeans和Flex源码:Flex.zip

  • 大小: 12.2 KB
  • 大小: 15.7 KB
2
0
分享到:
评论

相关推荐

    java整合flex开发应用

    【标题】:“Java 整合 Flex 开发应用” 在IT领域,Java与Flex的整合是构建富互联网应用程序(RIA)的一种常见...通过阅读这个博客和附件,开发者可以获得从理论到实践的全面指导,提升在Java和Flex整合开发中的技能。

    flex flex和 java交互

    标题"flex 和 java交互"指出了一个关键的技术融合,即Flex与Java的整合,允许Flex前端与Java后端进行数据和功能的通信。这种交互通常是通过AMF(Action Message Format)协议实现的,它提供了一种高效的数据序列化...

    Flex+LCDS+Java入门教程

    本教程旨在帮助初学者了解如何创建Flex与LCDS相结合的工程项目,并通过整合和部署J2EE项目与LCDS项目来实现简单功能。教程通过图文并茂的方式,详细介绍了创建项目的步骤以及如何使用RemoteObject进行简单的请求和...

    Flex 整合java基础资料

    【Flex 整合Java基础资料】是一份针对初学者的指南,主要介绍如何将Adobe Flex与Java技术结合,实现客户端与服务器端的数据交互。Flex是一种用于构建富互联网应用程序(RIA)的开发框架,而Java则提供了强大的后端...

    Flex + LCDS + Java 入门教程

    ### Flex + LCDS + Java 入门教程详解 #### 一、引言 随着技术的发展,Flex、LCDS以及Java的结合为开发者提供了一种高效且功能强大的开发框架。Flex是一种用于构建美观、高效的富互联网应用程序(RIA)的开源框架,...

    eclipse flex集成web项目

    压缩包子文件的文件名称“Flex+++LCDS(Blazeds)+++Java+入门教程.doc”揭示了压缩包内容的重点。LCDS(LiveCycle Data Services,现更名为Blazeds)是Adobe提供的一个中间件,它使得Flex客户端可以与Java服务器进行...

    blazeds4整合spring3

    把要用blazeds公开给flex的java方法配置在flex-servlet.xml中 把spring整合其它框架的方法的配置放在spring文件夹中。 很有条理 用remoteObject做的helloWorld。 适合新手入门和老手改用spring3来做项目。 如要交流...

    Flex+LCDS+Java+入门教程

    10. **案例分析**:通过实际案例来演示Flex、LCDS和Java的整合,帮助你更好地理解和应用这些技术。 这个入门教程将引导你逐步掌握Flex、LCDS和Java的综合运用,为开发高质量的RIA应用打下坚实的基础。通过深入学习...

    Spring攻略(第二版 中文高清版).part2

    10.1 Flex入门 388 10.1.1 问题 388 10.1.2 解决方案 388 10.1.3 工作原理 388 10.2 离开沙箱 393 10.2.1 问题 393 10.2.2 解决方案 394 10.2.3 工作原理 394 10.3 为应用添加Spring BlazeDS支持 ...

    Spring攻略(第二版 中文高清版).part1

    10.1 Flex入门 388 10.1.1 问题 388 10.1.2 解决方案 388 10.1.3 工作原理 388 10.2 离开沙箱 393 10.2.1 问题 393 10.2.2 解决方案 394 10.2.3 工作原理 394 10.3 为应用添加Spring BlazeDS支持 ...

Global site tag (gtag.js) - Google Analytics