# Portlet-Einstieg



## sutcha (11. Feb 2008)

Hallo 

ich habe vor ca. 2 Jahren mit Java angefangen und beschäftige mich momentan mit Portlets. Da ich aber keine Erfahrung im JSP/Servlet-Bereich habe, verstehe ich nicht so ganz, wie es funktioniert und finde auch keine vernünftige Antwort.

In der Web.xml wird das Portlet, wie ein Servlet, definiert und in der Portlet.xml stehen dann die Eigenschaften zu diesem Portlet (Modes usw.). Ein Portlet ist doch im Prinzip nur ein "Fenster" mit verschiedenen Modi oder? Diese Modi werden in JSPs dargestellt. Wie wird aber dieses Portlet auf einer Seite eingebaut? 

Sorry für die blöden Fragen, aber momentan steh ich noch ein bisschen auf dem Schlauch...


----------



## Ralf Ueberfuhr (11. Feb 2008)

In der web.xml wird gar nix Großartiges mehr definiert, außer Servlets. Portlets sind zwar in vielen Dingen ähnlich zu Servlets, werden aber in der portlet.xml deklariert, in der web.xml haben sie nichts zu suchen.

Vielleicht für dein allgemeines Verständnis:

- *Servlets *sind Java-Objekte, die auf einen bestimmten Request eine bestimmte Response generieren, z.B. *eine HTML-Seite oder ein HTML-Fragment*. JSPs sind spezielle Servlets, die nicht in Javacode, sondern in HTML+Custom-Tag-Format geschrieben werden. Macht den Unterschied, wer was entwickelt.
- *Portlets *sind Java-Objekte, die auf einen bestimmten Request eine bestimmte Response generieren, z.B. *ein HTML-Fragment*.

Portlets sind nur eine Art Framework, die man mit Servlets auch umsetzen kann (Verwaltung der Modi und Fensterzustände, Aggregation auf einer Seite und weitere Dienste). Nur ist das eben Aufwand, den man bei Portlets nicht mehr betreiben muss.


----------



## sutcha (11. Feb 2008)

Vielen Dank für deine Antwort!
In ein paar Beispielen wurde in der web.xml das Portlet definiert, das hat mir verwirrt.
Aber wie binde ich ein Portlet auf einer Portal-Seite ein? Es ist ja nur ein Fragment und wird ja in einer JSP irgendwie eingebunden. Die Beispiele, die ich mir angeschaut habe, waren nicht wirklich aufschlussreich. Oft wurden edit.jsp, view.jsp und help.jsp verwendet. Ich finde das ein bisschen umständlich, aber wie gesagt, bin erst am Anfang 
Wo gibt es denn gute Tutorials für den Einstieg? Ich habe soviele gefunden, die mir überhaupt nicht gefallen haben. 
Vielen Dank für die Hilfe.


----------



## Ralf Ueberfuhr (12. Feb 2008)

Also die Unterteilung in eine JSP pro Mode macht Sinn, da ja in jedem Mode eine andere Seite gezeigt werden soll. Technisch ist es aber möglich, nur eine JSP zu verwenden.

Das Einbinden in die Gesamtseite ist nicht Aufgabe des Portletprogrammierers, sondern des Portaladministrators bzw. (bei "offenen" Portalen) des Benutzers einer Seite. Dieser entscheidet dann, ob, an welcher Stelle und auch wie oft ein Portlet auf einer Seite angezeigt wird.

Der Entwickler kommt damit nur in Berührung, wenn er nicht nur einzelne Portlets entwickelt, sondern ganze Portale. Das kommt v.a. drauf an, welchen Server du verwendest. Nimmst du beispielsweise den Websphere Portal Server, so bindest du dein Portlet (zum Testen) eher administrativ ein. Nimmst du nen Websphere Application Server, der ab Version 6.1 zumindest nen Portletcontainer beinhaltet, so musst du selbst dafür sorgen, wie du aus den Portlets eine Seite erstellt. Das ist dann aber serverspezifisch und nicht Bestandteil von JSR-168 (und JSR-286 glaub ich auch.)

Tutorials kann ich dir keine nennen. Hab da auch kein Mustertutorial gefunden. Ich halte jedoch selbst Servlet- und Portletkurse. Dir empfehl ich auf jeden Fall auch ein Einlernen in die Java EE/Servlet-Theorie.


----------



## sutcha (12. Feb 2008)

Naja, ich mache momentan alles selbst, daher kümmer ich mich auch um das Portal. 
Gibt es denn gute, übersichtliche Seiten, die eine gute Einführung bieten in JSP/Servlets? Ich finde bisher nichts richtiges. 
Vielen Dank für deine Hilfe!

PS: ich schau mir gerade pdf.coreservlets.com an, soll ja ganz gut sein. Ich mache momentan ein Praktikum und versuche in der Zeit möglichst viel zu lernen, da man in der Uni nicht besonders viel in der Richtung macht


----------



## sutcha (13. Feb 2008)

In der web.xml werden die Servlets ja gemapped, wie funktioniert das ganze bei den Portlets?
Wenn man für ein Portlet eine view.jsp, edit.jsp usw. hat, wird diese dann in der *.class eingebunden? Muss ja so funktionieren oder?
Hängt das von dem Container ab? Ich verwende Pluto.


----------



## Ralf Ueberfuhr (13. Feb 2008)

Portlets werden nicht gemappt, weil du Portlets nicht direkt ansprechen kannst. Ansprechen kannst du nur eine Seite, die Portlets enthält.
Das "Mapping" übernimt dann der Portlet-Server, der Entwickler hat damit gar nichts zu tun.

Die JSPs werden im Portlet "eingebunden", wie bei Servlets im Sinne von MVC2. Dafür wird meist eine allgemeine Oberklasse für Portlets bereitgestellt, die dann in der Render-Methode modusabhängig auf die entsprechende JSP verweist. Das kann man natürlich auch überschreiben.


----------



## sutcha (18. Feb 2008)

Mich interessiert aber gerade der Teil, bei dem das Portlet in einer Portalseite eingebunden wird. Gerade darüber findet man sehr wenig.


----------



## Ralf Ueberfuhr (18. Feb 2008)

Wie ich schon sagte, ist das aber nicht genormt und hängt vom Portal Server ab. Hier ein Beispiel:

http://portals.apache.org/jetspeed-1/tutorial/5/page.html


----------

