# Aufklärung + Anregung (JSF, JSP, State-of-the-art)



## timbeau (21. Jan 2013)

Hi, 

bin mit Java einigermaßen vertraut, komme aber hier bei meiner Überlegung nicht weiter. 

Einleitung: 
Um schnell an die aktuellen Bundesliga-Ergebnisse zu kommen habe ich mir ein Java-Programm gebastelt, welches von OpenLigaDB - Communitybasierte Sportdaten per XML-Webservice per Webservice die Daten holt. _Kicker.de, Bild.de usw sind durch die Bilder leider extrem lahm. _

Ab hier(!) geht mein Test los, bzgl Webtechnologien. Hier hab ich nämlich 0 Erfahrung. Daher habe ich mir eine Bean gebastelt, die in einer(bzw 3) JSP(s) angezeigt wird. Die Werte werden mittels Expression Language ausgelesen und angezeigt. 
Aktuell habe ich 3 Seiten. Jede Seite bietet ein Auswahlmenü
1. Seite: Die Sportart (Fußball, Handball, etc)
2. Seite: Die möglichen Ligen
3. Seite: Die Spieltage mit den einzelnen Spielen.

Meine Frage: Was wäre eine zeitgemäße Alternative. Habe gelesen, dass man JSPs nicht wirklich nutzen sollte, gäbe neueres. Könnt ihr mir hierzu ein paar Stichworte liefern? Komme aktuell auch aus Zeitmangel nicht dazu mich durch die verschiedenen Möglichkeiten zu arbeiten um am Ende in Sackgassen zu landen. Lieber direkt in die richtige Richtung 

Schonmal vielen Dank, 

tim


----------



## darekkay (21. Jan 2013)

Ich werfe GWT und/oder Vaadin (basiert auf GWT) in den Raum. Vereinfacht gesagst schreibst du alles in Java, und der Client wird hinterher nach Javascript übersetzt. Bei Vaadin ist die Einarbeitungszeit denke ich etwas geringer, und schick sieht's auch aus.


----------



## JohannisderKaeufer (21. Jan 2013)

Die erste Technologie mit der man sich vertraut machen kann und vielleicht auch sollte sind Servlets.

Mit Servlets schreibt man mehr oder weniger eine HTML-Seite in einen Outputstream.
Der Nachteil dabei ist, das es keine Trennung zwischen Logik und Präsentation gibt.

```
void doGet(HttpRequest req, HttpResponse res){
res.getOutputStream().write("<h1>Hello World</h1>");
...
}
```


Bei JSP schreibt man alles in HTML-Templates bei dem die dynamischen Teile mit kleinen Java Snippets gesetzt werden.
Das macht vieles übersichtlicher, man neigt allerdings dazu zuviel Logik in diese Templates einzubauen.
Eine Forschleife für eine Listenansicht wäre ok, ein Datenbankzugriff eher nicht. So sind diese JSPs auch wieder schnell unübersichtlich geworden.

JSF macht hier eine Trennung. Die Präsentationsschicht wird in Templates definiert (in früheren Versionen JSP) und die Logik in entsprechenden Beans definiert. Es bietet also eine Convention zur Trennung von Logik und Präsentation, sowie einen Rahmen beides miteinander zu Verknüpfen.


----------



## timbeau (21. Jan 2013)

Danke schonmal. Ich hab bisher keinen Java-Code in den JSP-Dateien. Die dynamischen Parts werden durch die erwähnte Expression-Language generiert. Das ist aber mW kein Java Code oder?! Die Logik wird in der Bean bzw. in den anderen Klassen des Projekts erledigt. 
In Eclipse ist es ein "Dynamic Web Project", habe ich vergessen zu erwähnen.

Vaadin schaue ich mir mal an, danke.


----------



## F.S.WhiTeY (21. Jan 2013)

Zur headline und "State-of-the-art".

JSP: Nicht State-of-the-art, veraltet und sollte man sich erst anschauen wen man in den anderen sachen firm ist. (Schadet aber auch nicht! Sehr viele Firmen haben noch JSP-Anwendungen)

JSF: Ist State-of-the-art, ist genau das womit du anfangen solltest.

Servlets: Sind das Herz von JSF. Sollte man sich auf jeden fall anschauen. Allerdings finde ich das man sie nicht nur benutzen sollte. Im Zusammenhang mit JSF macht es allerdings einen heiden SPaß und sehr viel Sinn. 

GWT und der gleichen sind auch interessant denke ich, obwohl ich mich selbst noch nicht damit beschäftigt habe. 

Spring wäre noch eine Alternative.



> Die dynamischen Parts werden durch die erwähnte Expression-Language generiert. Das ist aber mW kein Java Code oder?!



Nein das ist kein reiner Java-Code. Das sind XHTML- bzw EL-Tags.


----------



## timbeau (22. Jan 2013)

Danke, dann werde ich das JSP-Projekt fertigstellen und dann in GWT, Spring oder ähnlichem realisieren. Hauptsache ich kann die Ergebnisse gut abrufen. 

*VIVA BVB*


----------

