# JSP, JSF



## PollerJava (1. Aug 2007)

Hallo,


ich haba gerade angefangen, mich für Java EE zu interessieren, auch, weil es überall verlangt wird und momentan der Hype ist, kommt halt mir vor,

Meine Frage wäre jetzt, wie schwierige (bzw. wieviel Zeit man benötigt), um sich in die JSP, JSF Materie einzuarbeiten und wie verschieden es ist im bezug auf Java SE.

Meine Java SE- Kenntnisse sind auf einem guten Stand und ich wäre auch sehr dankbar für Hinweise für ein gutes Buch,

lg und danke für die Antworten,

lg


----------



## Gaston (1. Aug 2007)

Hi,

habe die Vorgängerversion dieses Buches http://www.amazon.de/Core-Servlets-...e=UTF8&s=books-intl-de&qid=1185986339&sr=8-12 und finde dieses Buch sehr gut. 
Also wenn deine Java-Kenntnisse gut sind wirst du meiner Meinung nach sehr schnell JSP  lernen. Warum? Ganz einfach: JSP Seiten benötigen bestimmte Klassen die für dich neu sein werden, der Hauptteil jeder Anwendung wird in Java codiert. In dem Buch das ich dir vorgeschlagen habe, wird gut hingewiesen wann man JSP und wann Servlets verwenden mußt. Zum Thema JSF ist in dem Buch nichts zu finden.

Gruß

Gaston


----------



## Gumble (2. Aug 2007)

die Buecher von Manning und Horstmann fand ich zu JSF ganz brauchbar (auf englisch) - die deutschen die mir untergekommen sind, waren schrecklich.
anfangen wuerd ich allerdings mit einfachen servlets auf einem tomcat, dann jsps und sich mal ein .war bauen. unbedingt sun's j2ee tutorial mal durchmachen - es gibt auch eine variante das tut gleich auf ein jboss zu machen...


----------



## Nadine_2706 (18. Nov 2008)

Hallo, gibt es eine Technologie jsf in jsp umzuwandeln??? Wenn ja, wie???


----------



## ulf (9. Dez 2008)

Liebe Nadine,

lesen:

http://de.wikipedia.org/wiki/Java_Server_Faces
http://de.wikipedia.org/wiki/JavaServer_Pages

Dann erneut fragen ;-)


----------



## Guest (14. Dez 2008)

Hallo !

Ich bin ebenfalls neu dabei, was diese Technologien angeht. Ich muss ehrlich sagen, dass mir der Unterschied zwischen JSP und JSF auch trotz der beiden Wikipediaseiten immernoch nicht 100%ig klar erscheint.

Hier ist meine Definition, also das was ich mir bisher darunter vorstellen kann:

JSP:
Wird benutzt, um dynamisch HTML und XML auf dem Webserver zu erzeugen

JSF:
Wird benutzt, um dynamische Oberflächen (HTML Seiten ) zu erstellen und eine eigene Navigation festzulegen.


Vielleicht kann das jemand von euch mal kurz in 1-3 Sätzen formulieren, ich bin sicher, dass ich nicht der einizige biin, der hierbei unsicher ist.

Vielen Dank für eure Hilfe !!


----------



## maki (14. Dez 2008)

Bevor man JSP oder JSF lernt muss man erstmal Servlets lernen


----------



## Guest (14. Dez 2008)

ok   


vielleicht könnte man mir doch einfach erstmal nur die theoretischen Zusammenhänge zwischen Applets, JSP und JSF erklären. Vielleicht gibt es auch eine Internetseite, wo das näher beschrieben ist (außer diese zwei Wikipediaseiten).

MFG


----------



## HLX (14. Dez 2008)

Die Basis von JSP und JSF ist die von maki erwähnte Servlet Technology. Servlets ermöglichen die Erzeugung von dynamischen Webinhalten. Entwickler betten dabei HTML-Code in Java-Klassen ein.

Die JSP-Technologie baut darauf auf, hier ist es jedoch umgekehrt: HTML-Seiten können um Java-Code ergänzt werden. Dies ist für die Entwicklung der grafischen Benutzeroberfläche wesentlich übersichtlicher. Daher wird JSP in erster Linie für die Darstellung verwendet, während die Anwendungssteuerung über Servlets abgehandelt wird. Um die Übersicht weiter zu verbessern, wird empfohlen anstelle von Java-Code sogenannte Tag-Bibliotheken zu verwenden, so dass eine JSP-Seite ausschließlich aus Tags besteht. Zur Laufzeit werden JSP-Seiten vom Server in Servlet-Klassen übersetzt.

Bei JSF handelt es sich um ein auf der Servlet- und JSP-Technology aufbauendes Framework. Es nimmt dem Entwickler einige Standardaufgaben, z.B. bei Requestverarbeitung/Sitzungsverwaltung ab. Es erleichtert die o.g. Trennung von Darstellung und Steuerung der Anwendung. JSF sieht für für die GUI JSPs vor und liefert Tag-Bibliotheken mit, um JSP-Seiten von Javacode zu befreien

Maßgeblich für alle javabasierten Webanwendungen ist die Servlet Spezifikation. Sie wird von den Servern (z.B. Apache Tomcat / Jetty) implementiert. Entsprechend müssen JSP und JSF auf die Spezifikation abgestimmt sein um auf diesen Servern laufen zu können.


----------



## Guest (15. Dez 2008)

HLX hat gesagt.:
			
		

> Bei JSF handelt es sich um ein auf der Servlet- und JSP-Technology aufbauendes Framework. Es nimmt dem Entwickler einige Standardaufgaben, z.B. bei Requestverarbeitung/Sitzungsverwaltung ab. Es erleichtert die o.g. Trennung von Darstellung und Steuerung der Anwendung. JSF sieht für für die GUI JSPs vor und liefert Tag-Bibliotheken mit, um JSP-Seiten von Javacode zu befreien



d.h. wenn ich JSF verwende, dann brauche ich keine weiteren detaillierten Kenntnisse über JSP zu haben. JSF nimmt mir diesen Part quasi ab.


----------



## HLX (15. Dez 2008)

Nein. JSF verwendet lediglich die JSP-Technology und bringt einige Erleicherungen für den Entwickler mit. Die GUI besteht bei Verwendung von JSF aus JSP-Seiten und TagLibraries. Das sind Bestandteile der JSP-Technology. Du solltest also unbedingt JSP-Kenntnisse haben. 

Um alle Zusammenhänge zu verstehen sind ebenfalls Kenntnisse über die Servlet-Technologie erforderlich. Dann weißt du z.B. auch was es mit dem FacesServlet auf sich hat.

Wenn du auf die Grundlagen verzichtest wirst du garantiert Probleme mit ansonsten simplen Kleinigkeiten bekommen. Also: Erst die Basics und dann das Framework

Das gilt übrigens für alle JSP-basierten Web-Frameworks, wie z.B. Struts. Bei AJAX-Frameworks kannst du meist auf JSP verzichten und dich auf die Servlet Technology beschränken.


----------



## Guest (15. Dez 2008)

Vielen Dank für deine Erklärungen, dennoch ist es mir immer noch nicht 100%ig klar, wie alles zusammenspielt. Das kann aber einfach daran liegen, dass ich mich erst mit der Materie richtig in der Praxis auseinandersetzen muss und nicht der Qualität deiner Erklärungen.

Vielleicht halten wir einmal den besten Einstiegsweg fest, um sich die Technologien anzueignen (Ich denke, dass interessiert auch mehrer Leute hier):

Zuerst lerne ich Java Servlets, danach JSP und später dann das JSF Framework. Damit hätte ich einen guten Einstieg ?!


----------



## HLX (16. Dez 2008)

Richtig. Mehr Informationen dazu auch hier:
www.java-forum.org/de/viewtopic.php?t=73814&highlight=jsp


----------



## Terminator (16. Dez 2008)

Also das mit Servlets am Anfang stimm ich zu.
Aber JSP/JSTL brauchste nicht mehr lernen.
Ab JSF 2.0 ist Facelets die Standard View Technologie.


----------



## bronks (17. Dez 2008)

Anonymous hat gesagt.:
			
		

> Vielen Dank für deine Erklärungen, dennoch ist es mir immer noch nicht 100%ig klar, wie alles zusammenspielt. Das kann aber einfach daran liegen, dass ich mich erst mit der Materie richtig in der Praxis auseinandersetzen muss und nicht der Qualität deiner Erklärungen.


Beschäftige Dich am besten nur mit dem aktuellen und propagierten Standard: JSF. Soll JSF selbst schaun wie es mit dem Zusammenspiel von JSP und Servlets zurecht kommt. Alles andere wäre, wie wenn z.B.: Ein Koch verstehen und wissen müsste, was für ein Getriebe in seinem Mixer verbaut ist und wie der Elektromotor und der Schalter darin funktioniert.




			
				Terminator hat gesagt.:
			
		

> Also das mit Servlets am Anfang stimm ich zu.
> Aber JSP/JSTL brauchste nicht mehr lernen.
> Ab JSF 2.0 ist Facelets die Standard View Technologie.


Servlets sind historisch aus einem mißglückten Konzept entstanden. Man sollte sich besser damit abfinden, daß es sie gibt und daß sie irgendwo tief im Hintergrund einen abstrakten Job erledigen.

Und überhaupt die Entstehungsgeschichte dieser Entwicklung: Da MS ein komponentenbasierte Technik für die Webentwicklung (ASP) bereitstellte verfiel man bei Sun in Panic und hat irgendetwas funktionierendes für die Webentwicklung mit Java rausgehaun. 

ASP vs. Servlet. Das waren die beiden Konkurrenten. Das ganze kann man sich so vorstellen: Eine 3000 Jahre alte, einbeinige Mumie (Servlet), welche in einer zugenagelten Holzkiste liegt startet auf der 100meterbahn gegen einen unterdurchschnittlichen Hobbyläufer (ASP). --- --- Bis heute gibt es nichteinmal den mittelklasse Sprinter, nicht bei MS, nicht bei SUN oder sonstwo, aber mit JSF kommt der Javaentwickler langsam in den Genuss des Comforts, den ASPentwickler schon 1998 geniessen durften.


----------



## HLX (17. Dez 2008)

bronks hat gesagt.:
			
		

> Alles andere wäre, wie wenn z.B.: Ein Koch verstehen und wissen müsste, was für ein Getriebe in seinem Mixer verbaut ist und wie der Elektromotor und der Schalter darin funktioniert.


JSF ist ein Fertiggericht, ein Koch sollte allerdings auch mit Zutaten kochen können!



			
				bronks hat gesagt.:
			
		

> Servlets sind historisch aus einem mißglückten Konzept entstanden. Man sollte sich besser damit abfinden, daß es sie gibt und daß sie irgendwo tief im Hintergrund einen abstrakten Job erledigen.


Die Servlet-Technologie (damit meine ich nicht nur Servlets) ist heute noch der übergreifende Standard für alle Java Web Technologien. Wie oft sind hier Fragen von JSF-Anfängern zu finden, die nicht mit der web.xml umgehen können. X-Mal habe ich schon die Frage nach dem nicht initialisierten FacesContext gelesen. Meistens hapert es daran, dass die Leute nicht wissen, was da auf dem Server eigentlich passiert.


----------



## maki (17. Dez 2008)

Kann HLX nur zustimmen, ganz ohne Servlet wissen geht es eben nicht, selbst mit JSF.


----------



## bronks (17. Dez 2008)

HLX hat gesagt.:
			
		

> ... JSF ist ein Fertiggericht, ein Koch sollte allerdings auch mit Zutaten kochen können!


Ein Fertiggericht bekommt der Gast serviert. Dieser muß nicht die Zutaten kennen, nicht die benötigten Werkzeuge für die Zubereitung kennen und auch nicht besitzten, er muß garkeine Ahnung davon haben was in der Küche passiert ist. Er muß nur den Löffel nehmen und sich das Zeug unter die Nase schieben.

JSF (der Mixer) besteht aus Servlet (die Klinge), JSP (der Elektromotor) und den Configs (Schrauben die den Mixer zusammenhalten). Die Zutaten sind Beans, welche durch JSF (den Mixer) gejagt werden, um dann die WebPage (den Brei) zu erhalten, der dem Gast angezeigt wird.





			
				HLX hat gesagt.:
			
		

> ... Die Servlet-Technologie (damit meine ich nicht nur Servlets) ist heute noch der übergreifende Standard für alle Java Web Technologien.


Ja, denn es ist schwer sich von Altlasten zu trennen. Soll nicht heißen, daß ich das Konzept Servlet/JSP schlecht finde, ich bin nicht derjenige der JSF und das komponentenbasierte Modell propagiert, das macht er Hersteller selbst, der ein total konträres Konzept auf die alten Stelzen gestellt hat.



			
				HLX hat gesagt.:
			
		

> ... Wie oft sind hier Fragen von JSF-Anfängern zu finden, die nicht mit der web.xml umgehen können.


Die web.xml? Die Altlast, welche nötig ist, weil JSF auf die o.g. alten Stelzen gestellt wurde? Die Datei gehört ausgeblendet und wird während der Entwicklung ausschließlich von der IDE im hintergrund verändert.



			
				HLX hat gesagt.:
			
		

> X-Mal habe ich schon die Frage nach dem nicht initialisierten FacesContext gelesen. Meistens hapert es daran, dass die Leute nicht wissen, was da auf dem Server eigentlich passiert.


Ich weis zwar, was auf dem Server passiert, weil ich mich mit dem alten Zeug herumschlagen musste, aber eigentlich müsste es mich nicht interessieren, da man doch hoffentlich erwarten kann, dass die IDE korrekte Infos in die ganzen Configdateien schreibt und auch die Serverspecs sollten mal vorsehen, das die Server mit dem kontexübergreifenden Chaos selbt zurecht kommen.


----------



## byte (17. Dez 2008)

bronks hat gesagt.:
			
		

> ASP vs. Servlet. Das waren die beiden Konkurrenten. Das ganze kann man sich so vorstellen: Eine 3000 Jahre alte, einbeinige Mumie (Servlet), welche in einer zugenagelten Holzkiste liegt startet auf der 100meterbahn gegen einen unterdurchschnittlichen Hobbyläufer (ASP). --- --- Bis heute gibt es nichteinmal den mittelklasse Sprinter, nicht bei MS, nicht bei SUN oder sonstwo, aber mit JSF kommt der Javaentwickler langsam in den Genuss des Comforts, den ASPentwickler schon 1998 geniessen durften.


ASP war grauenhaft. Oder sprichst Du von ASP.NET? Da gibts gravierende Unterschiede. ASP kam übrigens 1996, Servlets 1997 und JSP dann 1998.
Servlets sind im übrigen alles andere als eine "zugenagelten Holzkiste", sondern eine grundsolide Technologie für die Kommunikation mittels HTTP. Nicht ohne Grund sind Servlets auch heute noch Basis für fast alle Frameworks auf Basis von JEE. Die Grundlagen von Servlets sollte imo jeder kennen, der mit JEE arbeitet. Natürlich generiert heute niemand mehr die Views direkt per Servlet. Dazu  ist das Konzept mehr als ungeeignet.



> ASP.NET is often confused as the newest release of ASP, but the technologies are very different. ASP.Net relies on the .Net Framework and is a compiled language, whereas ASP is strictly an interpreted scripting language.




ASP.Net kam 2002 und JSF dann 2004. Viel wichtiger als JSF war aber lange Zeit Struts, und das gabs schon 2000.


----------



## bronks (17. Dez 2008)

byto hat gesagt.:
			
		

> ... ASP war grauenhaft. Oder sprichst Du von ASP.NET? Da gibts gravierende Unterschiede. ASP kam übrigens 1996, Servlets 1997 und JSP dann 1998 ...


ASP in Kombination mit den Entwicklungstools von MS, war sehr OK. Zum manuellen Coden in vi nicht so extrem schön, aber dem entsprechend, wie man ganz üblich noch 2001 mit JSP gecodet hat, also in  JspFrontStrategie. Erst durch verbesserte IDEs und die Möglichkeit überhaupt sinvoll zu Debuggen ist man auf ServletFrontStrategie, was die Grundlage für eine aufgeräumte JSP und Anstoss für die viel zu verspäteten JSTL war, welche dank Struts zu der Zeit eigentlich absolut überflüssig waren. Das sich die aufgeräumte JspFrontStrategie schnell dank den besseren IDEs durchgesetzt hat, lag aber vor allem daran, daß sich Servlets einwandfrei debuggen lassen haben, aber Javacode in JSPs nicht.



			
				byto hat gesagt.:
			
		

> ... Servlets sind im übrigen alles andere als eine "zugenagelten Holzkiste", sondern eine grundsolide Technologie für die Kommunikation mittels HTTP. Nicht ohne Grund sind Servlets auch heute noch Basis für fast alle Frameworks auf Basis von JEE. Die Grundlagen von Servlets sollte imo jeder kennen, der mit JEE arbeitet. Natürlich generiert heute niemand mehr die Views direkt per Servlet. Dazu  ist das Konzept mehr als ungeeignet.


Kurz gesagt: Ich muss mit Servlets umgehen können um Fehler, die in den darüberliegenden Schichten begraben sind, zu erkennen und zu verstehen, damit ich mit einem Workaround darauf reagieren kann.




> ASP.NET is often confused as the newest release of ASP, but the technologies are very different. ASP.Net relies on the .Net Framework and is a compiled language, whereas ASP is strictly an interpreted scripting language.


Wie auch immer. Die Strategien wurden eigentlich beibehalten und nicht total auf den Kopf gestellt




> ASP.Net kam 2002 und JSF dann 2004. Viel wichtiger als JSF war aber lange Zeit Struts, und das gabs schon 2000.


Für mich ist Struts immer noch wichtig, denn in meiner Küche koche ich mit meinen Werkzeugen und solange sich der Gast über das Fertiggericht freut ist alles OK. Es hat immer gut funktioniert und hat auf dem Konzept aufgebaut, welches Servlets und JSP eigentlich verfolgt haben. Mittlerweile sind wir aber so extrem fortgeschritten, daß es für Eclipse kein *sinnvoll* funktionierendes Plugin mehr für Struts gibt. Die Unterstützung für JSF ist aber auch sehr mager. Man hängt gerade mal wieder zwischen zwei Welten herum und weiss nicht wohin die Reise wirklich gehen wird.


----------



## byte (17. Dez 2008)

Wenn ich dauerhaft Webclients programmieren würde, dann würde ich Eclipse wohl wegschmeissen und auf IDEA umsteigen. ATM mache ich JEE mit Richclient, da komme ich mit Eclipse bestens zurecht.


----------



## HLX (17. Dez 2008)

bronks hat gesagt.:
			
		

> Ein Fertiggericht bekommt der Gast serviert. Dieser muß nicht die Zutaten kennen, nicht die benötigten Werkzeuge für die Zubereitung kennen und auch nicht besitzten, er muß garkeine Ahnung davon haben was in der Küche passiert ist. Er muß nur den Löffel nehmen und sich das Zeug unter die Nase schieben.


Der Gast muss nie die Zutaten kennen, egal ob Fertiggericht oder frisch gekocht. Der Koch sollte allerdings in der Lage sein nicht nur Fertiggerichte aus der Küche zu reichen. Gute Köche kennen die Materie mit der sie sich beschäftigen.   :wink: 



			
				bronks hat gesagt.:
			
		

> HLX hat gesagt.:
> 
> 
> 
> ...


Auf diesen "Altlasten" basieren derzeit sämtliche Web Container Implementierungen verschiedener Hersteller. 



			
				bronks hat gesagt.:
			
		

> Die web.xml? Die Altlast, welche nötig ist, weil JSF auf die o.g. alten Stelzen gestellt wurde? Die Datei gehört ausgeblendet und wird während der Entwicklung ausschließlich von der IDE im hintergrund verändert.


An die web.xml muss man auch schonmal von Hand ran, zumindest wenn man sich eine gewisse Flexibilität offen halten will: Bsp. ServletFilter



			
				bronks hat gesagt.:
			
		

> Kurz gesagt: Ich muss mit Servlets umgehen können um Fehler, die in den darüberliegenden Schichten begraben sind, zu erkennen und zu verstehen, damit ich mit einem Workaround darauf reagieren kann.


Genau so ist es (bzw. generell ist man Flexibler in der Entwicklung). Dumm nur wenn der Fehler durch einen eiligen Kundencall zum Vorschein kommt. Dann ist´s etwas spät mit der Einarbeitung.

Irgendwann kommt bei einem Framework immer der Punkt an dem man mit den vorhandenen Mitteln nicht mehr weiter kommt und eine Ebene tiefer schauen muss. In diesem Forum wimmelt es nur so von entsprechenden Anfragen. Und bei dem Versuch einen Lösungsansatz zu posten überlege ich mir dann immer wieder: Wo muss ich den TS jetzt abholen?


----------



## bronks (17. Dez 2008)

@HLX:
Jetzt sind wir genau an dem Punkt angekommen, wo wir gleicher meinung sind.


----------



## Guest (6. Jan 2009)

Hallo !

Welche Bücher könnt ihr mir für Servelts, JSP und JSF empfehlen? Gibt es da so etwas wie gute Standardwerke?


----------



## frapo (6. Jan 2009)

Anonymous hat gesagt.:
			
		

> Hallo !
> 
> Welche Bücher könnt ihr mir für Servelts, JSP und JSF empfehlen? Gibt es da so etwas wie gute Standardwerke?



Versuch mal die Forensuche, zu diesem Thema gab es schon öfter Vorschläge. Ein Beispiel wäre folgendes Buch: Thomas Stark - Java EE 5


----------

