Deployment descriptor

A Wikipédiából, a szabad enciklopédiából

A deployment descriptor egy általános elnevezése az olyan konfigurációs fájloknak, melyek egy alkalmazás, webes tárolóba történő telepítésének módját definiálják, strukturált formában. (Servlet containerek listája)

A Java Platform, Enterprise Edition leírói megadják, hogyan legyenek telepítve a modulok és komponensek. Ilyen komponensek lehetnek például webalkalmazások.[1] Ez a leíró fájl tartalmazza az utasításokat a webalkalmazás telepítéséhez, melyet "deployment tool" fog értelmezni. Ez a beállítások alapján, különféle konténer és biztonsági beállítást végez el, valamint speciális környezeti beállításokat alkalmazhat. Az XML a leíró fájl szintaxisát alkotó adatleíró nyelv.

Webalkalmazásoknál a telepítési leírókat web.xml-nek hívják, és a projekt mappaszerkezetében a WEB-INF mappában található. A Java webalkalmazások a web.xml-ben definiálják, hogy az egyes URL-ek hogyan mutassanak (Servlet)-ekre, és ezek közül melyik milyen authentikációt igényel. A web.xml része a webalkalmazások servlet szabványának.

Típusai[szerkesztés]

A Java EE rendszerben két fajta telepítési leíró van: "Java EE deployment descriptors" és "runtime deployment descriptors".[1] A Java EE telepítési leírók a nyelv által specifikáltak.[2] A futásidejű leírókat az egyes gyártók biztosítják a saját tároló implementációikhoz. Például a web.xml fájl szabványos Java EE deployment descriptor, amely a Java Servlet specifikációjában van leírva. Azonban a sun-web.xml fájl konfigurációs adatokat speciálisan a "Sun GlassFish Enterprise Server" implementációjához tárol.[3] Ezeken felül több különböző leíró létezik még.

Szervletek és URL-ek[szerkesztés]

A web.xml egy kapcsolatot definiál URL címek és a szervletek között, melyek a kéréseket szolgálják ki. A Webkiszolgáló arra használja ezt a konfigurációs fájlt, hogy megkeresse az adott URL-hez tartozó szervletet, és meghívja a kéréshez tartozó osztály megfelelő metódusát. (pl. a doGet () metódus a HTTP GET kéréseket).

Egy URL-t egy szervlethez a következő módon lehet kapcsolni. A <servlet> kulcsszóval deklaráljuk a szervletet, majd megadjuk a kapcsolatot egy URL címmel. Ezt a <servlet-mapping> kulcsszóval tehetjük meg.

A <servlet> elem megadásához definiálnunk kell a nevét, az osztályát és az kezdeti paramétereit. Az osztály tag arra a java osztályra hivatkozik, amely a szervlethez befutó kérések kezelését valósítja meg. Többször is deklarálható ugyanaz az osztály ha a kiindulási paraméterei különbözőek, azonban a névnek egyedinek kell lennie a teljes fájlban.

    <servlet>
        <servlet-name>redteam</servlet-name>
        <servlet-class>mysite.server.TeamServlet</servlet-class>
        <init-param>
            <param-name>teamColor</param-name>
            <param-value>red</param-value>
        </init-param>
        <init-param>
            <param-name>bgColor</param-name>
            <param-value>#CC0000</param-value>
        </init-param>
    </servlet>

    <servlet>
        <servlet-name>blueteam</servlet-name>
        <servlet-class>mysite.server.TeamServlet</servlet-class>
        <init-param>
            <param-name>teamColor</param-name>
            <param-value>blue</param-value>
        </init-param>
        <init-param>
            <param-name>bgColor</param-name>
            <param-value>#0000CC</param-value>
        </init-param>
    </servlet>

A <servlet-mapping> tag definiálja a kapcsolatot egyes URL minták és a már deklarált szervletek között. Az URL minta tartalmazhat (*) szimbólumot az URL elején vagy végén, ezzel jelezve hogy további karakterek lehetnek az URL-ben.

    <servlet-mapping>
        <servlet-name>redteam</servlet-name>
        <url-pattern>/red/*</url-pattern>
    </servlet-mapping>

    <servlet-mapping>
        <servlet-name>blueteam</servlet-name>
        <url-pattern>/blue/*</url-pattern>
    </servlet-mapping>

Megjegyzés: Az URL mutathat adott szerveren lévő mappának a teljes tartalmára, mely tartalmazhat úgynevezett statikus fájlokat. Ilyenek például a képek, CSS vagy JavaScript fájlok. Ezeket ki lehet zárni az appengine-web.xml megfelelő beállításával.

JSP[szerkesztés]

Egy alkalmazás használhatja a JavaServer Pages-t (JSP) a weboldalak implementálására. A JSP oldalak szervletek, melyek statikus tartalom például HTML elemek és Java kód keveréke. Ezzel hatékony adatvizualizációs oldalak készíthetők.

Az alkalmazás motor támogatja az automatikus fordítást és URL mapping-ot a JSP számára. A WEB-INF mappán kívül bármely JSP kiterjesztésű fájl automatikusan egy szervlet osztállyá lesz fordítva. A hozzá tartozó URL pedig a gyökérhez képesti relatív pozíciója lesz.

Saját URL mapping-ot a következő módon definiálhatunk:

    <servlet>
        <servlet-name>register</servlet-name>
        <jsp-file>/register/start.jsp</jsp-file>
    </servlet>

    <servlet-mapping>
        <servlet-name>register</servlet-name>
        <url-pattern>/register/*</url-pattern>
    </servlet-mapping>

Megjegyzés: A <jsp-file> (/) karakterrel kell kezdődjön amennyiben a JSP fájl az alkalmazás root könyvtárában található.

Lehetőség van JSP taglibek telepítésére is, melyet a <taglib> tag vezet be.

    <taglib>
        <taglib-uri>/escape</taglib-uri>
        <taglib-location>/WEB-INF/escape-tags.tld</taglib-location>
    </taglib>

Biztonság és authentikáció[szerkesztés]

A <security-constraint> elemmel lehetséges biztonsági megszorításokat definiálni az URL illesztési mintához. Például, ha a felhasználó bejelentkezés nélkül egy olyan URL-re hivatkozik, amely így nem érhető el, akkor a szerver átirányítja a beljelentkező képernyőre.

    <security-constraint>
        <web-resource-collection>
            <url-pattern>/profile/*</url-pattern>
        </web-resource-collection>
        <auth-constraint>
            <role-name>*</role-name>
        </auth-constraint>
    </security-constraint>

    <security-constraint>
        <web-resource-collection>
            <url-pattern>/admin/*</url-pattern>
        </web-resource-collection>
        <auth-constraint>
            <role-name>admin</role-name>
        </auth-constraint>
    </security-constraint>

A "Welcome File List"[szerkesztés]

Amikor egy URL nem egy fájlra, hanem a szerveren található valamely almappára hivatkozik, akkor lehetőség van megadni egy sor weboldal elérését, melyeket a szerver megjelenít. Ez akkor hasznos, ha a felhasználó manuálisan egy almappára hivatkozik, az abban található fájlok listázásának céljából. Ekkor a definiált URL kerül megnyitásra.

    <welcome-file-list>
        <welcome-file>index.jsp</welcome-file>
        <welcome-file>index.html</welcome-file>
    </welcome-file-list>

Szűrők[szerkesztés]

A szűrő egy olyan osztály, amely egy kérés során úgy viselkedik mint egy szervlet, azonban engedi a kérés továbbadását más szűrőknek, vagy szervleteknek. Szűrők tökéletesen alkalmasak külső feladatok elvégzésére, mint például log bejegyzése vagy a kérés tartalmának vizsgálata. Ez további biztonsági vizsgálatok beágyazását teszi lehetővé kérésenként.

Jegyzetek[szerkesztés]

  1. a b "The Java EE 5 Tutorial: Packaging Applications" Archiválva 2010. július 23-i dátummal a Wayback Machine-ben, Hozzáférés ideje: 2010-07-13
  2. "Java EE : XML Schemas for Java EE Deployment Descriptors", Hozzáférés ideje: 2010-07-13
  3. "Sun Java System Application Server Descriptors", Hozzáférés ideje: 2010-07-13

Külső hivatkozások[szerkesztés]

Kapcsolódó szócikkek[szerkesztés]