Premiers pas : Gérer des données de formulaire

Découvrez comment créer un formulaire HTML utilisant la méthode POST HTTP pour envoyer des données fournies par l'utilisateur à un servlet Java exécuté sur App Engine.

Avant de commencer

Configurez votre environnement de développement et créez un projet App Engine.

Créer un formulaire

Créez un formulaire HTML à l'aide des pages JavaServer (JSP).

Le code JSP suivant génère un formulaire permettant de créer un article de blog. Il inclut trois champs de saisie de texte, title, author et content et dispose d'un bouton Save permettant d'envoyer les données au 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>

Ce formulaire envoie les données du formulaire au gestionnaire à l'URL /create. Vous devez utiliser la fonctionnalité escapeXml de JSP pour contrer les attaques de cross-site scripting (XSS), comme indiqué dans l'extrait de code. Les instructions ci-dessous permettent de créer le gestionnaire de formulaire.

Gérer les données de formulaire

Une fois les données du formulaire envoyées par l'utilisateur, celles-ci sont gérées par un gestionnaire de formulaire. Dans l'extrait de code ci-dessous, le gestionnaire de formulaire est un servlet nommé 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.");
  }
}

Notez l'annotation @WebServlet(name = "createBlogPost", value="/create"), qui mappe le servlet sur l'URI où il gère les requêtes : /create. Pour les développeurs familiarisés avec l'environnement d'exécution Java 7 d'App Engine, cette annotation remplace les mappages effectués auparavant dans le fichier web.xml.

Déployer sur App Engine

Vous pouvez déployer votre application sur App Engine à l'aide de Maven.

Accédez au répertoire racine de votre projet, puis saisissez la commande suivante :

mvn appengine:deploy

Lorsque Maven a déployé votre application, saisissez la commande ci-dessous pour ouvrir un onglet de navigateur Web automatiquement dans votre nouvelle application :

gcloud app browse

Étape suivante

En tant qu'extension de la gestion des données utilisateur, vous pouvez utiliser Cloud SQL, Cloud Datastore ou Cloud Storage pour stocker les données :