Ugrás a tartalomhoz

Java Portlet Specification

A Wikipédiából, a szabad enciklopédiából
A lap korábbi változatát látod, amilyen Sz20b11 (vitalap | szerkesztései) 2011. május 10., 01:43-kor történt szerkesztése után volt. Ez a változat jelentősen eltérhet az aktuális változattól.

A portletek a felhasználói felület olyan szoftver komponensei, amelyek egy webportálon belül kerülnek menedzselésre és megjelenítésre. Egy webportál általában több portletet is tartalmaz, a leggyakrabban alkalmazottak a következők: e-mail kliens, időjárás-előrejelzés, hírek. Egy portlet a felépítéséből adódóan könnyen testre szabható, a felhasználó által átrendezhető, módosítható.

A különböző gyártók által elkészített portletek száma rohamos növekedésnek indult, ami komoly nehézséget okozott a webportált működtetőknek és a felhasználóknak egyaránt, hiszen a különböző gyártók különféle interfészeket alkalmaztak. Ezen problémák megoldására született a JSR (Java Specification Request) 168, a Portlet specifikáció, amely lehetővé teszi a különböző portletek együttműködését, összehangolását.

A JSR 168

A JSR 168 a portletet Java alapú komponensenként definiálja, amely egy megjelenítési réteget ad az információs rendszereknek.

A JSR 168 céljai a következők:

  • futtató környezet definiálása, a portlet konténer
  • a portlet és a portlet konténer közötti API definiálása
  • tranziens és perzisztens adatok tárolása portletek számára
  • szervletek és JSP beágyazásának lehetősége portletekbe
  • portlet csomagok definiálása
  • lehetőség bináris portletek hordozhatóságára, JSR 169 portletek esetén

Az számítástechnikai iparág többnyire elfogadta a JSR 168-at. Többek között a következő vállalatok tagjai a JSR 168 csoportnak: Apache, ATG, Boeing, Fujitsu, IBM, Novell, Oracle.

A portlet életciklusa

Egy szabványos JSR 168 portlet életciklusa:

  • inicializálás: a portlet inicializálása
  • kérések kiszolgálása: a különböző kérések végrehajtása
  • megszüntetés

Portlet interfész

Minden portletnek implementálnia kell a Portlet interfészt, vagy öröklődnie kell egy ilyen osztályból. Egy portlet interfész a következő metódusobkól áll:

  • init(PortletConfig config): portlet inicializálása, csak egyszer hívódik meg
  • processAction(ActionRequest request, ActionResponse response): egy felhasználói kérést továbbít a portlet felé
  • render(RenderRequest request, RenderResponse response): egy adott kérés végrehajtása
  • destroy(): portlet megszüntetése, erőforrásainak felszabadítása

Hello World portlet

import java.io.PrintWriter;
import java.io.IOException;

import javax.portlet.GenericPortlet;
import javax.portlet.RenderRequest;
import javax.portlet.RenderResponse;
import javax.portlet.PortletException;

public class HelloWorldPortlet extends GenericPortlet {
  /**
   * A portlet a következő szöveget jeleníti meg: "Hello, World"
   */
  public void render(RenderRequest request, RenderResponse response)
    throws PortletException, IOException
  {
    PrintWriter out = response.getWriter();

    out.println("Hello, World");
  }
}

Források

http://en.wikipedia.org/wiki/Portlet

http://developers.sun.com/portalserver/reference/techart/jsr168/

http://www.javaworld.com/javaworld/jw-08-2003/jw-0801-portlet.html

http://www.caucho.com/resin-3.0/portlet/tutorial/basic-hello/index.xtp

http://onjava.com/onjava/2005/09/14/what-is-a-portlet.html


Külső hivatkozások

http://developers.sun.com/portalserver/reference/techart/jsr168/