# JSP => JSF - Ab wann?



## miketech (28. Jul 2007)

Hi zusammen,

privat erstelle ich gelegentlich kleine Homepages, bestehend aus vielleicht einem Kontaktformular, Gästebuch, Newsletter-Service etc.

Normalerweise verwende ich für solche Zwecke, wie viele andere auch, PHP. Im Moment verwende ich zusätzlich ein Templating-System.

Jedes mal habe ich das Problem, dass nach ein paar hundert Zeilen Code das ganze leicht unübersichtlich wird. Mir fehlt hier wohl die Disziplin, um ordentlichen PHP Code zu schreiben, ist also keine Kritik an PHP an sich (nicht, dass hier solche Diskussionen losgehen). Mit den Templating-System komme ich deutlich besser zurecht, so dass das ganze schon ganz sauber getrennt ist, aber so 100% zufrieden bin ich nicht.

Parallel beschäftige ich mich auch mit JSF. Mit Facelets bin ich hier sehr zufrieden, was die Struktur und Übersichtlichkeit angeht.

Mich würde daher mal interessieren: Ab welcher Projektgröße macht es Eurer Meinung nach Sinn auf JSP zu wechseln und ab wann auf JSF?

Für kleine Projekte reicht ja sicher auch JSP + Servlets, um dynamische Inhalte zu erstellen. Wie es hier mit Templates aussieht, weiß ich nun nicht.

Ab wann würdet ihr zu JSF wechseln?

Es gibt hier verschiedene Kriterien, die ich versuche abzuwägen: Einmal bietet mir JSF in einigen Dingen mehr Komfort. Ob die jedoch in einer kleinen Homepage von Nöten sind, weiß ich nicht  

Vorteil von PHP: Ich benötige keine besonderen Tools, muss nichts erst kompilieren etc. Ich kann sehr schnell an einer Datei etwas schrauben und diese einfach wieder hochladen. Um bei einer JSF-basierten Seite mal eben eine Kleinigkeit zu ändern ist deutlich mehr Arbeit notwendig. Mal abgesehen von den zusätzlichen Anforderungen an den Server. Ein Umzug auf einen anderen Server kann hier schnell zum Problem werden. Aber das möchte ich außen vor lassen.

Daher: Macht es überhaupt Sinn solche harten Geschütze bei kleinen Projekten aufzufahren? Mich reizt es ja immer, damit ich mit diesen Frameworks mal mehr zu tun habe, aber es sollte natürlich zielorientiert entschieden werden. 

Gibt es hier jemanden, der auch bei privaten kleinen Webseiten auf JSP/JSF etc. setzt? Oder ab wann würdet ihr sagen lohnt sich der Aufwand?

Gruß

Mike


----------



## WeirdAl (28. Jul 2007)

Hi,
das Hauptproblem bei JSF bzw. Servlet Projekten Allgemein ist, dass der Webspace bzw ein Tomcat Server um einiges teurer als das PHP Zeugs ist. Für 10€ bekommst Du zB "nur" 50 MB Webspace für dein JSF Projekt + 5 Gig Traffic im Monat. 

JSF würde ich mittlerweile eigentlich immer einem reinen JSP/Servlet Projekt vorziehen. JSF bietet einfach durch die Komponenten zuviel Komfort und man kann schön sauber im Model 2 programmieren. Wenn Du natürlich nur eine Registerform und ein Auswertungsservlet machen willst, dann mach das mit dem "alten" Zeugs. Wenn Du jedoch ein Projekt beginnst, das evtl. nach und nach wachsen soll, dann würde ich alleine wegen dem Bean- und Navigationsmanagement auf JSF umsteigen.

Cu
Alex


----------



## miketech (28. Jul 2007)

Hi Alex,

danke für die Antwort. Das mit dem Server ist zwar ein Argument, soll aber hier mal nicht ausschlaggebend sein. 

Setzt Du dann schon auf Frameworks, wie Seam oder einfach nur JSF? 

Seam ist natürlich nochmal ein paar Kilos schwerer  

Gruß

Mike


----------



## WeirdAl (28. Jul 2007)

Hi Mike,
ich halte mich zur Zeit nur an JSF. Da ich noch in der Entdeckerphase bin bzw. denmnächst als Junior JEE Entwickler anfange zu arbeiten, wars mir wichtig die "Standards" JSP/Servlet/JSF zu lernen. 
Als Nebenprodukt kamen dann einige Komponentenbibs (RichFaces, Ajax4JSF) hinzu und ich hab eine Menge über die Basics gelernt.
Evtl. komme ich dank des Jobs auch mal mit Seam und Co. in Kontakt. Interessieren würde es mich auf jedenfall. EJBs würde ich gerne mal einsetzen, aber da ich bislang dies nur aus Hobby gemacht habe, hatte ich keine Verwendung dafür (JBoss Hosting beginnt bei 59€ ).

Cu
Alex


----------



## miketech (29. Jul 2007)

Hi,

ah ok. Also Seam klingt ja ganz interessant, aber ich weiß nicht, ob ich die Mischung von GUI-Logik und Business-Logik überhaupt möchte. Aber Seam bringt hier eben deutliche Einfachheit und wohl auch eine Menge für Transaktionen etc. Hab bisher nur einige Artikel gelesen. Mit einem EJB Container läuft Seam aber auch im Tomcat. Muss also kein JBoss Hosting sein. 59 €... Puh 

Ich bin von den Technologien immer total erschlagen. Da hat mans mit .NET etwas einfacher. Einfach ASP.NET, bumm aus. Bei Java ist die Auswahl immer immens. Dann bastel ich mal weiter an meinen JSF-Versuchen. 

Habe heute dafür wieder die Vorteile von PHP gemerkt: Sollte schnell an einer Seite ein Detail ändern: Eine Sache von wenigen Minuten. PHP-File runterladen, die Zeile ändern, hochladen, fertig. Vielleicht geht das mit JSF ja auch, wenn man weiß, wo und wie man da am besten was ändern muss.

Vielleicht gibt es ja noch andere Erfahrungen / Meinungen zu dieser Thematik.

Gruß

Mike


----------



## WeirdAl (29. Jul 2007)

Hi,
mit nem gescheiten Ant Script kannst Du das "schnell was ändern + neu hochladen" auch mit einem JSF Projekt erreichen 

Zum Thema erschlagen werden:
Als ich Anfang diesen Jahres mich wieder mit Java beschäftigt habe und in JEE einsteigen wollte, habe ich erstmal nen Monat gebraucht und mit den Begriffen EJB, JSF, Hibernate, Spring, Tomahawk, Application Server, + 20 Begriffe... klar zu kommen. Ich fand den Einstieg richtig hart und wenn man sich das Wissen ohne Schulung selbst zusammen suchen muss langwierig. Aber najo, da muss man halt durch 

Cu
Alex


----------



## miketech (29. Jul 2007)

Hi,

yup das stimmt schon, aber es lohnt sich ja auch  Aber sich dann noch für eine der X Ansätze zu entscheiden ist dann wieder schwer. Mal eben auf etwas anderes umzustellen ist ja auch keine Sache von 5 Minuten 

Bzgl. "Schnell hochladen": Ich dachte immer, ich muss den Quellcode erst noch auf dem Client kompilieren, dann das "war" erstellen und hochladen. Liegt das "war" denn immer so auf dem Server? Oder lade ich dann einzelne Files runter? Die sind doch immer kompiliert und kann ich nicht ändern oder?

Gruß

Mike


----------



## MichaelV (31. Jul 2007)

Hallo,

auch ich habe mich Anfang des Jahres das erste Mal mit JSF beschäftigt. Nach fast einem halben Jahr Pause ist das Thema jetzt wieder aktuell geworden.

Für eine kleine Homepage halte ich das Ganze einfach zu oversized. Wenn es an die Erweiterbarkeit geht, bin ich dagegen schon sehr beeindruckt, was alles machbar ist. Dazu gehören natürlich auch Facelets und die Flut verschiedener Komponentenframeworks.

Was allerdings ein großer Nachteil ist, sind die vielen verschiedenen Versionsnummer und Abhängigkeiten untereinander. Man weiß meist gar nicht genau, welches Framework in welcher Version mit JSF oder Myfaces in den unterschiedlichen Versionen überhaupt funktioniert. Das sehe ich momentan als eine große Hemmschwelle an.

Was passiert, wenn man unterschiedliche Frameworks vermischt, wage ich mir gar nicht erst auszumalen. Das könnte unter Umständen in vielen undefinierbaren Fehlermeldungen enden.

Was das einfache hochladen von änderungen angeht: 
Du musst Unterscheiden, ob Du Änderungen in der Darstellung machst, oder Änderungen im Code. Darstellungsänderungen kannst Du ähnlich wie bei PHP runterladen, ändern hochladen. Änderungen an der Logik im Java Code kannst Du natürlich auch "einfach hochladen", indem Du die generiereten class Files austaust, bzw. die erzeugte .jar Datei. 

Die war Datei ist zum einfachen deployen der kompletten Anwendung. Zu beachten ist hier natürlich, dass Du Zugriff auf das Filesystem brauchst, was in der Regel auch gehen sollte. Die war Datei kannst Du über den Tomcat Manager direkt hochladen und deployen. Allerdings geht die erste Variante natürlich schneller, wenn es sich nur um eine kleine Änderung handelt.

Gruß
Michael


----------



## WeirdAl (31. Jul 2007)

Hi,
allgemein halte ich es eh für sinnvoll bei einem Komponentenframework zu bleiben und diese nicht zu vermischen. Dann bleibt auch das Versionschaos überschaubar. 
Mit JSF 2.0, das Mitte 2008 kommen soll, wird dieses Versionschaos nicht mehr so sehr ins Gewicht fallen, da man dort wohl vorhat, die Standardkomponten Ajax-fähig zu machen, eine Art Facelets von Hause aus anzubieten uvm. (Dadurch benötigt man evtl. nur noch im Einzelfall Custom Komponentenframeworks).

Cu
Alex


----------

