Hydrano
Lieutenant
- Registriert
- März 2008
- Beiträge
- 942
Hi,
im Rahmen einer Studienarbeit entwickel ich gerade eine Webanwendung, welche Daten aus einer Datenbank auslesen soll, dieser Part funktioniert soweit ganz gut.
Allerdings soll auch auch ein Session Handling vorhanden sein. Sprich es gibt eine Benutzerdatenbank und erst sobald sich ein registrierter Benutzer eingeloggt hat kann er auf bestimmte Daten der anderen DB zugreifen.
Leider bin ich gezwungen das ganze in JSP/Javabeans zu lösen. In PHP wäre es deutlich einfacher und schöner.
Die Problemmatik beim Login ist jetzt, dass ich mir zwar eine Rückmeldung hole ob das Login erfolgreich war oder nicht, wenn ich jedoch beim Fall des erfolgreichen Logins eine session erstellen möchte und auf eine andere Seite weiterleite, bin ich sofort wieder ausgeloggt.
Hier mal eben der Code meiner Login.jsp
Ich rufe also in dem IF im JavaScript die Methode einloggen() aus meiner Java Klasse auf (einloggen liefert boolean zurück).
Die Methode funktioniert einwandfrei und bei erfolgreichen Login werde ich halt auf die Seite successIn.jsp geleitet, beim Fehlerhaften Login kommt die Meldung "Login fehlgeschlagen".
Das Problem muss also irgendwie an diesem session handling liegen. (In successIn.jsp prüfe ich ob eine session "user" schon vorhanden ist, deswegen merke ich auch das ich direkt wieder ausgeloggt bin)
Interessant ist jetzt noch der Teil im else:
Wenn ich die Zeilen rausnehme dann werde ich immer erfolgreich eingeloggt, auch im Fehlerfall (einloggen() -> false).
Es scheint mir so als würde die Methode true und false gleichzeitig zurückgeben und somit die if und die else Bedingung erfüllen - was für mich aber irgendwie mehr als unlogisch scheint.
Vielleicht hat ja hier jemand eine Idee wo der Denkfehler liegt, ich wäre echt froh drum da ich hier schon seit stunden alles mögliche Versuche. Entweder geht es nicht, oder es geht auch im Fehlerfall
im Rahmen einer Studienarbeit entwickel ich gerade eine Webanwendung, welche Daten aus einer Datenbank auslesen soll, dieser Part funktioniert soweit ganz gut.
Allerdings soll auch auch ein Session Handling vorhanden sein. Sprich es gibt eine Benutzerdatenbank und erst sobald sich ein registrierter Benutzer eingeloggt hat kann er auf bestimmte Daten der anderen DB zugreifen.
Leider bin ich gezwungen das ganze in JSP/Javabeans zu lösen. In PHP wäre es deutlich einfacher und schöner.
Die Problemmatik beim Login ist jetzt, dass ich mir zwar eine Rückmeldung hole ob das Login erfolgreich war oder nicht, wenn ich jedoch beim Fall des erfolgreichen Logins eine session erstellen möchte und auf eine andere Seite weiterleite, bin ich sofort wieder ausgeloggt.
Hier mal eben der Code meiner Login.jsp
Code:
<jsp:useBean id="login" class="model.Login" scope="session"/>
<jsp:setProperty name="login" property="user" value="${param.uname}" />
<jsp:setProperty name="login" property="pwd" value="${param.pass}" />
<script>
if(${login.einloggen()}) {
<%
session.setAttribute("user", "online");
%>
window.location = "../view/successIn.jsp";
} else {
alert("Login fehlgeschlagen");
<%
session.setAttribute("user", null);
session.invalidate();
%>
window.location = "../../index.jsp";
}
</script>
Ich rufe also in dem IF im JavaScript die Methode einloggen() aus meiner Java Klasse auf (einloggen liefert boolean zurück).
Die Methode funktioniert einwandfrei und bei erfolgreichen Login werde ich halt auf die Seite successIn.jsp geleitet, beim Fehlerhaften Login kommt die Meldung "Login fehlgeschlagen".
Das Problem muss also irgendwie an diesem session handling liegen. (In successIn.jsp prüfe ich ob eine session "user" schon vorhanden ist, deswegen merke ich auch das ich direkt wieder ausgeloggt bin)
Interessant ist jetzt noch der Teil im else:
Code:
<%
session.setAttribute("user", null);
session.invalidate();
%>
Es scheint mir so als würde die Methode true und false gleichzeitig zurückgeben und somit die if und die else Bedingung erfüllen - was für mich aber irgendwie mehr als unlogisch scheint.
Vielleicht hat ja hier jemand eine Idee wo der Denkfehler liegt, ich wäre echt froh drum da ich hier schon seit stunden alles mögliche Versuche. Entweder geht es nicht, oder es geht auch im Fehlerfall
