開始使用:處理表單資料

瞭解如何建立使用 HTTP POST 方法的 HTML 表單,以將使用者提供的資料提交至在 App Engine 上執行的 Java Servlet。

事前準備

設定開發環境及建立 App Engine 專案

建立表單

使用 JavaServer Pages (JSP) 建立 HTML 表單。

下方的 JSP 程式碼可產生用於建立網誌文章的表單。程式碼有三個文字輸入欄位:titleauthorcontent,另有一個 Save 按鈕,可以將資料提交至 Servlet:

<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/functions" prefix="fn"%>
<div class="container">
  <h2>
    Create a new blog post
  </h2>

  <form method="POST" action="/create">

    <div>
      <label for="title">Title</label>
      <input type="text" name="title" id="title" size="40" value="${fn:escapeXml(blog.title)}" class="form-control" />
    </div>

    <div>
      <label for="author">Author</label>
      <input type="text" name="author" id="author" size="40" value="${fn:escapeXml(blog.author)}" class="form-control" />
    </div>

    <div>
      <label for="description">Post content</label>
      <textarea name="description" id="description" rows="10" cols="50" class="form-control">${fn:escapeXml(blog.content)}</textarea>
    </div>

    <button type="submit">Save</button>
  </form>
</div>

這份表單可將表單資料傳送到位於 /create 網址的處理常式。您應使用 JSP 的 escapeXml 功能來抵制跨網站指令碼攻擊 (XSS),如下方的程式碼片段所示。後續章節將提供建立表單處理常式的操作說明。

處理表單資料

使用者提交表單資料之後,資料會交由表單處理常式處理。在下方的程式碼片段中,表單處理常式是一個名為 createBlogPost 的 Servlet:

import java.io.IOException;
import java.io.PrintWriter;
import javax.servlet.annotation.WebServlet;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

@SuppressWarnings("serial")
@WebServlet(name = "createBlogPost", value="/create")
public class createBlogPost extends HttpServlet {

  @Override
  public void doPost(HttpServletRequest req, HttpServletResponse resp)
      throws ServletException, IOException {

    PrintWriter out = resp.getWriter();

    out.println(
        "Article with the title: " + req.getParameter("title") + " by "
            + req.getParameter("author") + " and the content: "
            + req.getParameter("description") + " added.");
  }
}

請留意註解 @WebServlet(name = "createBlogPost", value="/create");這個註解可將 Servlet 對應到要在其中處理要求的 URI:/create。對於熟悉 App Engine Java 7 執行階段的開發人員而言,這個註解能夠取代先前在 web.xml 檔案中完成的對應工作。

部署至 App Engine

您可以透過 Maven 將應用程式部署至 App Engine。

請前往專案的根目錄,並輸入以下內容:

mvn appengine:deploy

請在 Maven 部署應用程式後輸入下列指令,以便在新的應用程式中自動開啟網路瀏覽器分頁:

gcloud app browse

後續步驟

如要進一步處理使用者資料,您可以使用 Cloud SQL、Cloud Datastore 或 Cloud Storage 來儲存資料:

本頁內容對您是否有任何幫助?請提供意見:

傳送您對下列選項的寶貴意見...

這個網頁
Java 適用的 App Engine 標準環境