Comenzar a manejar datos de formularios

Aprende a crear un formulario HTML que utilice el método HTTP POST para enviar datos proporcionados por el usuario a un Servlet de Java ejecutado en App Engine.

Antes de comenzar

Configura tu entorno de programación y crea tu proyecto de App Engine.

Crear un formulario

Crea a un formulario HTML con JavaServer Pages (JSP).

El siguiente código JSP genera un formulario para crear una entrada de blog. El código toma tres campos de ingreso de texto, title, author y content, y tiene un botón Save que envía los datos al 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>

Este formulario envía los datos de formulario al controlador en la URL /create. Debes usar la funcionalidad escapeXml de JSP para realizar el recuento de ataques a secuencias de comandos entre sitios (XSS), como se muestra en el fragmento del código. Las instrucciones para crear el controlador del código se muestran a continuación.

Manejar datos de formulario

Un controlador de formularios maneja los datos del formulario una vez que el usuario los envía. En el siguiente fragmento, el controlador de formulario es un servlet llamado 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.");
  }
}

Ten en cuenta la anotación @WebServlet(name = "createBlogPost", value="/create"), que asigna el servlet al URI donde se manejan las solicitudes: /create. Para los desarrolladores familiarizados con el entorno de ejecución Java 7 de App Engine, esta anotación reemplaza las asignaciones creadas anteriormente en el archivo web.xml.

Implementar en App Engine

Puedes implementar tu aplicación en App Engine con Maven.

Ve al directorio raíz de tu proyecto y escribe:

mvn appengine:deploy

Luego de que Maven implemente tu app, escribe lo siguiente para abrir una pestaña del navegador web de forma automática en tu nueva app:

gcloud app browse

Pasos siguientes

Como una extensión del manejo de los datos del usuario, es posible que desees utilizar Cloud SQL, Cloud Datastore o Cloud Storage para almacenar datos:

¿Te ha resultado útil esta página? Enviar comentarios:

Enviar comentarios sobre...

Entorno estándar de App Engine para Java 8