Google Code 提供下列語言介面: English - Español - 日本語 - 한국어 - Português - Pусский - 中文(简体) - 中文(繁體)
「應用服務引擎 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/ 目錄所包括的新專案範本。
「應用服務引擎 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");
}
}
當網頁伺服器收到要求時,這個檔案會使用一般稱為「網路應用程式部署描述元」的設定檔,判斷要呼叫的 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,與 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 帳戶」的訪客自訂問候訊息。
繼續瀏覽「運用使用者服務」一節。