Erste Schritte: Formulardaten verarbeiten

Erfahren Sie, wie Sie ein HTML-Formular erstellen, für das die Methode HTTP POST verwendet wird, um von Nutzern bereitgestellte Daten an ein Java-Servlet zu senden, das auf der App Engine ausgeführt wird.

Hinweis

Konfigurieren Sie Ihre Entwicklungsumgebung und erstellen Sie Ihr App Engine-Projekt.

Formular erstellen

Erstellen Sie mit JavaServer Pages (JSP) ein HTML-Formular.

Mit dem folgenden JSP-Code wird ein Formular zum Erstellen eines Blogposts erzeugt. Es enthält drei Texteingabefelder, title, author und content sowie die Schaltfläche Save mit der die Daten an das Servlet übertragen werden:

<%@ 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>

Mit diesem Formular werden die Formulardaten an den Handler unter der URL /create gesendet. Sie sollten, wie im Code-Snippet gezeigt, die Funktion escapeXml von JSP nutzen, um Cross-Site-Scripting-Angriffe (XSS) abzuwehren. Im Folgenden finden Sie eine Anleitung zum Erstellen des Formular-Handlers.

Formulardaten verarbeiten

Sobald der Nutzer die Formulardaten überträgt, werden diese von einem Formular-Handler verarbeitet. Im folgenden Snippet ist der Formular-Handler ein Servlet mit dem Namen createBlogPost:

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.");
  }
}

Beachten Sie die Annotation @WebServlet(name = "createBlogPost", value="/create"), mit der das Servlet dem URI zugeordnet wird, an dem die Anfragen verarbeitet werden: /create. Für Entwickler, die mit der Java 7-Laufzeit von App Engine vertraut sind, ersetzt diese Annotation die Zuordnungen, die früher über die Datei web.xml erfolgten.

In App Engine bereitstellen

Sie können Ihre Anwendung mithilfe von Maven in App Engine bereitstellen.

Wechseln Sie zum Stammverzeichnis Ihres Projekts und geben Sie Folgendes ein:

mvn package appengine:deploy -Dapp.deploy.projectId=PROJECT_ID

Ersetzen Sie PROJECT_ID durch die ID Ihres Google Cloud-Projekts. Wenn in der Datei pom.xml bereits Ihre Projekt-ID angegeben ist, müssen Sie das Attribut -Dapp.deploy.projectId nicht in dem von Ihnen ausgeführten Befehl einfügen.

Nachdem Ihre Anwendung von Maven bereitgestellt wurde, sollte automatisch ein Webbrowser-Tab in Ihrer neuen Anwendung geöffnet werden. Geben Sie dazu Folgendes ein:

gcloud app browse

Weitere Informationen

Nachdem die Nutzerdaten verarbeitet wurden, möchten Sie sie vielleicht auch noch mit Cloud SQL, Cloud Datastore oder Cloud Storage speichern: