# Macht es noch Sinn JSP zu lernen?



## TJava (11. Aug 2010)

Hallo,

ich wollte mal fragen ob es noch sinn macht, Servlets und JSP zu lernen.
Oder einfach nur JSF mit den entsprechenen Frameworks. 

MFG


----------



## PollerJava (11. Aug 2010)

Ja, sind die Grundelemente für viele Frameworks, außerdem bekommst du eine Idee, wie eine JavaEE- Anwendung abläuft.
JSP ist ein Framework, welches auf Servlet und JSP aufsetzt, so weit ich weiß,

Auf jeden Fall, ich kann dir da das Buch "Head First" empfehlen -> Head First Servlets and JSP - O'Reilly Media


----------



## TJava (11. Aug 2010)

Ja die frage ist ob es für die Praxis noch von Vorteil ist das man diese techniken kennt.

Oder ob es so ist als ob man weiß wie ein PC funktioniert, aber das braucht man ja auch nicht wirklich zum programmieren.

Also das es als Grundlage sein muss oder ob ich mit JSF was ja eine weiterentwicklung von JSP ist (richtig) auch alles kann ohne JSP, Servets genau zu kennen.

Klar wird man einige einstellungen etc. machen müssen, aber details meine ich.
wieso sollte man eine überholte technolgie noch lernen und zeit dafür aufwenden?
Oder ist meine Ansicht falsch?

MFG


----------



## maki (11. Aug 2010)

JSPs sind überholt, zumindest sieht Sun/Oracle das so.
Servlets sind immer noch Grundlage, JSF2.x setzt auf Facelets, für JSPs gibt es keine neuen Features mehr in JSF2.x.
Es kann nicht schaden die Grundzüge von JSPs zu kennen, gibt ja noch genug Legacy SW, aber für Neuwentwicklungen sind JSPs das falsche Mittel imho.


----------



## TJava (12. Aug 2010)

Na gut, also kann man schon JSF mit Facelets lernen und den rest nicht so sehr unter die Lupe nehmen.


----------



## philosophman (13. Aug 2010)

also ich bin java entwickler seit vielen jahren und ich kann sagen, dass es sich auf jeden fall lohn JSP zu lernen. JSF ist nichts anderes als JSP. ich würde eher davon abraten JSF zu nutzen, denn das ist das beschiessenste web-framework, der mir je untergekommen ist; und ich ahbe wirklich sehr viele webframeworks kennengelernt. hier ein beispiel aus meiner erfahrung: ich habe eine woche gebraucht um mit JSF (facelets) eine einzige seite zu bauen, in der mein entity in einer sortierbaren tabelle ausgegeben wird. wenn man aber das framework grails benutzt, wird diese seite und auch andere artifakte einer anwendung innerhalb weniger sekunden automatisch generiert !!! das muss man sich erstmal reinziehen, was für unterschied es im aufwand darstellt


----------



## homer65 (13. Aug 2010)

Habe von JSF bisher auch nur Schlechtes gehört.


----------



## ARadauer (13. Aug 2010)

Die Grundlagen, sollte man sich meiner Meinung nach schon mal angesehen haben. Du muss ja kein rießen Projekt mit Servlets und JSP realisieren. Arbeite für jedes Thema 2-3 Tutorials durch. 4-5 Stunden mal mit dem Thema beschäftigen schadet nicht...


----------



## bronks (13. Aug 2010)

homer65 hat gesagt.:


> Habe von JSF bisher auch nur Schlechtes gehört.


Ich habe erst vor ein paar Wochen einen Job bekommen für den ich mal JSF verwenden konnte. Ich mußte JSF 1.1 verwenden, da man mir wegen begründeten Bedenken keinen aktuelleren Webcontainer als Tomcat5.5 mit JVM1.5 bereitstellen wollte. Ärgerlich dabei war v.a. der ganze Konfigurationswahnsinn in den aktuellen IDEs, der von absolut unsinnigen und unpassenden Fehlermeldungen begleitet wird, weil die aktuellen IDEs nur v2.0 unterstützen.

Sobald alles manuell zusammengeflickt war, hat es eigentlich ganz gut und idiotensicher funktioniert. Dooferweise nur mit NetBeans, da sich Eclipse von einer Sekunde auf die andere beim Deployment auf dem Tomcat verschluckt hat und sich trotz Neustart nicht mehr davon erholt hat.


----------



## TJava (13. Aug 2010)

welches Webframework könnt ihr den empfehlen? Grails? Wie oben?
Was sagt ihr zu Jboss Seam habe mir das Buch oben rechts bestellt :-D
Was wird gebraucht in der Industrie?

MFG


----------



## bronks (13. Aug 2010)

TJava hat gesagt.:


> welches Webframework könnt ihr den empfehlen? Grails? Wie oben?
> Was sagt ihr zu Jboss Seam habe mir das Buch oben rechts bestellt :-D ... Was wird gebraucht in der Industrie?


JBoss Seam ist eine Erweiterung für JSF, aber ist echt nett. Es kann tolle Sachen, welche die Arbeit wirklich vereinfachen und Luxus bieten. 

Die Industrie verwendet das, was der Entwickler seinem Kunden vorgesetzt hat und die Verantwortlichen, beim Kunden, lassen sich von so einigem Hokus Pokus gerne überzeugen. 

Eigentlich, aber eigentlich nur eigentlich, wäre ich dafür, daß der von Java EE mitgebrachte Standard verwendet wird. Doof ist, daß dieser eigentlich wenig zu bieten hat. Das führt letztendlich dazu, daß man sich für die Erweiterungen eines der stärksten Anbieter entscheidet, was wieder dazu führt, daß andere Erweiterungen, welche evtl. sogar besser sind, wegen Nichtbeatchtung einfach wegsterben. Wenn man auf eine Erweiterung gesetzt hat, welche es in ein paar Jahren nicht mehr geben wird führt selbstverständlich zu Problemen. So habe ich ein paar Projekte am laufen, bei denen man sich weigert von Java 1.3.1 zu upgraden, weil der Aufwand sicher hoch und in zu vielen Fällen nicht andeutungsweise abschätzbar ist. In so einem Fall bist letzendlich Du der Depp, weil Du Dich für diese Werkzeuge bzw. Erweiterungen entschieden hast.


----------



## TJava (13. Aug 2010)

und was soll ich nun lernen?
Was macht mich attraktiv? JSF ist also sicher das es dem Standard entspricht und auch noch in ein paar Jahren laufen wir.
Dafür muss ich aber auf ein bisschen Luxus verzichten.

Kann ich mit JSF auf Umwegen die gleichen Dinge realisieren wie mit den Frameworks.
Nur dauert es länger?


----------



## bronks (13. Aug 2010)

TJava hat gesagt.:


> und was soll ich nun lernen? Was macht mich attraktiv? JSF ist also sicher das es dem Standard entspricht und auch noch in ein paar Jahren laufen wir. Dafür muss ich aber auf ein bisschen Luxus verzichten.


Lernen solltest vor allem Patterns und speziell für die Webentwicklung Servlets/JSP, JSTL und JSF, also eigentlich alles.  Es geht selten darum etwas neues zu schaffen, als etwas altes zu pflegen und zu erweitern.



TJava hat gesagt.:


> ... Kann ich mit JSF auf Umwegen die gleichen Dinge realisieren wie mit den Frameworks.
> Nur dauert es länger?


Realisieren kann man das gleiche auch mit JSP/Servlet. Es dauert meistens nicht einmal länger, sondern man tippt in den meisten Fällen nur etwas mehr Code.


----------



## maki (14. Aug 2010)

Neben JSF & SEAM gibt es noch Apache Wicket, GWT und Tapestry. Und natürlich viele viele mehr...



bronks hat gesagt.:


> Ich habe erst vor ein paar Wochen einen Job bekommen für den ich mal JSF verwenden konnte. Ich mußte JSF 1.1 verwenden, da man mir wegen begründeten Bedenken keinen aktuelleren Webcontainer als Tomcat5.5 mit JVM1.5 bereitstellen wollte. Ärgerlich dabei war v.a. der ganze Konfigurationswahnsinn in den aktuellen IDEs, der von absolut unsinnigen und unpassenden Fehlermeldungen begleitet wird, weil die aktuellen IDEs nur v2.0 unterstützen.
> 
> Sobald alles manuell zusammengeflickt war, hat es eigentlich ganz gut und idiotensicher funktioniert. Dooferweise nur mit NetBeans, da sich Eclipse von einer Sekunde auf die andere beim Deployment auf dem Tomcat verschluckt hat und sich trotz Neustart nicht mehr davon erholt hat.


Mein Beileid, JSF 1.1 ist nur was für Masochisten imho, oder eben jene die dazu gezwungen wurden... 
Diese Version empfand ich als absolute Frechheit.


----------



## Kai Wähner (18. Aug 2010)

> und was soll ich nun lernen?
> Was macht mich attraktiv? JSF ist also sicher das es dem Standard entspricht und auch noch in ein paar Jahren laufen wir.
> Dafür muss ich aber auf ein bisschen Luxus verzichten.



Ich habe mich in letzter Zeit ausführlich mit vielen Web-Frameworks beschäftigt und der Frage, welches man einsetzen sollte. Daher hier auch einige Ratschläge von mir...

Also am wichtigsten ist, dass du die Grundkenntnisse der Webentwicklung (im Java-Umfeld) kennen lernst, dazu gehören auch Basics wie HTML, CSS usw.
Ich halte es durchaus für sinnvoll, Servlets zu verstehen. Viele Web-Frameworks abstrahieren auf einer höheren Ebene, basieren aber auf Servlets.
JSP ist (wie weiter oben bereits erwähnt wurde) veraltet und furchbar zu programmieren. Klar wird es in Legacy-Anwendungen noch benötigt! Aber wenn dir das Lernen Spaß machen soll, kann ich nur davon abraten. Nicht ohne Grund ist bei JSF deswegen auch die Empfehlung seit 2.0 nun Facelets einzusetzen...

Eigentlich ist ziemlich egal, für welches Framework du dich entscheidest. Du lernst generell dabei viel über Webentwicklung und kannst danach leicht auf ein anderes Framework umsteigen. Man muss einfach mal die Grundlagen verstehen:
- statische vs. dynamische Inhalte
- Model View Controller (MVC) - Pattern
- Aufbau eines Projektes (build mit ant, Konfiguration z.B. in der web-xml)
- Was für Probleme / Fragestellungen treten bei der Webentwicklung generell auf (Multi-Page vs Single-Page, Bookmarking, History-Management, Sessions usw.)

Kauf dir unbedingt ein gutes Buch, welches auch für den Einstieg gedacht ist (siehe Bewertungen bei Amazon). Ich persönlich finde die "in Action"-Bücher sehr gut. Mit einem Buch, das bei Null anfängt macht die Einarbeitung viel mehr Spaß als mit Tutorials aus dem Netz, die oft veraltet oder nicht Fehlerfrei sind.

Ich würde dir raten, mit JSF anzufangen. Wichtig aber: Mit JSF 2.0 - das ist deutlich einfacher als früher mit JSF 1.2. Ich glaube viele Kritiker sprechen noch über ältere Versionen, mit JSF 2.0 ist die Entwicklung (vor allem dank Annotationen und vielen Konventionen) deutlich einfacher geworden.

Mit JSF lernst du während der Einarbeitung alle oben genannten Grundlagen. Außerdem gibt es (dank dem "Standard" JSF) viele Bücher, Tutorials, Blogs, Community und Addons.

Auf Luxus verzichten musst du nicht, es gibt halt für verschiedene Anforderungen verschiedene Web-Frameworks. Alternativ kannst du mit folgenden Web-Frameworks im Java-Umfeld sinnvoll anfangen:

1) Entwicklung in HTML + Java: JSF, Struts2, Spring MVC
2) Entwicklung fast nur in Java, wenig HTML: GWT, ZK, Tapestry oder Wicket

Ich würde dringend zu Alternative 1 raten, falls du wirklich lernen möchtest. Der Umstieg auf Alternative 2 ist dann ein Klacks, anderum ist es schwieriger!


Abraten würde ich dringend von folgenden Web-Frameworks für den Einstieg:

1) "Glue-Frameworks": Grails, Lift, Seam - diese nutzen viele Technologien im Hintergrund und erleichtern dir zwar den Einstieg, setzen aber voraus, dass du dich bei der Fehlersuche mit den Technologien gut auskennst, die davon benutzt werden (EJB, Hibernate, JSF, HTML, usw. - je nach Framework unterschiedlich). Hier gilt ganz klar die Regel: Erst die Technologien beherrschen, dann die Hilfe dieser Frameworks in Anspruch nehmen!

2) RIA-Frameworks: JavaFX, Flex - diese benutzten nicht Java, sondern eine andere Skriptsprache und sind speziell für RIAs gedacht (d.h. Animationen, tolle Optik, eher nahe an Desktop-Anwendung). Dies ist einfach eine andere Art der Webentwicklung.

Gruß Kai


----------



## TJava (18. Aug 2010)

Danke für die tolle Antwort.  So bin ich bisher auch vorgegangen und fühle mich jetzt gut damit:-D
JSF wird langsam aber sicher klarer.
Wie lange hast du gebraucht bis JSF richtig gut verstanden und einsatzfähig war?.

MFG


----------



## Kai Wähner (18. Aug 2010)

> JSF wird langsam aber sicher klarer.



Richtig, aber Achtung: Das ist bei anderen Frameworks nicht anders - auch dort muss man sich eben einarbeiten. Dort gibt es eben andere Probleme als bei JSF.



> Wie lange hast du gebraucht bis JSF richtig gut verstanden und einsatzfähig war?


Hm, das kann und möchte ich lieber nicht in Zeiteinheiten bewerten 
Allerdings habe ich mich damit schon mit älteren Versionen beschäfigt, da war es wirklich grausam. Aber auch da wieder der Hinweis: Struts oder JSPs hätten damals auch nicht mehr Spaß gemacht!

Ich kann nur dringend dazu raten, Bücher zum Lernen einzusetzen (aber unbedingt ein Buch zu JSF 2.0!). Blogs und Online Tutorials bringen oft nur noch mehr Probleme und Fragen auf als sie lösen! So kommt man schnell zu Ergebnissen UND versteht, was man macht. 

Als Einstieg finde ich "Beginning Java EE 6 Plattform with Glassfish 3" sehr gut. Da wird alles sehr gut und einfach verständlich beschrieben, inkl. Änderungen zu vorherigen Versionen. Für JSF hat das Buch ca. 100 Seiten eingeplant.
Ich selbst habe gerade das Buch "Core JavaServer Faces (Third Edition)" vor mir liegen - das ist dann für viele weitere Details hilfreich.



> Danke für die tolle Antwort.


Bitte 
Falls dir die Informationen weiterhelfen kann ich dir noch empfehlen, das nächste "Java Magazin" zu kaufen (evtl. auch erst das übernächste, bin mir nicht sicher), da ist ein 10-seitiger Artikel von mir genau über dieses Thema drin. Dadurch erhält man schnell einen einfach verständlichen Überblick...


----------



## TJava (18. Aug 2010)

> Als Einstieg finde ich "Beginning Java EE 6 Plattform with Glassfish 3" sehr gut. Da wird alles sehr gut und einfach verständlich beschrieben, inkl. Änderungen zu vorherigen Versionen. Für JSF hat das Buch ca. 100 Seiten eingeplant.
> Ich selbst habe gerade das Buch "Core JavaServer Faces (Third Edition)" vor mir liegen - das ist dann für viele weitere Details hilfreich.



Das genannte Buch ist aber in englisch oder? Da kann ich zwar schon recht viel verstehen, aber es ist schon noch ein bisschen anstrengender.

Ja, das mit Java Magazin überlege ich mir, fahre ja in den Urlaub:-D für die reise.

Ich lerne eigentlich viel aus Büchern,aber leider sind die meisten vor JSF 2.0 geschrieben.
Eine neues kommt im Oktober JSF 2.0 von Bernd Müller das wollte ich mir zulegen.

so  dann nochmals danke und einen schönen Abend.


----------



## Kai Wähner (18. Aug 2010)

> Das genannte Buch ist aber in englisch oder? Da kann ich zwar schon recht viel verstehen, aber es ist schon noch ein bisschen anstrengender.



Ok, wenn du dich mit deutschen Büchern leichter tust, dann nimm auf jeden Fall ein Deutsches!

Sonst hast du neben der Komplexität des Frameworks auch noch den Sprachfaktor als Einarbeitungsproblem


----------

