My favorites | 中文(繁體) | Sign in
英文版或許有比此中譯版新的內容

建立專案

「應用服務引擎 Java」應用程式使用Java Servlet 標準與網頁伺服器環境互動。包括編譯類別、JAR、靜態檔案和設定檔在內的應用程式檔案會以目錄結構呈現,並採用 Java 網路應用程式的 WAR 標準配置。您可以使用任何偏好的開發程序來開發網路 servlet 並產生 WAR 目錄。(SDK 尚未支援 WAR 封存檔案)。

專案目錄

在這個教學課程中,我們將使用 Guestbook/ 目錄存放所有的專案檔案。src/ 子目錄專門存放 Java 原始程式碼,而 war/ 子目錄則專門存放 WAR 格式的完整應用程式。我們的建置程序會編譯 Java 來源檔案,再將完成編譯的類別放到 war/ 中的適當位置。

完整專案目錄的結構如下:

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...

如果您使用的是 Eclipse,請按一下工具列上的 [New Web Application Project] (新建網路應用程式專案) 按鈕來建立專案:新建網路應用程式專案。 將專案的 [Project name] (專案名稱) 設為 Guestbook,再將 [Package] (套件) 設為 guestbook。取消勾選 [Use Google Web Toolkit] (使用 Google Web Toolkit),然後勾選 [Use Google App Engine] (使用 Google 應用服務引擎)。如需詳細資訊,請參閱「使用 Eclipse 專用的 Google 外掛程式」。精靈會建立目錄結構以及下述檔案。

如果您使用的不是 Eclipse,請建立上述的目錄結構。您可以一邊閱讀此處所述的每個檔案,一邊使用指定的位置與名稱建立檔案。

您也可以複製 SDK 的 appengine-java-sdk/demos/new_project_template/ 目錄所包括的新專案範本。

Servlet 類別

「應用服務引擎 Java」應用程式使用 Java Servlet API 與網頁伺服器互動。HTTP servlet 是一種應用程式類別,可處理以及回應網路要求。這個類別會擴充 javax.servlet.GenericServlet 類別或 javax.servlet.http.HttpServlet 類別。

一開始,我們的訪客留言板專案會使用 servlet 類別,這是一個顯示訊息的簡單 servlet。

如果您使用的不是 Eclipse 外掛程式,請為路徑 src/guestbook/ 建立目錄,再建立下方的 servlet 類別檔案。

src/guestbook/ 目錄中,GuestbookServlet.java 檔包含下列內容:

package guestbook;

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

public class GuestbookServlet extends HttpServlet {
    public void doGet(HttpServletRequest req, HttpServletResponse resp)
            throws IOException {
        resp.setContentType("text/plain");
        resp.getWriter().println("Hello, world");
    }
}

web.xml 檔

當網頁伺服器收到要求時,這個檔案會使用一般稱為「網路應用程式部署描述元」的設定檔,判斷要呼叫的 servlet 類別。該設定檔名稱為 web.xml,存放在 WAR 中的 war/WEB-INF/ 目錄。WEB-INF/web.xml 均為 servlet 規格。

war/WEB-INF/ 目錄中,web.xml 檔包含下列內容:

<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE web-app PUBLIC
 "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN"
 "http://java.sun.com/dtd/web-app_2_3.dtd">

<web-app xmlns="http://java.sun.com/xml/ns/javaee" version="2.5">
    <servlet>
        <servlet-name>guestbook</servlet-name>
        <servlet-class>guestbook.GuestbookServlet</servlet-class>
    </servlet>
    <servlet-mapping>
        <servlet-name>guestbook</servlet-name>
        <url-pattern>/guestbook</url-pattern>
    </servlet-mapping>
    <welcome-file-list>
        <welcome-file>index.html</welcome-file>
    </welcome-file-list>
</web-app>

web.xml 檔會宣告名稱為 guestbook 的 servlet,然後將其對應至 URL 路徑 /guestbook。當使用者擷取的 URL 路徑尚未對應至 servlet,且代表應用程式的 WAR 目錄路徑時,這個檔案也會指示伺服器在該目錄中尋找 index.html 檔,並於找到時予以提供。

appengine-web.xml 檔

「應用服務引擎」需要一個額外的設定檔,以瞭解如何部署與執行應用程式。該檔案名稱為 appengine-web.xml,與 web.xml 一樣存放在 WEB-INF/ 中。它包括應用程式的註冊 ID (Eclipse 會建立空白 ID 供您稍後填入)、應用程式的版本號碼、應視為靜態檔案的檔案清單 (例如影像和 CSS),以及資源檔案 (例如 JSP 和其他的應用程式資料)。

war/WEB-INF/ 目錄中,appengine-web.xml 檔包含下列內容:

<?xml version="1.0" encoding="utf-8"?>
<appengine-web-app xmlns="http://appengine.google.com/ns/1.0">
    <application></application>
    <version>1</version>
</appengine-web-app>

appengine-web.xml 僅供「應用服務引擎」使用,且不屬於 servlet 標準。您可以在 SDK 的 appengine-java-sdk/docs/ 目錄中,找到描述這個檔案格式的 XML 結構檔。如需這個檔案的詳細資訊,請參閱「設定應用程式」。

執行專案

「應用服務引擎 SDK」包括一個網頁伺服器應用程式,可用於測試您的應用程式。該伺服器會模擬「應用服務引擎」環境和服務,包括沙箱限制、資料存放區和服務。

如果您使用的是 Eclipse,您可以在 Eclipse 除錯器中啟動開發伺服器。在 [Run] (執行) 功能表中,選取 [Debug As] (除錯方式) > [Web Application] (網路應用程式)。(如果您找不到這個功能表選項,請選取 [Window] (視窗) 功能表 > [Reset Perspective...] (重設視景...),按一下 [OK] (確定),然後再次嘗試 [Run] (執行) 功能表)。如需進一步瞭解如何建立除錯設定,請參閱使用 Eclipse 專用的 Google 外掛程式

如果您使用的不是 Eclipse,請參閱「使用 Apache Ant」,以取得建置專案與啟動開發伺服器的建置指令碼。如要使用這個建置指令碼啟動伺服器,請輸入此命令:ant runserver;如要停止伺服器,請按下 Ctrl-C。

測試應用程式

啟動伺服器,然後透過您的瀏覽器開啟下列 URL:

伺服器會呼叫 servlet,並在瀏覽器中顯示訊息。

接下來...

您現在已經有了完整的「應用服務引擎」應用程式!您可以立即部署這個簡單的訊息應用程式,與全世界的使用者分享您的成果。

這個應用程式會對所有使用者顯示相同的一般問候訊息。讓我們新增功能,為每位使用「Google 帳戶」的訪客自訂問候訊息。

繼續瀏覽「運用使用者服務」一節。