BandaAncha

  • 🔍 en 📰 artículos ⏎
  • 🔍 en 💬 foros ⏎
  • 🔍 en 👇 este 💬 foro ⏎
  • 🔍 en 👇 este 💬 tema ⏎
Regístrate Regístrate Identifícate Identifícate

Servlet doGet - Comprobar errores --> cargar misma página

BocaDePez

Hola, estoy intentando hacer la típica función de registrar un usuario con JSP y Java. El caso es que cuando llamo a doGet, compruebo si el usuario ya existe en la base de datos y, en tal caso, se devuelve un error. Hasta aquí todo correcto, sin embargo, cuando devuelvo el error, éste se pinta en una pantalla nueva, pero lo que quiero es volver a cargar la página de registro con todos los datos que ya había introducido el usuario para que los modifique y vuelva a intentar el registro y esto sí que no sé cómo hacerlo.

El código que utilizo es el siguiente:

FUCIÓN JAVA (SERVLET)
=====================

package webpkg;

import java.io.*;
import javax.servlet.*;
import javax.servlet.http.*;

public class RegistroUsuario extends HttpServlet {
    private static final String CONTENT_TYPE = "text/html; charset=UTF-8";

    public void init(ServletConfig config) throws ServletException {
        super.init(config);
    }

    public void doGet(HttpServletRequest request,
                      HttpServletResponse response) throws ServletException,
                                                           IOException {
        response.setContentType(CONTENT_TYPE);

        if ( !ComprobarUsuario )
  {

           PrintWriter out = response.getWriter();
           out.println("
Este usuario ya está registrado.");
           out.close();

       }

    }
}

HTML
====

Agradecería alguna idea.

Un saludo y gracias.

BocaDePez

Tras revisar mucha documentación, ya he conseguido hacerlo. Adjunto un código de pruebas que me ha servido para probar el procedimiento:

SERVLET
=======

 private boolean todoValido(HttpServletRequest request) {

             // Pendiente de implementar su contenido

             return false;
         }

    public void doGet(HttpServletRequest request,
                      HttpServletResponse response) throws ServletException,
                                                           IOException
                                                           {
        response.setContentType(CONTENT_TYPE);

        if ( todoValido(request) == true )
        {

           PrintWriter out = response.getWriter();
           out.println("
The servlet has received a GET. This is the reply.");
           out.close();

        } else {

            String Nombre = "Nombre"; // Tengo un textedit en que se llama Nombre
            String Valor = request.getParameter(Nombre);

            //request.getRequestDispatcher("/QuieroRegistrarme.jsp").forward(request, response); Utilizaremos forward si queremos que el resultado se devuelva en una página nueva
            request.getRequestDispatcher("/QuieroRegistrarme.jsp").include(request, response); // Include en la página actual

            PrintWriter out = response.getWriter();
            // Escribimos un mensaje de error
            out.println("
Ha habido un error");
            // A modo de prueba, el textedit "Nombre" conserva su valor y el textedit "email" muestra un mensaje de error y de color rojo
            out.println("");
            out.close();

        }

    }

FORMULARIO
==========
🗨️ 1
BocaDePez
FORMULARIO
==========