Anwendung mit Model 2 Architektur

J

Java1212

Gast
Hallo liebe Community,
ich sitze gerade an einem Projekt, um meine Kenntnisse in JEE zu vertiefen und habe Schwierigkeiten eine grundlegende Struktur aufzubauen. Ich möchte gerne die Model 2 Architektur nutzen, also JSP, Servlet und Beans, jedoch ist mir noch nicht ganz klar wann und wie die einzelnen Komponenten eingesetzt werden. Zunächst zu meinem derzeitigen Wissen:

Eine Anwendung nach dem MVC-Prinzip (bzw. Model 2-Prinzip) sollte aus folgenden Elementen bestehen:

JSP-Seiten: Ausschließlich zuständig für die Darstellung (View)

Servlets: Zuständig für die Steuerung der Anwendung. Ein Servlet wird aufgrund einer Benutzerinteraktion von der JSP-Seite aus angesteuert. Es übernimmt von nun an die Steuerung, d.h. Kommunikation mit der Business-Logik und abschließend verweist sie auf eine dem Ergebnis entsprechenden JSP-Seite (z.B. Folgeseite oder Fehlerseite). Servlets enthalten keine Darstellungs-Elemente.

Business-Logik: Kennt weder Servlets noch JSP-Seiten und ist somit unabhängig von der eingesetzten Java-Technologie. Es ist eine ganz normale Java-Klasse auch POJO genannt.

JavaBeans stellen das Model dar oder sind Teile des Models ?. Nach einer Benutzerinteraktion greifen Servlets die ggf. geänderten Daten der JavaBeans auf und übergeben Sie der Business Logik.

In diesem Zusammenhang habe ich eine klassische Loginseite (login.jsp) erstellt. Man kann sich mit einem Benutzernamen und einem Kennwort anmelden. Nach einem Klick auf Anmelden wird auf ein Servlet weitergeleitet das wiederum durch die doPost Methode bzw. das request Objekt die übermittelten Daten abgreift. Diese Daten werden dann in einer Service-Klasse (Businesslogik) überprüft. Ist der Benutzername und Passwort richtig, wird per redirect auf die Hauptseite (index.jsp) verwiesen, ansonsten erscheint wieder die Loginseite. In der Service-Klasse habe ich einfach einen Hash mit verschiedenen Usern angelegt, um testweise die Überprüfung zu ermöglichen.

Soweit so gut. Nun möchte ich gerne meine Anwendung an eine Datenbank anbinden und zukünftig Benutzername und Passwort aus der Datenbank beziehen und vergleichen. Wo würde ich in meinem Konstrukt die Datenbankverbindung realisieren und in welchem Zusammenhang kann ich die JavaBeans benutzen ?

Eine Erklärung wäre sehr hilfreich, da ich im mom nicht weiterkomme :(

Gruß

Javamaniac
 
J

Java1212

Gast
Hallo nochmal,
ich habe noch einen wichtigen Punkt vergessen. Unzwar würde ich gerne über den Umgang mit einer relationalen Datenbank sprechen. Ich kenne bisher nur den Weg über den JDBC Treiber, also diesen einfach in eine Klasse einbinden, ein Objekt davon erzeugen und dann mittels SQL Statements mit der Datenbank kommunizieren. Ich habe jedoch gelesen das es weitaus komfortablere Möglichkeiten gibt, wie die JPA bzw. Hibernate. Dort werden direkt objekte in eine Datenbank gemappt. Da dies komplettes Neuland für mich ist, würde ich mich über eine Einführung in die Thematik freuen.

Gruß

Javamaniac
 

itomski

Neues Mitglied
Hym... ich weiß nicht, wo dein Problem liegt.
Hast du ein JEE Buch?

Da bist du doch sicher schon über einen RequestDispatcher und die Methode setAttribute() von ServletContext, HttpRequest oder HttpSession gestolpert.

Für den ersten einfachen Test kannst du das so machen, dass du ein Servlet als Controller verwendest indem du Infos aus dem Request liest und abhängig davon, was dabei rauskommt unterschiedliche Fälle einer Switch-Anweisung ansprichst.

In den Fällen greift du dann jeweils auf das Model, erzeugst damit die Beans die du dann (abhängig davon, was du damit machen willst) per setAttribute(...) entweder in das Request- oder Session stopfst.

Wenn das Request ausreichend daten hat, holst du dir den RequestDispatcher und leitest das Request an deine JSP die dann das Response generiert.

Das was.

Komfortabler geht das ganze aber mit nem FrontController aber für ne kleine Site dürfte das oben auch schon reichen.

Zum Thema DB:
Frag mal Google nach "Tomcat JDBC Connection Pool". Dann richtest du dir das mal in der context.xml mal ein und verbindest das ganze mal von der web.xml mal mit deiner Anwendung. Dann lässt du dir die Connection geben und greifst fröhlich von deinem Model auf die DB zu.

Oder du verwendest Spring für MVC und Hibernate für die DB.... ;-)

Das INet ist voll von Beispielen - wundert mich, dass du bis jetzt nichts gescheites gefunden hast.
 
Zuletzt bearbeitet:
J

Javamaniac

Gast
Danke erstmal für die Antwort.

Ich habe mich den ganzen Tag durch diverse Tutorials gearbeitet und denke das ich die grundlegende
Syntax bzw den Aufbau verstanden habe. Zusammenfassend meine ich das eine Bean nichts als eine
Klasse ist die Objekte der Realität repräsentieren wie z.B. eine Person und dazu dienen Daten zwischen
JSPs und Servlets zu verschicken. Somit ist eine Bean auch gleichzeitig das Model in der Model 2 Architektur. Ein Servlet nimmt die Benutzerinteraktionen auf und ruft innerhalb einer Serviceklasse entsprechende Funktionen auf. Diese wiederum repräsentiert die Geschäftslogik und ist für das Ändern
der Datenbestände der Beans zuständig. Die JSP ist letztendlich die Präsentationsklasse bzw. View.

Ich hatte am Anfang Schwierigkeiten das Model zu definieren, wobei ich denke das ich es jetzt verstanden habe. Ist alles soweit korrekt ?
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
D Benutzerrecht in der Anwendung neu strukturieren Allgemeines EE 5
D Praktische Anwendung des MVC Allgemeines EE 2
T Java ServerFaces Anwendung mit XHTML & CSS Allgemeines EE 1
E modulare Java-Anwendung verteilen (Camel) Allgemeines EE 0
M Zeitgesteuertes Ereignis in einer dynamic web module Anwendung (eclipse) Allgemeines EE 3
G Unit Test einer JavaEE Anwendung schlägt fehl. JNDI Name nicht gefunden. Allgemeines EE 3
G JavaEE Anwendung Testen Allgemeines EE 0
R Wiederverwendbarkeit in JavaEE Anwendung Allgemeines EE 2
OnDemand GUI in einer JavaEE Anwendung Allgemeines EE 6
C Fotoverwaltung in einer Multi-User Anwendung Allgemeines EE 4
W Servletfehler - kleine Anwendung Allgemeines EE 1
R Test einer JEE-Anwendung Allgemeines EE 3
S Verteilte Anwendung mit JavaEE Allgemeines EE 3
J paar Fragen zu JSF2/JEE6 Anwendung mit JBoss 7.1.1 Allgemeines EE 6
F eigene Anwendung per Servlet Container starten Allgemeines EE 9
I EJB aus JSF Anwendung aufrufen Allgemeines EE 2
M JavaEE Anwendung weitergeben Allgemeines EE 24
T erste Anwendung in JBoss deployen Allgemeines EE 3
T Sinnvoll/machbar? Web Anwendung und EJB auf versch. Servern? Allgemeines EE 7
Y Zugriff auf Files aus einer EAR Anwendung Allgemeines EE 8
slawaweis CMS Unterbau für eine Web 2.0 Anwendung Allgemeines EE 4
H Installer für Tomcat-Anwendung Allgemeines EE 5
Java.getSkill() Anwendung Beans für Formulare Allgemeines EE 5
K Probleme mit Enterprise Anwendung Allgemeines EE 5
J JSF 1.2-Anwendung mit Eclipse Galileo Allgemeines EE 1
MQue URL im Brower beim Starten der Anwendung richtig setzen Allgemeines EE 4
S Session in eine andere Anwendung übergeben Allgemeines EE 2
G JSF Anwendung und individuelle Kofiguration Allgemeines EE 6
M Gelegentlicher Absturz Tomcat Anwendung: PermGen Space Allgemeines EE 6
K Java Application Server + ganttproject *.jar Anwendung Allgemeines EE 6
K JSF Test Anwendung ausführen funktioniert nicht Allgemeines EE 7
M Fehler in JSF Anwendung Allgemeines EE 4
M Web Anwendung soll auf Basisobjekte zugreifen können Allgemeines EE 2
M Intranet-Anwendung auf Basis von JSF Allgemeines EE 11
N Tomcat GWT-Anwendung - An beliebiger Stelle schreiben Allgemeines EE 2
ARadauer aus j2se anwendung auf j2ee elemente zugreifen Allgemeines EE 2
S Keystore Zugriff aus Web-Anwendung Allgemeines EE 2
P Testen von Struts-Anwendung Allgemeines EE 7
E freien Forum-Anwendung Allgemeines EE 8
T eine web anwendung bereitstellen ? Allgemeines EE 5
P Struts Anwendung- FormBean Tabelle mit input type=text Allgemeines EE 2
G Anwendung mit Web- und Windowsclient Allgemeines EE 5
A Anwendung auf WebSphere deployen Allgemeines EE 3
W Woraus baut man eine Super-Business-Anwendung? Allgemeines EE 5
T URL der Anwendung bekommen. Allgemeines EE 2
O MVC was gehört ins Model bei einer relationalen DB Allgemeines EE 5
E Entities im JSF/GUI-Layer, Frage zu 3-Layer-Model Allgemeines EE 2
clemson Model-View-Controller - Darstellungslogik - Anwendungslogik Allgemeines EE 8
T MVC-Architektur Allgemeines EE 1
F Unterschied Design Pattern / Architektur Pattern? Allgemeines EE 4
S Architektur GWT + EJB Allgemeines EE 8
G Architektur- Frage Allgemeines EE 5
P Architektur Java EE <-> HTML5 Allgemeines EE 3
G J2EE Architektur Allgemeines EE 40
S J2EE Architektur/Pattern/... Allgemeines EE 11
A JEE Architektur Allgemeines EE 4
G Unterschied MVC - 3tier-Architektur Allgemeines EE 7
ARadauer generelle Architektur Fragen Allgemeines EE 44
M Chatähnliche Architektur mit JEE/JBoss Allgemeines EE 2
F Frage zur guten Architektur einer WebApp Allgemeines EE 2
G Application Server! Gibt es eine grundsätzliche Architektur? Allgemeines EE 9

Ähnliche Java Themen

Neue Themen


Oben