JSP Verständnisfragen zu MVC

hawkeye78

Bekanntes Mitglied
Hallo,

ich versuche mich im moment in das Thema JSP einzuarbeiten und nachdem ich gestern mit viel Untersützung Tomcat zusammen mit der Manager-Oberfläche zum Laufen gebracht hat und mein erstes Hallo Welt Programm läuft, bin ich jetzt dabei mich in die Architekturen einzuarbeiten und versuche MVC zu verstehen. Aus diesem Grund würde ich mich freuen ob mir zum einen jemand sagen kann ob ich es richtig verstanden habe und zum anderen wie ich am besten lerne das ganze auch zu implementieren.
Zum Verständnis bei dem MVC existiert eine index.jsp die nach einer Aktion durch den Benutzer wie das Anklicken von einem Button oder Link, einen Controller startet, der anhand der gestellten Anfrage Modell aufruft, welches Daten aus einer DB liest, diese dahin schreibt oder sonst etwas verarbeitet. Wenn nun Daten aus einer DB o.ä. gelesen werden, wird der Viewer aufgerufen der die Daten dann ausgibt. Allerdings herrscht an dieser Stelle nun schon unklarheit bei mir, wird der Viewer durch Control oder Modell aufgerufen? Ich habe heute nach einer Unterhaltung mit einem Bekannten erfahren das das klassische MVC-Konzept eigentlich vorsieht, das Modell nur einen Broadcast an alle Viewer sendet und diese sich dann "selbstständig" aktualisieren, allerdings scheint das ganze bei Webanwendungen etwas aufgeweicht zu sein.
Was nun die Implementierung betrifft, ich habe bereits ein bisschen im Netz gesucht und bin auf ein Beispiel[1] gestossen indem ein Formular verarbeitet wird, allerdings wird bei diesem als action im formular-header die Daten an ein XML Deployment Descriptor übergeben auf den ich mir bis jetzt noch so überhaupt keinen Reim machen kann. Aus diesen Gründen würde ich mich freuen wenn mir jemand sagen könnte ob ich das Konzept richtig verstanden habe und wie ich so etwas am besten implementiere bzw. was ich am besten lesen kann um all die Fragezeichen in meinem Kopf zu verscheuchen.
Ich programmiere zwar schon eine Weile in Java allerdings ist JSP im moment für mich völliges neuland, aus diesem Grund wäre ich für jede weitere Hilfe sehr dankbar.
Viele Grüsse
Dan


[1] JSP - MVC Tutorial
 

tagedieb

Top Contributor
Der XML Deployment Descriptor (web.xml) ist eine Konfigurationsdatei, die in jeder Webapplikation benoetigt wird.
Diese hat nichts mit MCV zu tun sondern sie definiert die Komponenten einer Webapplikation (Servlets, Filter, Listener, Resources, Security,...)

Der Controller uebernimmt die Steuerung deiner Applikation. Dies ist der Einstiegspunkt des Requests und hier wird die Verarbeitung vorgenommen (Laden und Speichern von Daten, Initialisieren von Objekten) und leitet den Request an die entsprechende View (JSP) weiter.

Das Model repraesentiert die BuisnessObjekte (Daten) und auch Businesslogik. Das Model bietet Methoden zum auslesen und modifizieren der Daten. Zum Beispiel das Model Coffee bietet ev. Methode wie kochen, Milch und Zucker zugeben, trinken. Diese Methoden veraendern das Model haben aber mit der Applikationssteuerung nichts zu tun.

Die View (JSP) wird am Schluss aufgerufen um aus den vom Controller bereitgestellen Daten (Model) die Ausgabe zu erzeugen und an den Client zurueckzuschicken. Die View beinhaltet nur Logik zum Anzeigen von Daten, liest aber keine Daten von der Datenbank oder implementiert Businesslogik.


Es gibt hunderte von Frameworks welche MCV unterstuetzen: JSF, Struts, Spring MCV, ...
Such dir eins aus und arbeite das Tutorial durch.


Hope this helps...
 

hawkeye78

Bekanntes Mitglied
Hallo,

das hilft mir schon sehr weiter, vielen Dank vor allem im Bezug darauf aus welchem Teil ich am besten die View aufrufe. Jetzt hätte ich allerdings noch die Frage, welches Framework ich als Anfänger am besten benutze, den ich habe mir sagen lassen das z.B. spring sehr kompliziert sein soll und darum eher wenig für Anfänger geeignet ist.
Viele Grüsse
Dan
 

brauner1990

Bekanntes Mitglied
Struts ist tippe ich nciht die erste Wahl, aber wenn man dort einmal drin ist, ist dies auch sehr einfach zu implementieren.

Ich habe mir mal eine DefaultActionSupport geschrieben und die kann ich auch weitergeben. Mithilfe dieser Klasse kann man als Erbe einfach eine Action für Struts erstellen, diese muss dann nur noch eingetragen werden in der strtus.cfg.
 

hawkeye78

Bekanntes Mitglied
So nachdem ich nun Eclipse dazu gebracht habe mit JSP umzugehen und Tomcat zusammen zu arbeiten, habe ich mir überlegt das es gut wäre zunächst ein Gefühl für MVC zu bekommen und ich denke das geht am einfachsten wenn ich es mal in irgendeiner Form implementiere. Allerdings ergibt sich für mich nun eine Frage eigentlich wird der Contrller ja erst aufgerufen wenn etwas passiert also eine interaktion stattfindet. Nun hatte ich aber die Überlegung das ja auch bei dem Aufruf der Seite ohne weitere Parameter wenigstens einmal der Controller aufgerufen werden muss, um die Startseite auszugeben. Darum hätte ich nun die Frage, wie kann so etwas bewerkstelligt werden, meine Überlegung geht im moment dahin das ich in der index.jsp einen Block in der Form
Java:
if(request.getParameter("name") == null)
{
// Aufruf vom Controller ohne Parameter
}
habe. Allerdings bin ich mir nicht sicher ob das der sauberste Weg ich, den ich habe gestern erfahren das es auch irgendwie über die Welcome File List geht (aber vielleicht habe ich das auch nur falsch verstanden). Auf jeden Fall wäre ich über ein klein Wenig hilfe sehr dankbar.
viele Grüsse
Dan
 

tagedieb

Top Contributor
Siehe Configuration Welcome Pages

Aber es geht ja erst mal darum das Gefuehl fuer MVC zu bekommen, deswegen spielt eine 'saubere' Loesung nur ein untergeordnete Rolle. Wenn du dich spaeter ein bestehendes Framework verwendest kannst deine Loesung damit vergleichen und schauen wie es dort geloest wurde.
 

hawkeye78

Bekanntes Mitglied
Hallo,

vielen Dank für den Hinweis wie man eine Welcome Site konfiguriert ich werde es mir auf jeden Fall anschauen dann meine ersten geh versuche machen. Ansonsten hätte ich die Frage, wenn JSP veraltet ist was benutzt man dann anstelle von JSP?
Viele Grüsse
Dan
 
M

maki

Gast
JSF mit Facelets, Wicket, Tapestry, GWT, usw.

Es stört sicherlich nicht wenn du die JSP Grundlagen draufhast.
 

Neue Themen


Oben