If Abfrage gibt falsches Ergebnis....

Funktionierdochmal

Bekanntes Mitglied
Ich habe hier folgenden Code im Servlet:

Javascript:
String alter = request.getParameter("alter");
        String email = request.getParameter("email");
        String telefon = request.getParameter("telefon");
        String passwordNeu = request.getParameter("passwordNeu");
        String passwordWdh = request.getParameter("passwordWdh");
        String agb = request.getParameter("checkbox1");
        String datenschutzbestimmungen = request.getParameter("checkbox2");
        
        FehlerManager manager = new FehlerManager();
        
        
        boolean alterKorrekt = manager.alterKorrekt(alter);
        boolean mailKorrekt = manager.mailKorrekt(email);
        boolean telefonKorrekt = manager.telefonKorrekt(telefon);
        
        Benutzer benutzer = (Benutzer) session.getAttribute("benutzer");


        if(agb != null && datenschutzbestimmungen != null && alterKorrekt && mailKorrekt &&
                telefonKorrekt && passwordNeu.equals(passwordWdh)) {
            message += "Alle Eingaben korrekt - Benutzer angelegt.";
            benutzer.setAlter(alter);
            benutzer.setEmail(email);
            benutzer.setTelefon(telefon);
            benutzer.setPasswort(passwordNeu);
            session.setAttribute("benutzer", benutzer);
            session.setAttribute("message", message);
            request.getRequestDispatcher("index.jsp").forward(request, response);
            
        } else if (agb == null|| datenschutzbestimmungen == null) {
            message1 += "Checkboxen sind nicht checked.";
            session.setAttribute("message1", message1);

            request.getRequestDispatcher("profil.jsp").forward(request, response);

        
        } else if (!alterKorrekt) {
            message2 += "Das Alter ist eine Zahl im Intervall [0, 123]";
            session.setAttribute("message2", message2);

            request.getRequestDispatcher("profil.jsp").forward(request, response);

            
        } else if (mailKorrekt == false) {
            message3 += "Email nicht korrekt: Mindestens 5, Maximal 20 Groß- oder Kleinbuchstaben, optional mit Sonderzeichen " +
                    ".- +“ (Punkt, Minus, Unterstrich, Plus) " +
                    "“@” gefolgt von beliebig vielen Klein- oder Großbuchstaben oder Zahlen " +
                    "“.” gefolgt von minimal zwei, maximal drei Kleinbuchstaben";
            session.setAttribute("message3", message3);

            request.getRequestDispatcher("profil.jsp").forward(request, response);

            
        } else if (!telefonKorrekt) {
            message4 += "Eine Telefonnummer beginnt entweder mit + und zwei Zahlen oder mit einer 0\r\n" +
                    "nach der 5. Stelle kann optional ein / oder ein - stehen\r\n" +
                    "gefolgt von bis zu 10 weiteren Zahlen";
            session.setAttribute("message4", message4);

            request.getRequestDispatcher("profil.jsp").forward(request, response);

            
        } else if (!passwordNeu.equals(passwordWdh)) {
            message5 += "Passwörter stimmen nicht überein.";
            session.setAttribute("message5", message5);

            request.getRequestDispatcher("profil.jsp").forward(request, response);

        }

Die Fehlermanager prüft mithilfe von RegEx (die Ausdrücke sind 100%ig richtig), ob die eingegebene Mail korrekt ist
Javascript:
public class FehlerManager {
    
    
    public boolean alterKorrekt (String alter) {
        boolean istKorrekt = false;
        
        if (alter != null && alter.matches("[0-9]|[1-9][0-9]|1[0-1][0-9]|12[0-3]") ) {
            istKorrekt = true;
        }
        
        
        return istKorrekt;
        
    }
    
    public boolean mailKorrekt (String mail) {
        boolean istKorrekt = false;
        
        if (mail != null && mail.matches("[a-zA-Z._+-]{5,20}@[1-9a-zA-Z]+\\.[a-z]{2,3}")) {
            istKorrekt = true;
        }
        
        return istKorrekt;
        
        
    }
    
    public boolean telefonKorrekt (String telefon) {
        boolean istKorrekt = false;
        
        if (telefon != null && telefon.matches("\\+[0-9]{2}[0-9]([0-9]{0,9})?|[0-9]{5}[-/]?([0-9]{0,9})?")) {
            istKorrekt = true;
        }
        
        return istKorrekt;
    }

In diesem Formular wird vorher alles eingegeben:


HTML:
        <form action="ProfilServlet" method="post">
            Alter: <input type="text" name="alter"><br>
            E-Mail: <input type="text" name="email"><br>
            Telefonnr.: <input type="text" name="telefon"><br>
            Passwort (Neu): <input type="text" name="passwordNeu"><br>
            Passwort (Wiederholung): <input type="text" name="passwordWdh"><br>
            <input type="checkbox" name="checkbox1" >AGB <br>
            <input type="checkbox" name="checkbox2" >Datenschutzbestimmungen <br><br>
            <button type="submit">Abschicken</button>
        </form>

Also wieso wird ständig nachdem ich die Daten korrekt eingegeben habe, "
Email nicht korrekt: Mindestens 5, Maximal 20 Groß- oder Kleinbuchstaben, optional mit Sonderzeichen " +
".- +“ (Punkt, Minus, Unterstrich, Plus) " +
"“@” gefolgt von beliebig vielen Klein- oder Großbuchstaben oder Zahlen " +
"“.” gefolgt von minimal zwei, maximal drei Kleinbuchstaben" ?
Die Methode mailKorrekt ist genau wie die anderen Methoden gestaltet, aber nur diese macht mir Probleme...
 

687b46c0da97

Mitglied
Hi,
grundsätzlich müsstest du hier debuggen, um zu sehen welche Werte den folgenden Objekten zugeordnet sind:
alter, email, telefon, passwordNeu, passwordWdh, agb, datenschutzbestimmungen, alterKorrekt, mailKorrekt, telefonKorrekt

Der Code (Die IF-Abfragen) selbst funktioniert korrekt, welches mit folgendem Beispiel geprüft werden kann:
Java:
        String agb  = "notNull";
        String datenschutzbestimmungen = "notNull";
        String passwordNeu = "pass";
        String passwordWdh = passwordNeu;

        boolean alterKorrekt = true;
        boolean mailKorrekt = true;
        boolean telefonKorrekt = true;

Hier werden den Variablen einfach statische Werte zugeordnet. Die Ausgabe lautet "Alle Eingaben korrekt - Benutzer angelegt.". Somit liegt die Vermutung nahe, dass entweder
  • Die Werte im Request nicht ordentlich übergeben werden oder
  • Der Manager falsche Werte zurückliefert oder
  • Die message objekte haben bereits einen Wert und werden ggf. falsch ausgegeben
Kannst du einmal die werte der oben gelisteten Objekte ausgeben lassen und hier teilen?

Die Methoden im FehlerManager kannst du auch folgendermaßen optimieren:
Java:
    public boolean alterKorrekt (String alter) {
        return (alter != null && alter.matches("[0-9]|[1-9][0-9]|1[0-1][0-9]|12[0-3]"));
    }
 

Funktionierdochmal

Bekanntes Mitglied
Also ich habe es gerade mit statischen Werten probiert: Und der Login hat jetzt richtig geklappt.

"Die message objekte haben bereits einen Wert und werden ggf. falsch ausgegeben"Ich glaube das ist es nicht, weil unabhängig davon die Weiterleitung zur index.jsp doch klappen sollte.

"
Kannst du einmal die werte der oben gelisteten Objekte ausgeben lassen und hier teilen?
"
Doofe Frage aber wie mache ich das? Ich habe versuch über Debug as, dann java app, und dann öffnet sich ein Fenster mit Select Java application... Ich habe diese Debuggersache noch nie verstanden
 

687b46c0da97

Mitglied
Hi,
wenn du noch nicht mit dem Debugger vertraut bist (Das solltest du alsbald nachholen, hängt von deiner IDE ab), füge einmal folgenden Code vor den If Abfragen ein:
Java:
System.out.println("Alter: " + alter);
System.out.println("agb: " + agb);
System.out.println("datenschutzbestimmungen: " + datenschutzbestimmungen);
System.out.println("passwordNeu: " + passwordNeu);
System.out.println("passwordWdh: " + passwordWdh);
System.out.println("alterKorrekt: " + alterKorrekt);
System.out.println("mailKorrekt: " + mailKorrekt);
System.out.println("telefonKorrekt: " + telefonKorrekt);
System.out.println("message1: " + message1);
System.out.println("message2: " + message2);
System.out.println("message3: " + message3);
System.out.println("message4: " + message4);

Somit würdest du die Werte ausgegeben bekommen ohne den debugger bedienen zu müssen.
 

Funktionierdochmal

Bekanntes Mitglied
Okay ich mache es sofort. Eine Sache die komisch ist gerade: Ich habe es die get Methode eingefügt, um in der URL zu sehen welche Werte dort stehen und hier klappt es einfach. Ich füge es mit deinem Code mal wieder in die POst Methode ein... Moment
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
Nitrogames Variablen Variable aus JOptionPane Abfrage in Array einfügen Java Basics - Anfänger-Themen 4
L If Abfrage Java Basics - Anfänger-Themen 4
S Best Practice Fragen zu Projektstruktur einer Datenbank-Abfrage-App (MVC) Java Basics - Anfänger-Themen 13
W if-Abfrage bei ArrayList-Methodenaufrufen - Wie löse ich das? Java Basics - Anfänger-Themen 6
B Automatisierte Ausgabe (Schleife, If-Abfrage?) Java Basics - Anfänger-Themen 24
I ResultSet aus meiner SQL-Abfrage in einem JTextfield ausgeben. Java Basics - Anfänger-Themen 1
X Enum Abfrage ohne if, for, while oder switch Java Basics - Anfänger-Themen 21
G Taschenrechner ergibt Fehler in if-Abfrage Java Basics - Anfänger-Themen 6
S Interaktive Abfrage, Hilfe mit Schleifen! Java Basics - Anfänger-Themen 6
P Amazon SQS abfrage Java Basics - Anfänger-Themen 1
Marlena Bauer IBAN generieren (Deutschland) aus Abfrage von BLZ und Kontonummer? Java Basics - Anfänger-Themen 31
M Abfrage j/n und Bildschirm löschen Java Basics - Anfänger-Themen 3
S Und-Abfrage mit mehreren Ungleich-Operatoren Java Basics - Anfänger-Themen 17
O if Abfrage erkennt String nicht Java Basics - Anfänger-Themen 1
NeoLexx Abfrage mit instanceof führt zu unerwarteten Wert Java Basics - Anfänger-Themen 9
N Bedinugng If-Abfrage wird nie erfüllt Java Basics - Anfänger-Themen 4
L boolean-Abfrage enumeration Java Basics - Anfänger-Themen 3
Y Methoden Wie kann ich eine if-Abfrage bei Setters bauen? Java Basics - Anfänger-Themen 6
S Streams - Abfrage absteigend sortieren Java Basics - Anfänger-Themen 11
F POST-Request mit json - Abfrage mit Java Java Basics - Anfänger-Themen 2
C Javafunktion zur Abfrage eines Quellcodes Java Basics - Anfänger-Themen 15
A JOPtionPaneOptionDialog Abfrage welcher Button gedrückt wurde? Java Basics - Anfänger-Themen 8
B Folgende Abfrage dynamisch programmieren? Java Basics - Anfänger-Themen 8
G if Abfrage: Nicht jeder Fall berücksichtigt Java Basics - Anfänger-Themen 2
I Nur auf Abfrage von einer Text Datei einlesen Java Basics - Anfänger-Themen 11
J Erste Schritte if Abfrage von JButton in 2. Klasse Java Basics - Anfänger-Themen 27
S If Abfrage nur mit bestimmter Initialisierung? Java Basics - Anfänger-Themen 8
Z Boolean Abfrage in einer for each Schleife Java Basics - Anfänger-Themen 2
deatzi Variable aus If Abfrage später nutzen Java Basics - Anfänger-Themen 4
C Instanz einer Klasse während if-Abfrage erzeugen und bei zweiter if-Abfrage wiederverwenden Java Basics - Anfänger-Themen 6
S Backspace Abfrage funktioniert nicht Java Basics - Anfänger-Themen 4
F Interface JFrame mit if-Abfrage automatisch schließen lassen? Java Basics - Anfänger-Themen 3
R Abfrage von Variablen in Unterklassen einer ArrayList Java Basics - Anfänger-Themen 9
G Passwort und Passwort wiederholen in if-Abfrage vergleichen Java Basics - Anfänger-Themen 15
P Altklausur: Abfrage der Summe Java Basics - Anfänger-Themen 9
N Methoden Attribut Abfrage eines anderen Objektes Java Basics - Anfänger-Themen 36
D MySQL Abfrage in JTable speichern Java Basics - Anfänger-Themen 43
D SQL Abfrage anpassen Java Basics - Anfänger-Themen 17
H For-Schleife innerhalb If-Abfrage? Java Basics - Anfänger-Themen 3
F Abfrage ob Eingabe eine Zahl ist Java Basics - Anfänger-Themen 3
O Datentypen Volle 16 Bit eines Short für flags Abfrage nutzen Java Basics - Anfänger-Themen 11
S Input/Output Doppelte Input-Abfrage Java Basics - Anfänger-Themen 3
S Input/Output Programm läuft nach input-Abfrage nicht weiter. Java Basics - Anfänger-Themen 2
M Variablen Eine etwas andere if Abfrage ! Java Basics - Anfänger-Themen 10
H if-Abfrage, ungleich und falscher true Wert? Java Basics - Anfänger-Themen 11
F Ja Nein Abfrage und andere Probleme Java Basics - Anfänger-Themen 5
OlafHD Fehler Bei der if Abfrage Java Basics - Anfänger-Themen 5
quecksilver if-Abfrage in main ausführen Java Basics - Anfänger-Themen 4
D if-Abfrage Java Basics - Anfänger-Themen 12
J Abfrage für Programmwiederholung Java Basics - Anfänger-Themen 2
K Alternative zur If-Abfrage Java Basics - Anfänger-Themen 3
M Java als Webanwendung mit Datenbank abfrage Java Basics - Anfänger-Themen 3
D Abfrage ob Variableninhalt korrekt Java Basics - Anfänger-Themen 5
W Vergleich mit If-Abfrage nur für Zahlen bis 07 möglich - Warum? Java Basics - Anfänger-Themen 7
D Operatoren IF Abfrage liefert falsches Ergebnis Java Basics - Anfänger-Themen 4
X Ja nein abfrage? Java Basics - Anfänger-Themen 9
A Erste Schritte Problem bei meiner if-Abfrage! Java Basics - Anfänger-Themen 5
M Enum-Variabel-Abfrage funktioniert nicht? Java Basics - Anfänger-Themen 2
S Java Counter: nur 1 mal hochzählen auch wenn Abfrage mehrmals zutrifft. Java Basics - Anfänger-Themen 1
E Erste Schritte [Noob-Frage] Meine If-Abfrage macht nicht, was sie soll... Java Basics - Anfänger-Themen 2
C Abfrage nach einem Bild im Array Java Basics - Anfänger-Themen 9
A Key Event - Abfrage von 2 gedrückten Tasten Java Basics - Anfänger-Themen 6
T Klasse für Google-Abfrage Java Basics - Anfänger-Themen 9
Z If abfrage - Minimum 0 Java Basics - Anfänger-Themen 9
J Abfrage versetzen Java Basics - Anfänger-Themen 2
D Methoden Abfrage ob ein Wert bereits vorhanden ist Java Basics - Anfänger-Themen 1
thet1983 if() Abfrage Java Basics - Anfänger-Themen 2
A charAt(x)-Abfrage lässt bei Strings<x das Pgrogramm abstürzen. Kann man das verhindern? Java Basics - Anfänger-Themen 4
Uzi21 if - else Abfrage Java Basics - Anfänger-Themen 6
T Index-Abfrage von Pi Java Basics - Anfänger-Themen 5
H Erste Schritte If Abfrage Java Basics - Anfänger-Themen 3
B If Abfrage mit Passwort und Username Java Basics - Anfänger-Themen 2
U einlesen, abfrage Java Basics - Anfänger-Themen 25
T SQL Abfrage Läuft nicht Java Basics - Anfänger-Themen 5
N Probleme mit ActionListener und Logischer Abfrage Java Basics - Anfänger-Themen 4
F Erste Schritte IF-Abfrage fehlerhaft Java Basics - Anfänger-Themen 9
O Downloaden: Trotz If Abfrage wird Datei heruntergeladen Java Basics - Anfänger-Themen 2
D jProgressBar soll bei 100% sein wenn sql Abfrage inkl. jTable schreiben fertig ist... Java Basics - Anfänger-Themen 5
H if-Abfrage double wert Java Basics - Anfänger-Themen 5
M Erstes Prog. OS Abfrage Java Basics - Anfänger-Themen 9
I Einlese Abfrage zweier Variablen in einem Fenster Java Basics - Anfänger-Themen 6
B Boolean abfrage Java Basics - Anfänger-Themen 3
D Variablen Rücksprung nach If Abfrage Java Basics - Anfänger-Themen 16
T If- Abfrage Java Basics - Anfänger-Themen 8
P Taschenrechner , IF-Abfrage Java Basics - Anfänger-Themen 12
D if-Abfrage Java Basics - Anfänger-Themen 6
G Einfache if-Abfrage der Main-Argumente Java Basics - Anfänger-Themen 3
C If abfrage zu getBackground Java Basics - Anfänger-Themen 2
T abfrage eines Integer Array s Java Basics - Anfänger-Themen 5
feardorcha boolean array false - true - Abfrage Java Basics - Anfänger-Themen 10
G Adminrechte abfrage Java Basics - Anfänger-Themen 5
S Abfrage Objekt-Array nach Datentypen Java Basics - Anfänger-Themen 6
R If-Abfrage, || funktioniert nicht Java Basics - Anfänger-Themen 4
S TabbedPane: nach Abfrage oldTab selektieren Java Basics - Anfänger-Themen 5
B Abfrage mittels Variable vereinfachen Java Basics - Anfänger-Themen 6
C Treffer Abfrage Java Basics - Anfänger-Themen 19
M nach jar export keine db abfrage möglich Java Basics - Anfänger-Themen 2
T Datenbank Abfrage Exception Null Java Basics - Anfänger-Themen 2
J Erste Schritte Im Tante-Emma-Laden mehrere Artikel kaufen mit if-Abfrage Java Basics - Anfänger-Themen 24
I Threads If-Abfrage vor kritischem Abschnitt Java Basics - Anfänger-Themen 4

Ähnliche Java Themen

Neue Themen


Oben