与服务端通信  第一节   通过Http Service与服务端通信
        在此,我们将利用 Flash Builder 4 带给我们的新特性——“数据/服务/控件绑定”,通过 Http Service 来实现客户端与服务端之间的通信。
        

学习目标

        先来看看我们最终要实现什么:

        在文本框输入字符串“Sakura Momoko”,点击“send”按钮。客户端通过 Http Service 将字符串“Sakura Momoko”发送到服务端,服务端收到该字符串后返回一条欢迎信息。 (图六十二)

图六十三

Dynamic Web Project

        

准备工作

        工欲善其事必先利其器,本节使用 Java Servelt 实现服务端的 Http Service,因此我们要准备相关的 Java 开发工具,以及 Servlet 容器同时,希望本节的读者对 Java Servlet 有一定的了解。

工具下载:
Java 开发工具:Eclipse 3.4
Servlet 容器  :Tomcat 6.0

实现步骤

        接下去我们就一步步的来实现这一应用。

服务端:

1、首先使用 Eclipse 3.4 建立一个 Dynamic Web Project 来实现一个简单的 servlet ,工程结构如下图所示。 (六十三)

图六十四

新建Flex项目

2、编写 servelt 实现类“HelloWorldServlet.java”。
package cn.airia.fb4.servlet;
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 HelloWorldServlet extends HttpServlet {
         private static final long serialVersionUID = -5257137507666663400L;
         @Override
         protected void doPost(HttpServletRequest req, HttpServletResponse resp)
                          throws ServletException, IOException {
                 String name = req.getParameter("name");
                 PrintWriter pw = resp.getWriter();
                 pw.write("hello "+name+",welcome to Flash Builder's world");
                 pw.close();
         }

}

3、配置“web.xml”文件。

<?xml version="1.0" encoding="UTF-8"?>

<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"

xmlns="http://java.sun.com/xml/ns/javaee"

xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"

xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"

id="WebApp_ID" version="2.5">

  <display-name>HttpService</display-name>

  <servlet>

         <servlet-name>helloWorld</servlet-name>

         <servlet-class>cn.airia.fb4.servlet.HelloWorldServlet</servlet-class>

  </servlet>

  <servlet-mapping>

         <servlet-name>helloWorld</servlet-name>

         <url-pattern>/hello.do</url-pattern>

  </servlet-mapping>

</web-app>

 

4、启动 web 容器 ,这里使用的是 Tomcat 6.0,在浏览器地址栏输入“http://localhost:8080/HttpService/hello.do”,若浏览器显示“hello null,welcome to Flash Builder's world”则表示服务端工作完成。

 

客户端:

1、新建一个 Flex 项目。 (图六十四)

图六十五

新建Flex项目

2、为项目起名“HelloWorld”后按“完成”。 (图六十五)

图六十六

设计界面

3、在“HelloWorld.mxml”的“Design”视图中拖拉控件,绘制界面。这里用到的控件有 TextInput、Button、以及 Label。 (图六十六)

图六十七

连接Http

4、接下来几步就是本文的核心内容了,实现数据服务绑定的设置都在这里,是 Flash Builder 4 中特有的新功能,请同学们注意观看。点击菜单栏“数据”项,在下拉菜单中选择“连接Http…”(即 “连接Httpservice”)。 (图六十七)

图六十八

配置HTTP服务

5、在弹出窗口中进行如下设置。 (图六十八)

6、在“数据/服务”视图中操作的配置返回类型。

图七十

选择String类型

这里我们选择第二项“已经存在的 ActionScript 数据类型或者是之前已经自定义的类型”,选择“String”类型。 (图七十)

7、回到界面的“Design”视图,选中“Button”组件,在“属性”面板中对其进行设置,点击        选择单击时“生成服务调用”。 (图七十一)

图七十一

生成服务调用

在弹出窗口中进行如下设置后“确定“。

8、此时界面跳转至“Source”视图,函数的参数“name”呈高亮显示。

我们将这个“name”设置为 TextInput 控件的内容(为 TextInput 控件设置一个标示,这里起名为“textInputName”)。

9、接下去将返回的结果与 Label 控件进行绑定,选中 Label 后,在“属性”面板中点击“超链接”图标。 (图七十四)

图七十四

文本超链接

在弹出窗体中进行如下设置后点击“确定”按钮。 (图七十五)

图七十五

绑定到数据

10、编码结束(其实我们基本没有手动编写代码噢 :) ),运行我们的程序看看效果吧

图六十二

服务端返回欢迎信息

总结

本节教会了大家使用 Flash Builder 4 中新的“数据服务与组件绑定”解决方案中的 Http Service 方式来进行快速开发,同学们可以发现这种方式几乎不必编写任何代码,减轻了程序员的工作,同时也提高了开发效率,非常适合新人上手。但是这里我同样要指出的是,这种傻瓜式的开发方式也会使自动生成代码过于冗余,对今后的代码维护造成不便,另外组件与服务的直接绑定也会造成项目代码的层次结构不清等等诸多不良影响。

思考