Deployment descriptor
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ésA 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ésA 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ésEgy 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ésA <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ésAmikor 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ésA 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- ↑ 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
- ↑ "Java EE : XML Schemas for Java EE Deployment Descriptors", Hozzáférés ideje: 2010-07-13
- ↑ "Sun Java System Application Server Descriptors", Hozzáférés ideje: 2010-07-13
Külső hivatkozások
szerkesztés- http://java.sun.com/javaee/reference/glossary/
- http://java.sun.com/xml/ns/javaee/index.html - Deployment Descriptor XML Schema Reference
- http://java.sun.com/blueprints/guidelines/designing_enterprise_applications_2e/deployment/deployment5.html
- http://wiki.metawerx.net/wiki/Web.xml Archiválva 2012. május 21-i dátummal a Wayback Machine-ben