基於flex4技術從零開發flex部落格系統:2 與servlet服務端互動

來源:互聯網
上載者:User

上一節課,我們講了如何配置開發環境,包括客房端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

返回的結果如下:

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.