JSF, JSP, Servlets, Netbeans...Erklärung bitte!

Hallo,

kann mir nicht bitte einer erklären, wie JSF, JSP usw. zusammenhängen? Ich habe gelesen, daß z.B. JSP (und JSF?) in Servlets umgewandelt werden vom Server…aber warum tut er das? Was ist dann der Sinn von JSP, wenn es danach eh umgewandelt wird? Wieso nimmt man nicht direkt Servlets?
Unter JSF stelle ich mir immer ein Programm vor, so eine Art GUI-Builder, mit dem man einfach (per drag&drop?) wie mit Dreamweaver Seiten erstellen kann. Ist das richtig? Und wie hängt JSF mit JSP zusammen? Heulomat…
Außerdem: wie kommen da Beans und Scriplets ins Spiel?

Ich bin so verwirrt, daß ich nichtmal anständige Fragen formulieren kann *g* Mir fehlt einfach das Verständnis für diese ganzen Java- und Serversachen…Vielleicht kann mir das jemand halbwegs oberflächlich erklären?

Hallo,

hier schonmal ein Anfang:

http://java.sun.com/j2ee/javaserverfaces/faq.html
http://java.sun.com/products/jsp/faq.html

Gruss, Patrick

Hi.

kann mir nicht bitte einer erklären, wie JSF, JSP usw.
zusammenhängen?

Das sind alles Teile der J2EE-Spezifikation - Java Server Faces sind dabei was ganz neues.

Ich habe gelesen, daß z.B. JSP (und JSF?) in
Servlets umgewandelt werden vom Server…aber warum tut er das?

Servlets waren der Anfang. Du Programmierst eine Java Klasse, die auf einen HTTP-Request antworten kann, wenn Sie in einem Web-Container wie z.B. Tomcat, Resin, JRun, etc. läuft. Kleines Beispiel:

public class HelloWorldServlet extends HTTPServlet {
 protected void doGet(HttpServletRequest request, HttpServletResponse response) 
 throws ServletException, IOException {
 PrintWriter out = response.getWriter();
 out.println("Hello World");
 out.flush();
 out.close();
 }
}

JSP ist einfach eine andere Sichtweise auf Servlets: Hier schreibst du eigentlich eine HTML-Seite, die Java-Code enthalten kann. Beispiel:

Der Kleine Java-Abschnitt hier nennt sich auch Scriptlet. Das ganze JSP wird beim ersten Aufruf vom Web-Container in ein stinknormales Servlet umgewandelt, instanziert und dann ausgeführt.

Was ist dann der Sinn von JSP, wenn es danach eh umgewandelt
wird? Wieso nimmt man nicht direkt Servlets?

Weil JSP manchmal einfach eine einfacher Schreibweise ist und nicht soviel technisches Verständniss vorraussetzt. Hier kannst du dich wie 98.5% aller PHP-Anfänger austoben und so richtig langen und zwischen HTML-Code versteckten, unlesbaren Spagetticode schreiben (Ups - Das war ja gemein :wink:.

Unter JSF stelle ich mir immer ein Programm vor, so eine Art
GUI-Builder, mit dem man einfach (per drag&drop?) wie mit
Dreamweaver Seiten erstellen kann. Ist das richtig? Und wie
hängt JSF mit JSP zusammen? Heulomat…

Java Server Faces ist ein SUN-Standard, der das GUI-Bauen wie in Desktop-Programmen ermöglichen soll. Du „zeichnest“ eine HTML Oberfläche, Erstellst Actions, Actioncode, usw. - Der JSF-fähige Compiler erstellt daraus ein ziemlich heftiges Konglomerat aus HTML, Javascript und Servlets. Bei meiner letzten SUN Java-Schulung mit JSF-Vorstellung sind mir fast die Augen aus dem Kopf gefallen, wie komplex der resultierende Code (Front- und Backend) ist, damit das ganze so läuft, wie du es „gezeichnet“ hast.

Außerdem: wie kommen da Beans und Scriplets ins Spiel?

Scriptlets habe ich dir schon gezeigt - Ein Java Bean in einfachster Form ist erstmal nur eine Vorschrift, wie eine Klasse programmiert sein sollte. Alle verfügbaren Variablen sind private (und somit von aussen nicht direkt erreichbar) - Du steuerst den Zugriff über Getter- und Setter-Methoden. Beispiel:

public class MyFirstBean {
 private String value;
 public String getValue() {
 return this.value;
 }
 public String setValue() {
 this.value = value;
 }
}

Mit Beans können aber auch J2EE-Beans gemeint sein. Mit Hilfe eines Application-Servers kannst solche Beans programmieren und deployen.

Eine Beschreibung dauert hier vielleicht etwas lange… Nur soviel:
Eine Möglichkeit, viel viel Geld für eine Applikation auszugeben, ist das Model-View-Model aufgebaut auf einem Web-Container (Tomcat, Resin, JRun, etc), einem Application Server (JBoss, BEA Weblogic, etc) und einer Datenbank.

Der Webcontainer zeigt nur Seiten an, der Application Server enthält die Business Logic und der DB-Server hält die Daten.

Die Business Logic wird in der Form von Enterprise Application Beans auf dem Application Server abgelegt. Verallgemeinernd werden diese Klassen einfach „Beans“ genannt - Sind nur etwas komplexer.

Ich bin so verwirrt, daß ich nichtmal anständige Fragen
formulieren kann *g* Mir fehlt einfach das Verständnis für
diese ganzen Java- und Serversachen…Vielleicht kann mir das
jemand halbwegs oberflächlich erklären?

Habe ich versucht…

Jetzt habe ich dir eine Menge Buzz-Words vorgelegt, nach denen sich vortrefflich googeln läßt :wink:

mfG,

J.P.Jarolim

Guten Abend.

Stimmt schon was Jarolim schreibt. Wenn man die ganze Geschichte mal live in Aktion erleben will gibt es eine IDE namens „Netbeans“, die die ganzen Spielereien beinhaltet. Und sogar als Server fungieren kann :smile:

mfg M.L.

***Werbung***
http://www.netbeans.org
http://www.javamagazin.de
http://www.programmierkurs-java.de