Hallo,
ich möchte eine kleine Web-Applikation schreiben, die folgendermaßen aussieht:
Javabeans zur Abbildung der Entities ("Modell"), zentrales Servlet "Main" als Controller und einzelne JSP-Seiten als View.
Nun würde ich gerne eine Datenbankverbindung aufbauen, um User zu authentifizieren. Ursprünglich wollte ich das über eine JavaBean (DatabaseBean.java), welche eine Funktion "match(Username, Password) -> boolean" hat - das geht aber soweit nicht, da ich in der DatabaseBean.java kein Objekt vom Typ "UserBean" (da sollen später die User-Daten drinstehen) zurückgeben kann. Ist das allgemein so? Ich meine, okay, klar, Beans sollten ja eigentlich nur aus setter/getter-Methoden bestehen, aber ich dachte, das wäre keine strikte Vorgabe.
Also habe ich mich dran gemacht, ein Datenbank-Servlet zu schreiben, das die Verbindung aufbaut und entsprechende Methoden bereitstellt ( getUserBean(username), match(username, password)).
Nun zum eigentlichen Problem: Die Login.jsp ruft als "action" die Main.java auf (das zentrale Servlet).
Innerhalb dieses zentralen Servlets möchte ich nun prüfen, ob die Daten aus dem Request korrekt sind. Dazu muss ich die Daten irgendwie an das Datenbank-Servlet bringen.
Nur wie?
Nach einiger Suche bei google & co habe ich folgende Möglichkeiten:
1. RMI: Ich verzichte auf das Datenbank-Servlet und implementiere stattdessen einen RMI-Server, der die Methoden bereitstellt. Das Main-Servlet greift dann unmittelbar über RMI darauf zu. Ist zwar etwas aufwendig, aber IMHO vom Design her schön.
2. Ich packe die Username/Password-Daten in die Session und dispatche dann vom Main-Servlet an das Datenbank-Servlet, prüfe dort, packe das Ergebnis in die Session und dispatche zurück zum Main-Servlet. Ist das wirklich 100% sicher? Eigentlich dürfte das kein Problem geben, oder? Denn der User kann ja von remote aus nicht seine eigene Session manipulieren.
Habe ich das alles richtig verstanden? Gibt es nicht einen einfacheren Weg, die Methoden aufzurufen?
Ich nutze Netbeans 5.5 mit eingebautem Tomcat 5.5.
Vielen Dank!
mmm
ich möchte eine kleine Web-Applikation schreiben, die folgendermaßen aussieht:
Javabeans zur Abbildung der Entities ("Modell"), zentrales Servlet "Main" als Controller und einzelne JSP-Seiten als View.
Nun würde ich gerne eine Datenbankverbindung aufbauen, um User zu authentifizieren. Ursprünglich wollte ich das über eine JavaBean (DatabaseBean.java), welche eine Funktion "match(Username, Password) -> boolean" hat - das geht aber soweit nicht, da ich in der DatabaseBean.java kein Objekt vom Typ "UserBean" (da sollen später die User-Daten drinstehen) zurückgeben kann. Ist das allgemein so? Ich meine, okay, klar, Beans sollten ja eigentlich nur aus setter/getter-Methoden bestehen, aber ich dachte, das wäre keine strikte Vorgabe.
Also habe ich mich dran gemacht, ein Datenbank-Servlet zu schreiben, das die Verbindung aufbaut und entsprechende Methoden bereitstellt ( getUserBean(username), match(username, password)).
Nun zum eigentlichen Problem: Die Login.jsp ruft als "action" die Main.java auf (das zentrale Servlet).
Innerhalb dieses zentralen Servlets möchte ich nun prüfen, ob die Daten aus dem Request korrekt sind. Dazu muss ich die Daten irgendwie an das Datenbank-Servlet bringen.
Nur wie?
Nach einiger Suche bei google & co habe ich folgende Möglichkeiten:
1. RMI: Ich verzichte auf das Datenbank-Servlet und implementiere stattdessen einen RMI-Server, der die Methoden bereitstellt. Das Main-Servlet greift dann unmittelbar über RMI darauf zu. Ist zwar etwas aufwendig, aber IMHO vom Design her schön.
2. Ich packe die Username/Password-Daten in die Session und dispatche dann vom Main-Servlet an das Datenbank-Servlet, prüfe dort, packe das Ergebnis in die Session und dispatche zurück zum Main-Servlet. Ist das wirklich 100% sicher? Eigentlich dürfte das kein Problem geben, oder? Denn der User kann ja von remote aus nicht seine eigene Session manipulieren.
Habe ich das alles richtig verstanden? Gibt es nicht einen einfacheren Weg, die Methoden aufzurufen?
Ich nutze Netbeans 5.5 mit eingebautem Tomcat 5.5.
Vielen Dank!
mmm