JSP für MVC geeignet?

Status
Nicht offen für weitere Antworten.

Antoras

Top Contributor
Hallo,

nach längerer Zeit widme ich mich gerade wieder dem Thema JSP. Allerdings steig ich mal wieder nicht so richtig beim Aufbau einer Webapplikation mit JSPs durch.

Mein Ziel ist, dass ich so wenig Java-Code wie möglich in ein JSP auslagere bzw. dort keine Berechnungen anstelle, sondern lediglich die Benutzereingaben an meine Servlets weitergebe, welche die Daten dann verarbeiten und letzten Endes dann ein JSP mit den ausgewerteten Daten an den Benutzer zurücksenden.
Bisher haben sich Tutorials, die ich gefunden habe aber nur darauf beschränkt, dass ich entweder nur JSPs oder nur JSPs mit Servlets hatte, sonst aber keine weitere Java-Klassen.
Deswegen meine Frage: Macht man das mit JSPs so, also dass man kein großartiges MVC-System aufbaut (kann ja fast nicht sein -> ist ja viel zu redundant / unübersichtlich)?

Nächste Frage: Wenn man das so macht, was für Alternativen hab ich dann? Ich hab in dem Java-Dschungel mit Frameworks und sonstigen Techniken irgendwie den Überblick verloren. Welches System würde mehr an meine Anforderungen passen? Oder kann ich meine Anforderungen so mit einer Webapplikation überhaupt nicht / nur schwer verwirklichen?
 

miwoe

Mitglied
Solltest die Quellen über JSP mal weiter lesen. Irgendwann wirst du sicher auch auf beans stoßen.

Und wenn du dann so richtig MVC machen willst :D ,schau dir ein schönes Webframework an.

JSF, Struts, Tapestry...., die unterstützen alle MVC, jede so ihre Eigenarten

Open Source Web Frameworks in Java
 

haf_blade

Mitglied
Hi

also ich kann auch Java Server Faces empfehlen.
Habe mich da vor kurzem reingearbeitet und ich finde den Einstieg recht einfach.
Es ist auch sofort ersichtlich wie die MVC Struktur aussieht.

Hier ein kleines Beispiel:

GUI: JSP (per JSF Tag Bilbilotheken)
Model/Controller: Enterprise Beans
temporäre Daten: Beans
Datenbankzugriff: Persistence API

So kann man die grafische Oberfläche komplett von der Datenverarbeitung etc. trennen, genau wie die Datenbankzugriffe von der Datenverarbeitung.

Ich empfehle dazu eigentlich immer, dass man sich ein Buch beschafft, der Übersicht wegen aber das ist halt Geschmackssache
 

Antoras

Top Contributor
Danke für eure Antworten, ich hatte im Prinzip schon ein kleines MVC-System, war nur verunsichert ob sich das lohnt, bzw. ob es in Verbindung mit JSPs sinnvoll ist, da ich nur Tutorials / Codebeispiele gefunden hab, die nicht auf dem genannten System aufbauen.

Frameworks guck ich mir erst näher an wenn ich keine Lust mehr hab alles selber zu machen.

lg
Antoras
 
M

maki

Gast
Solltest aber wissen dass JSP ein Auslaufmodell ist... mit JSF 2.0 sind Facelets die Viewtechnologie.
 

Antoras

Top Contributor
Ist mir bewusst, aber da das Wissen wie man eine Serverapplikation aufbaut bei beiden Technologien benötigt wird ist es am Anfang wohl egal welche der beiden Technologien man sich anguckt. Und schaden kann es ja auch nicht wenn man sich JSPs mal angeguckt hat.

Oder bieten Facelets so spektakuläre Vorteile (vor allem in Verbindung mit JSF), dass es Zeitverschwendung wäre sich noch JSPs anzugucken (auch im Wissen, dass man irgendwann mal wechseln muss)?

EDIT: Hab mich nochmal ein wenig über die Unterschiede von Facelets und JSPs informiert. Habe rausgefunden, dass sich erstere nur in Verbindung mit JSF lohnt. Und da ich kein Interesse daran hab bleib ich erst mal bei JSPs und schau mir die Alternativen dann an, wenn ich mal Lust auf was neues hab.
 
Zuletzt bearbeitet:
M

maki

Gast
Oder bieten Facelets so spektakuläre Vorteile (vor allem in Verbindung mit JSF), dass es Zeitverschwendung wäre sich noch JSPs anzugucken (auch im Wissen, dass man irgendwann mal wechseln muss)?
Ja.
Sobald man ein neues JSF Web-Projekt in Java entwickelt, ist JSP eingetlich der falsche Weg.

EDIT: Hab mich nochmal ein wenig über die Unterschiede von Facelets und JSPs informiert. Habe rausgefunden, dass sich erstere nur in Verbindung mit JSF lohnt. Und da ich kein Interesse daran hab bleib ich erst mal bei JSPs und schau mir die Alternativen dann an, wenn ich mal Lust auf was neues hab.
Wie gesagt, JSP wird nicht mehr weiterentickelt, ist nur noch für "legacy" Projekte relevant ;)
Davon gibt es natürlich noch einige, aber auf Dauer wirst du mit JSP nicht glücklich werden.
 

deamon

Bekanntes Mitglied
Wenn ich dich richtig verstehe, brauchst du eine Template-Engine und eine MVC-taugliche Infrastruktur, die ihre Ausgaben mit Hilfe der Template-Engine macht. Dass JSP nicht so der Hit ist, ist ja hier schon angeklungen. Ich würde für diesen Zweck eine allgemeine Template-Engine verwenden, die nicht an einen Servlet-Container gebunden ist: FreeMarker oder Velocity zum Beispiel.

Wie weit du bei MVC Handarbeit machen willst, weiß ich nicht, aber wenn du es pur magst, könntest du mit Servlets + z. B. FreeMarker loslegen. Und wenn du auf mehr fertige Infrastruktur zurückgreifen will, könntest du z. B. Spring MVC verwenden.
 

Antoras

Top Contributor
Das mit ner Template-Engine hört sich interessant an, werde ich mir mal näher anschauen. Aber lohnt sich das überhaupt ein externe Template-Engine anzuschauen? Schließlich verfügt JSP ja auch über Templates. Und das ganze Zusatzzeugs wie Codegenerierung über des bspw. FreeMarker verfügt brauch ich sowieso nicht.

Ich hatte schon vor beim MVC-Aufbau so viel wie möglich selbst zu machen. Aber inwiefern mich z.B. das genannte Freemarker oder auch Facelets dabei unterstützen sollen versteh ich nicht so richtig. Das wirkt auf mich so nach der Art "auf fette Webapplikationen" hochgezüchtet.
 

deamon

Bekanntes Mitglied
JSP ist im Prinzip nichts anderes als eine Template-Engine - nur keine schöne. JSP ist umständlicher als nötig und man braucht immer einen Servlet Container. JSP ist also nicht gerade vielseitig. Wohingegen man FreeMarker oder Velocity in jeder beliebigen Anwendung verwenden kann. Und wenn FreeMarker mehr kann, als du brauchst, musst du diese Zusatzfunktionen ja nicht verwenden - es ist trotzdem einfach zu nutzen.

Der Ablauf in deinem Servlet sähe prinzipiell so aus:
1. Request verarbeiten und Antwort-Objekt(e) erstellen
2. Antwort-Objekte an Template-Engine übergeben
3. Ergebnis der Template-Engine (typischerweise eine HTML-Seite) an den Browser schicken.
 

Antoras

Top Contributor
Ich werde mir die nächsten Tage mal eine deiner genannten Template-Engines genauer anschauen. Vielleicht bin ich ja gleich so begeistert, dass ich keine JSP mehr verwenden möchte. Auf einem anderen Weg als ausprobieren bekomme ich sowieso nicht raus was besser ist...
 

Svenni

Mitglied
Hi

also ich kann auch Java Server Faces empfehlen.
Habe mich da vor kurzem reingearbeitet und ich finde den Einstieg recht einfach.
Es ist auch sofort ersichtlich wie die MVC Struktur aussieht.
Meiner Meinung nach ist das nicht unbedingt sofort ersichtlich. Gerade bei JSF findet man viele (!) unterschiedliche Meinungen zu den Teilen Modell und Controller.

Hier ein kleines Beispiel:

GUI: JSP (per JSF Tag Bilbilotheken)
Model/Controller: Enterprise Beans
temporäre Daten: Beans
Datenbankzugriff: Persistence API

Dazu hab ich vor kurzem eine Frage im Web Tier gestellt. Wie würdest du die Action-Methoden der Beans einordnen?
 
M

maki

Gast
Hi

also ich kann auch Java Server Faces empfehlen.
Habe mich da vor kurzem reingearbeitet und ich finde den Einstieg recht einfach.
Es ist auch sofort ersichtlich wie die MVC Struktur aussieht.

Hier ein kleines Beispiel:

GUI: JSP (per JSF Tag Bilbilotheken)
Model/Controller: Enterprise Beans
temporäre Daten: Beans
Datenbankzugriff: Persistence API

So kann man die grafische Oberfläche komplett von der Datenverarbeitung etc. trennen, genau wie die Datenbankzugriffe von der Datenverarbeitung.

Ich empfehle dazu eigentlich immer, dass man sich ein Buch beschafft, der Übersicht wegen aber das ist halt Geschmackssache
Die meisten Leute würden MVC in einer Schichtenanwendung falsch erklären ;)

MVC existiert nur in der Presentationtier ;)
EJBs (Entity Beans) können als Model genutzt werden (oder man nimmt TOs), aber eine EJB ist niemals ein Controller für MVC ;)
SessionBeans werden auch mal als ApplicationController bezeichnet, hat aber nix mehr mit MVC zu tun.
Die ManagedBeans in JSF sind die sog. ViewController...
 

Svenni

Mitglied
Danke für die Antwort maki.
Meinst du die "komplette Managed Bean"? (ich weiss das sich das blöd anhören muss)
Wie im Post im Web Tier Forum geschrieben hätte ich bisher die Action-Methoden dem Controller zugeordnet und die restlichen Teile der Bean dem Modell. Oder darf man das nicht so aufgeteilt sehen?

Die meisten Grafiken zeigen einfach nur die Managed Bean und sagen: Modell. Und andere (auch Bücher) sagen dann teils sowas: "...verbietet sich die Verwendung des vorgestellsten Code-Musters im Controller einer MVC-Lösung, im Falle von JSF den Action-Methoden der Managed-Beans". Das verwirrt mich halt etwas.
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
D Neue Versionen für Serveranwendung Allgemeines EE 2
Oneixee5 JSON für Spring Boot Endpunkte erzeugen Allgemeines EE 8
TheWhiteShadow JSF plugins für tomcat webapp Allgemeines EE 0
R Docker für Windows in Microservices-Projekt Allgemeines EE 2
2 Wildfly JPA Konfiguration für mysql Allgemeines EE 0
R RHCSA/RHCE für Software Architect? Allgemeines EE 1
G JSF Datenstruktur für DataTable Allgemeines EE 2
S Welcher Java EE Applikationserver für RESTful Webservice? Allgemeines EE 2
G Softwarearchitektur für Batchjobs Allgemeines EE 1
A @Webfilter - für doppelte Anmeldung Allgemeines EE 0
R DotNet für J2EE Programmierer Allgemeines EE 1
I Brauche Anregungen für Mandantensystem: Abspeicherung Allgemeines EE 4
R Welches System das beste für programmierer. Linux oder Windows Allgemeines EE 8
L JSP: Dynamischer Content mit Beans für einen Konfigurator? Allgemeines EE 0
M JAX-RS: Unterschhiedliche Typen für POST und GET Allgemeines EE 1
A Zufallstext für YellowPress Allgemeines EE 5
D Prozess für die Zusammenarbeit Allgemeines EE 7
F Gesucht: Gratis Server für Java Entwickler Allgemeines EE 4
A Ideen für Datenhaltung Allgemeines EE 9
c_sidi90 Gute Bücher/Tutorials für Einstieg in JSP/Servlets Allgemeines EE 3
H Glassfish - Open Source Lizenz für den kommerziellen produktiven Einsatz? Allgemeines EE 2
Evil-Devil Server/Tech-Empfehlung für Web-App? Allgemeines EE 12
M Wegweiser für Projekt einer Katastrophen-Stab-SW gesucht! Allgemeines EE 2
slawaweis CMS Unterbau für eine Web 2.0 Anwendung Allgemeines EE 4
B Frameworks/Technologien für Web-Anwendungen Allgemeines EE 16
P Nur ein User für Web Application Allgemeines EE 11
W Struts Tutorial für EE Noobs? Allgemeines EE 2
H Installer für Tomcat-Anwendung Allgemeines EE 5
D maven für javaEE projekt Allgemeines EE 20
Java.getSkill() Anwendung Beans für Formulare Allgemeines EE 5
T Einstieg JEE: Frage für Frage bis zum Erfolg :-) Allgemeines EE 28
I Für dieses Projekt ausreichend? Allgemeines EE 6
P [Maven2] maven-jaxb2-plugin - Kein absoluter Pfad für "<schemaDirectory> möglich??? Allgemeines EE 2
T Suche Buch für: Large Scale Web-Apps | Clustering | Scaling in Java ? Allgemeines EE 4
2 JSTL Tags für eine Bean? Allgemeines EE 4
S Weboberfläche für jconsole Allgemeines EE 5
I Klassen werden nicht für Import erkannt eclipse EE Allgemeines EE 2
F Architekturvorschläge für Online-Wörterbuch? Allgemeines EE 5
foobar Client-Jar und JPA-Entities für Remotzugriff Allgemeines EE 12
G Framework für selbsterstellte Formular und Seiten gesucht Allgemeines EE 3
R Sourcen einbinden von J2EE bzw auch für Servlets in Eclipse Allgemeines EE 8
D Standard für Authentifzierung und Autorisierung Allgemeines EE 5
D Liste für dataTable (JSF) manuell füllen Allgemeines EE 2
R Tutorial für J2EE Allgemeines EE 3
F FORM Auth in JBoss für User mit falscher Rolle ? Allgemeines EE 2
M Eclipse GUI für EJB-QL bzw HQL? Allgemeines EE 4
eskimo328 java oder php für Support-Ticketing-System Allgemeines EE 12
A web.xml für Servlet in Tomcat 5.5 erstellen Allgemeines EE 2
J Timeout für InitialContext Allgemeines EE 2
A web.xml für Servlet in Tomcat erstellen Allgemeines EE 6
J Encoder für Java String in html format Allgemeines EE 6
N Zugriff auf Webapp nur für localhost definieren (Tomcat) Allgemeines EE 2
J Konvertierungs-Fehler: Wert ''{0}'' für Modell ''{1}'' Allgemeines EE 10
flashfactor Gibt es ein Case Management für Java Application Server? Allgemeines EE 6
T Zu blöd für JSTL Allgemeines EE 6
B GlassFish & JAAS - Konfiguration für AppClient Allgemeines EE 1
M Kostenloses JSP Plugin für Eclipse Allgemeines EE 6
flashfactor Gibt es ein Transportsystem für Java EE Allgemeines EE 5
boxi JSF für Anfänger Allgemeines EE 8
F JSF h:outputlink für zurück Allgemeines EE 5
boxi JSF Parameter für die nächste seite übergeben Allgemeines EE 2
W Arbeitsumgebung für JSP-Development einrichten (Eclipse, .) Allgemeines EE 3
F Quiz in JSP - Sessionvariable mitzählen (für richtige Antw.) Allgemeines EE 2
P Basissystem für J2EE App Allgemeines EE 5
P JSP Servlets/ Java Klassen für FTP FileUpload (Bilder) + DB Allgemeines EE 3
W Statistiken für Webseiten? Allgemeines EE 2
E Popup Fenster für fertige JSP Seit? Allgemeines EE 3
G Java EE SDK für Mac OS X? Allgemeines EE 3
K JSP für DB-Verbindung Allgemeines EE 4
H relativer Pfad für stylesheet und Pics Allgemeines EE 5
H Gibt es ein jBoss Tutorial für JSPs ? Für Anfänger ? Allgemeines EE 5
J JSF: Authentifizierung für einen einzigen Fall "umgehen Allgemeines EE 6
H Test Application für Tomcat Allgemeines EE 3
S String escpapen für JavaScript, Datenbank, HTML Allgemeines EE 2
C Tutorial für JSF Allgemeines EE 4
G WEB-INF/classpath funktioniert nicht für Dateien Allgemeines EE 2
G StandAlone & DB im Intranet [Ehem.: Beratung für Einstei Allgemeines EE 8
Phreaker Wo bekomm ich für den JBOSS ne build.xml her? Allgemeines EE 2
B Java-Client für eBaySOAP-API liefert HTTP(400) Bad Request Allgemeines EE 2
M image für submit button Allgemeines EE 3
F relativer Pfad in Servlets für Dateien Allgemeines EE 2
H Schnelleinstieg für J2EE Projekt? Allgemeines EE 5
B Besondere Ländereinstellungen für eine TomcatApp Allgemeines EE 2
G Firefox Plugin für HTTP (req&resp) visualisierung? Allgemeines EE 2
ronny "jWic" Projekt: Framework für Webapplikationen Allgemeines EE 8
H JNDI Name für die Queue - Connection Factory in JBoss ändern Allgemeines EE 3
A Dateinamen für OutputStream Allgemeines EE 2
C "Data-holding" Klasse für JSP und ear Allgemeines EE 9
G Kickstart für JSF Allgemeines EE 2
D wysiwyg-editor für velocity? Allgemeines EE 3
J Hilfe. brauche Dokumente für die Diplomarbeit Allgemeines EE 9
A relativer Pfad zim Tomcat-Verzeichnis für FileInputStream Allgemeines EE 3
A Brauche ich J2EE für Beans? Allgemeines EE 9
J Test-Tools für JSP-Files? Allgemeines EE 9
C JSP Editor für Linux Allgemeines EE 3
S gibt es free hosting für jsp??? Allgemeines EE 11

Ähnliche Java Themen

Neue Themen


Oben