Frage

Ist es möglich, die gleiche Servlet-Validierung durchführen zu lassen? Es scheint, dass man haben könnte, hier eine Art von Rekursion zu verwenden, aber wenn ich in etwas in dem E-Mail-Feld eingeben und klicken Sie auf den E-Mail-Parameter vorzulegen ist immer noch leer. Nachdem ich einreichen klicken, wird die URL Änderungen an: http://localhost/servlet/EmailServlet?Email=test

Die Seite zeigt Email: null und das Textfeld, aber ich habe erwartet, es durch die Validierungsfunktion zu gehen (das heißt nicht null sein). Ist es möglich, diese Art von rekursiven Verhalten zu erreichen?

public class EmailServlet extends HttpServlet {

    public void doGet(HttpServletRequest request, 
            HttpServletResponse response) throws ServletException, IOException 
    {
        response.setContentType("text/html");
        PrintWriter out = response.getWriter();

        String theForm =
            "<FORM METHOD=\"GET\" ACTION=\"EmailServlet\">\n<INPUT TYPE=\"TEXT\" NAME=\"Email\"><P>\n" 
            + "<INPUT TYPE=\"SUBMIT\">\n</FORM>";
        String email = (String) request.getAttribute("Email");

        // Bogus email validation...
        if( email == null )
        {
            out.println("Email: " + email + "\n" + theForm);
        }
        else if(emailAddressNotBogous(email))
        {
            out.println("Thank you!");
        }
        else
        {
            out.println("“Invalid input. Please try again:\n" + theForm);
        }
        out.flush();        
    }
}

Update: als die akzeptierte Antwort darauf hingewiesen, war ein Fehler im Code. Ändern des getAttribute zu getParameter behebt das „Problem“ :).

String email = (String) Anfrage getAttribute getParameter ( "E-Mail");.

War es hilfreich?

Lösung

Um ein Formular Parameter in einem Servlet erhalten Sie verwenden:

  request.getParameter("Email");

Und ja können Sie das gleiche Servlet verwenden, aber es wäre viel einfacher zu bedienen zwei verschiedene Servlets, dies zu tun.

Andere Tipps

können Sie die Form der Methode Satz POST haben und dann eine doPost () -Methode in Ihrem Servlet implementieren. die doGet () erhält die Form und die doPost () aufgerufen, die Formular-Vorlage genannt wird erhalten angezeigt zu verarbeiten.

Alternativ können Sie die doGet () -Methode Test für das Vorhandensein irgendwelcher Parameter. wenn es nicht dann einfach das Formular anzuzeigen. Wenn es dann verarbeitet die Vorlage ...

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top