Banda Ancha EU

Comunidad de usuarios
de fibra, móvil y ADSL

hosting en interdominios
654 lecturas y 2 respuestas
  • Boca de Pez Boca de Pez
    6

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

    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.

    Este tema lleva más de 6 meses inactivo. Es recomendable que abras un nuevo tema para retomar la conversación.
    • Boca de Pez Boca de Pez
      6

      Tras revisar mucha documentación, ya he conseguido hacerlo.…

      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
      ==========