Unterschied zwischen JSP und JSF

Zweipunktnull

Commander
Registriert
Dez. 2004
Beiträge
2.546
Bei dem Titel wird der ein oder andere wahrscheinlich mit den Augen rollen, weil er Titel wie diese schon öfters gelesen hat und sich fragt, ob ich nicht einfach eine Suchmaschine benutzen kann. Allerdings hab ich mir schon etliche Seiten im Internet angesehen, die einen ähnlichen Titel wie diesen hatten, aber wirklich zufrieden bin ich mit allen Ausführungen bisher nicht. Aber die FB-Community kann mich bestimmt bestens Aufklären. :)

Zu meinem Kenntnisstand: Ich habe grundlegende Kenntnisse in JSF und diese auch schon öfters angewendet. Gleichzeitig habe ich allerdings null Ahnung von JSP, da ich als VDL Facelets statt JSPs verwende. Daher weiß ich zwar, was JSF kann, aber eben nicht, was JSP nicht kann. Somit habe ich Schwierigkeiten damit, es wirklich zu erfassen, was JSF JSP nun voraus hat.

Da man bei JSF als VDL sowohl Facelets als auch JSPs verwenden kann, ist natürlich klar, dass JSP einerseits ein Teil von JSF ist. Dennoch hat andererseits meiner Meinung nach auch ein direkter Vergleich JSF vs. JSP durchaus seine Berechtigung.

Die Hauptaufgaben von JSF so wie ich es verstehe sind:
  • Trennung der einzelnen Schichten einer Applikation (MVC)
    Das kann JSP auch: Spätestens seit JSTL und EL kommt eine JSP komplett ohne eingebetteten Java-Code aus.​
  • Einfacher Datentransfer zwischen Model und View
    Das kann JSP auch: Dank der EL kann ich in JSP fast wie in JSF Elemente der Oberfläche mit dem Model verknüpfen.​
  • Bereitstellung von wiederverwendbaren Komponenten
    Das gibt es in JSP wohl nicht so direkt, allerdings gibt es dort ja auch Taglibraries. Da ich wie gesagt kaum Ahnung von JSP habe, weiß ich nicht, inwieweit die Tags aus diesen Bibliotheken mit JSF-Komponenten wie inputText oder commandButton vergleichbar sind.​
  • Ereignisbehandlung
    Hier gibt es auch in JSP die Möglichkeit, ausgelöst durch den Benutzer Java-Methoden auszuführen etc.​
  • Navigation
    Bin ich mir auch unsicher, was JSF hier so viel besser kann als JSP. Ganz offensichtlich habe ich allerdings schon mal durch eine JSP-Website navigiert, Navigation scheint also möglich zu sein. ^^​

Obwohl JSP also einerseits ein Teil von JSF ist, können beide eigentlich dieselben Aufgaben übernehmen. Mein Problem ist wie gesagt, dass ich JSP nur aus ein paar Artikeln kenne, aber nie damit gearbeitet habe.

Gibt es hier jemanden, der mir ganz konkret den Unterschied zwischen den beiden erklären kann? Mit konkret meine ich z.B.: Was genau kann JSF, was mit JSP unmöglich ist? Was ganz konkret ist mit JSF einfacher als mit JSP. Im Web hab ich bisher meist nur allgemeines Gefasel gefunden, bei dem ich immer den Eindruck hatte, dass der Autor selbst wohl auch nicht so wirklich richtig Ahnung hatte.
 
Moin,

JSP ist nicht ein Teil von JSF. JSP gab es schon lange vor JSF.

Man kann JSF allerdings mit Hilfe von Taglibs in JSPs verwenden.

Was ist JSP NICHT?
JSP hat kein Navigationskonzept im Sinne von JSF. JSP kennt auch keine Events. Weiterhin stellt JSP auch keine fertigen GUI-Elemente zur Verfügung. Diese muss man sich selber erstellen, wenn man es schöner will nimmt man entweder ein Javascript-Framework wie ExtJS oder nutzt Taglibs, welche GUI-Elemente erzeugen können.

Verwendest für JSF für JSP-Seiten, dann nutzt du sogar schon Taglibs. JSF stellt diese für JSP zur Verfügung.


Was ist JSP?
In erster Linie bei naiver Nutzung kann man JSP wie eine PHP-Seite betrachten, man könnte Javacode mit HTML mischen. Das macht man aber schon seit viele Jahren nicht mehr so, weil es schon bei mittelgroßen Projekten einfach nur ins Chaos führt, vor allem, wenn man mit mehreren Leuten arbeitet.

Heutzutage werden JSPs nur noch für die Ausgabe (View) genutzt und nicht mehr zur Datenverarbeitung (Controller). Das sieht praktisch so aus, dass man ein oder mehrere Servlets schreibt, die die Viewdaten (Texte, BildURLs etc.) aus der Session (Model) zusammensammeln und als Ergebnis in den Servletrequest legen. Dann wird der Request (mit den Viewdaten) auf die entsprechende JSP weitergeleitet (z.b. Loginscreen). Dort wird dann mittels EL nur noch das HTML erzeugt.


Servlets verwendet man allerdings nicht mehr "nackt". Man nutzt in der Regel ein Framework wie Spring-MFC oder Struts, welches einem eine Menge arbeit abnimmt.


Unterm Strich macht es Sinn, wenn du bei Facelets bleibst, wenn du JSF verwendest. Die Fachmagazine betrachten Facelets gegenüber JSP als bessser (IM KONTEXT VON JSF).


Ich persönlich habe beides schon verwendet JSP pur und "JSF auf Basis von JSP". Unterm Strich war für meine Projekte JSF nicht sinnvoll, weil es schwierig ist besondere visuelle Wünsche von Kunden damit umzusetzen. Ich fühle mich dort ziemlich in eine Korsett eingezwängt und auch wenn man vieles austauschen kann, so ist es im Vergleich zu nur JSP + Javascript zu kompliziert.




Ich denke fürs erste reichen diese Infos. Stell lieber Detailfragen, wenn etwas unklar ist.
 
Zurück
Oben