Beitrag 36 von 610 (6%) | Antworten Beitrag schreiben | Anfang zurück weiter Ende |
|
Hallo zusammen,
ich haette eine Frage zur Umsetzung einer webbasierten und datenbankgestuetzten Applikation, an der ich zur Zeit mit 4 weiteren Kommilitonen arbeite. Es geht dabei um ein Problem zum Umgang mit Beans aus der Persistenzschicht, die in einer Session gespeichert und abgefragt werden sollen.
Es handelt sich um ein Programm für die Auditierung in einer Firma, Vorgabe war lediglich die Verwendung einer vorhandenen Oracle Datenbank. Wir setzen das ganze Java-basiert um, als Framework haben wir uns "JSF" für die Präsentationsschicht, "Spring" für die Business Logic und "Hibernate" für die Persistenzschicht ausgesucht, als Datenbank kommt Oracle zum Einsatz. Der Einsatz der Frameworks klappt soweit auch ganz gut. Wir legen das Projekt für den Tomcat an, spaeter soll es auch unter Websphere laufen koennen.
Jetzt zu dem Problem. Wir wollen jetzt zunaechst einmal den "Rahmen" der Applikation zusammenbauen, d.h. eine Loginmaske, und nach Eingabe von Name und Passwort soll anhand der Daten der User in der Datenbank identifiziert werden, und ein User Bean in einer Browsersession abgelegt werden. Dieses User Bean soll dann auch von der Business Logik schicht abgefragt werden koennen, etwa um Zugangs-Berechtigungen oder ähnliches zu prüfen, oder für Logfiles usw.
Wie setzt man das ueblicherweise um? Ich starte im voraus, für den Fall dass es gebraucht werden koennte, mit der Anwendung noch ein Servlet welches im Moment allerdings noch nicht viel tut.
--- ApplicationServlet.java ---
public class ApplicationServlet extends HttpServlet
{
private boolean applicationRunning = true;
public void init() throws ServletException {
super.init();
System.out.println("\nSYS ("+new Date()+"): ApplicationServlet initialized\n");
}
}
--- ---
Desweiteren erzeuge ich, eingebettet in der Faces Loginseite, noch ein Sessionbean
--- index.jsp ---
[...]
<jsp:useBean id="applicationBean" class="com.company.audit.projectname.servlet.ApplicationBean" scope="session">
<% applicationBean.initializeBean(); %>
</jsp:useBean>
[...]
Das ApplicationBean sieht wie folgt aus:
--- ApplicationBean.java ---
public class ApplicationBean
{
private User user = null;
public ApplicationBean() {
System.out.println("SYS ("+new Date()+"): ApplicationBean (sessionbean) constructor");
}
public boolean getUser() {
return this.user;
}
public void setUser(User user) {
this.user = user;
}
public void initializeBean() {
this.user = new User();
// request persistence layer, this is for testing only
user.setName(new Name("Jörg","Zdarsky","S", (Person)this.user ) );
user.setEmail("[email protected]");
System.out.println("SYS ("+new Date()+"): ApplicationBean (sessionbean) initializeMethod()");
}
}
--- ---
Das Objekt User ist dabei ein einfaches Bean aus der Persistenzschicht, mit einfachen Attributen wie Name, Telefon, Email. Usw. Es soll den eingeloggten User repraesentieren.
Der Einsatz von Java Faces über ein LoginBean klappt soweit auch alles ganz gut. Wie aber fuehrt man nun ein sessionbasiertes Bean, in meinem Falle das User-Objekt, abfragbar mit? Und wie kann ich a) Daten meines Servlets ApplicationServlet und b) Daten meines ApplicationBean (über das JSP/JSF als sessionbean instanziiert) aus den darunterliegenden Schichten, d.h. Business Logik Schicht, abfragen???
Vielen vielen Dank für Eure Hilfe!!!
Bin für jeden Rat dankbar.
Viele Gruesse,
Joerg