Welcome

首页 / 软件开发 / Flex / 基于flex4技术从零开发flex博客系统:2 与servlet服务端交互

基于flex4技术从零开发flex博客系统:2 与servlet服务端交互2010-04-20 cnblogs sban上一节课,我们讲了如何配置开发环境,包括客房端flex开发环境,以及服务端java开发环境,并且编写了一个客房端示例程序helloworld,但遗憾的是,目前这一个helloworld不是动态的。如果客户端不能与服务端进行数据交互,那么我感觉我的flex还没有真正入门。

一,Google App项目目录结构及配置说明

我审视了一下eclipse为我创建的gapp_flexblog项目,它包括以下目录结构:

Guestbook/
src/
…Java source code…
META-INF/
…other configuration…
war/
…JSPs, images, data files…
WEB-INF/
…app configuration…
lib/
…JARs for libraries…
classes/
…compiled classes…

1,src下有我提定的sban.flexblog命名空间目录,有一些*.java文件,看样子这里是存放源文件的。从名称也可以看出。

2,src/META-INF/jdoconfig.xml是jdo配置文件,暂时还用不到它。

3,war是java web应用程序的一种标准打包格式,Google App Engine采用这种通用格式将应用程序布署到容器中。

3.1,war/lib目录下放置jar文件。jar是Java Archive File的缩写,是一种java文档,是编译之后类库集合。flex library project编译之后产生的swc文件,与此相仿。

3.2,war/WEB-INF用于放置一些配置文件。web.xml是web应用配置文件,用于定义Servlet与url的映射,主页列表,过 滤器与安全约束条件等。

在web.xml中,以下片段用于定义一个servlet name到一个servlet class的映射:

<servlet>
<servlet-name>helloWorld</servlet-name>
<servlet-class>sban.flexblog.server.HelloWorldServlet</servlet-class>
</servlet>

而此时,如果我们再定义一个url到该servlet name的映射,访问这个url,控制权便交由sban.flexblog.server.HelloWorldServlet处理:

<servlet>
<servlet-name>helloWorld</servlet-name>
<url-pattern>/gapp_flexblog/hello</url-pattern>
</servlet>

思考问题1:如果我们直接定义一个url到servlet class的映射,是否也可以?

二,动态的hello world应用

在sban.flexblog.server下新建一个HelloWorldServlet类,代码如下:

package sban.flexblog.server;

import java.io.IOException;
import javax.servlet.http.*;

public class HelloWorldServlet extends HttpServlet {
public void doGet(HttpServletRequest req, HttpServletResponse resp)
throws IOException
{
String[] name = req.getParameterValues("name");
resp.setContentType("text/plain");
resp.getWriter().println("Hi " + name[0] + ",Hello, world.");
}
}

这个类继承于HttpServlet,覆盖doGet方法,用于处理http get请求。让它处理来自于/gapp_flexblog/hello的url,在web.xml添加如下配置片段:

<servlet>
<servlet-name>helloWorld</servlet-name>
<servlet-class>sban.flexblog.server.HelloWorldServlet</servlet-class>
</servlet>

<servlet-mapping>
<servlet-name>helloWorld</servlet-name>
<url-pattern>/gapp_flexblog/hello</url-pattern>
</servlet-mapping>

启动gapp_flexblog项目,我们web server运行正常:

如果你安装了curl,现在就可以用它测试HelloWorldServlet类是否工作正常,打开cmd,输入:

curl http://localhost:8080/gapp_flexblog/hello?name=sban

返回的结果如下: