Problem mit equals() Vergleich

ChrisK84

Grünschnabel
Servus Leute,

ich habe ein Problem, dass ich leider nicht lösen kann. Wahrscheinlich ist es nur eine Kleinigkeit aber ich komme einfach nich drauf.

Wir machen in der FH gerade eine Projektstudie bei der wir auf ein ERP-System zugreifen. Eine Teilaufgabe davon ist natürlich auch ein Login-Bereich. So etwas habe ich bisher nur auf Basis von PHP gemacht. Deshalb bin ich mir bei meinem Lösungsansatz auch nicht sicher über dessen Korrektheit.

Auf jeden Fall gibt es ein Problem beim Vergleichen zweier Strings mittels equals(). Der eine String ist eine Benutzereingabe die ich mittels request.getParameter() aus der login.jsp hole. Der andere String resultiert aus einer MS SQL DB, den ich mit Hilfe von ResultSet hole und getString() drüber rennen lasse. Aber seht selbst.

Code:
         String user;
	String password;

	String benutzer = request.getParameter("benutzername");
	String passwort = request.getParameter("passwort");

	//System.out.println(benutzer);
	//System.out.println(passwort);

	ResultSet rs = null;
	rs = qry.sendQuery("SELECT * FROM AU065Personalstamm;");
	//ResultSetMetaData rsmd = rs.getMetaData();

	 while(rs.next()) {
		  user=rs.getString(2);
		  System.out.println(user); //Um die Ausgabe auf der Konsole zu prüfen
		  System.out.println(benutzer); //Um die Ausgabe auf der Konsole zu prüfen

		   if (benutzer.equals(user)) {
		   		System.out.println("Ihr Benutzername wurde gefunden.");

		   		//password=rs.getString(1);
		    	//System.out.println(password);

		   //if (passwort.equals(password)) {
		   // Text
		   //out.println("Sie wurden erfolgreich eingelogt.");
		  		response.sendRedirect("Management.html");
		   }

		   else{
		   		System.out.println("Es ist ein Fehler aufgetetten.1.");
		   }
	}

Naja falls jemand was einfälld währe ich um hilfe dankbar. Achso er führt halt immer die else() Anweisung aus.

grüße ChrisK
 
Laut Konsole sind die beiden String aber Scheinbar gleich?
equals() ist Casesensitive und kontrolliert auch auf Leerzeichen. Vielleicht mal benutzer.trim().equalsIgnoreCase() versuchen?
Du könntest evt. auch schon mit der SQL Anfrage nur das Tipel für den entsprechenden Benutzer laden. Dann musst du nicht jedesmal das ganze Resultset durcheiern.

Grüße
Daniel
 
Zurück