200 likes | 292 Views
Java web programozás. 7-8. Tartalom. Java Server Pages (JSP) JSP lapok futtatása Script elemek Direktívák Megjegyzések Akcióelemek Egy Java Bean használata Unified Expression Language JSTL. JSP lapok futtatása. A Servlet-ekre épülő technológia
E N D
Java web programozás 7-8.
Tartalom • Java Server Pages (JSP) • JSP lapok futtatása • Script elemek • Direktívák • Megjegyzések • Akcióelemek • Egy Java Bean használata • Unified Expression Language • JSTL
JSP lapok futtatása • A Servlet-ekre épülő technológia • Dinamikus tartalmat generál (HTML kimenet) • HTML és Java kód keveredése a kódban (a lapon) • Futtatáskor, a JSP lap, egy Servlet-té fordul le. • A JSP elemek („tag-ek”) típusai: • Script elemek • Deklaráció • Kifejezés • Szkriptlet • Direktívák (include, taglib, page) • Akcióelemek (jsp:include, jsp:forward)
Szkript elemek • A dinamikus tartalomgenerálás elsődleges eszköze • Típusai: • Deklaráció (változók deklarálása a lapon) • Szintaxis: <%! deklaráció %> • Pl. <%! String s = szoveg %> • Kifejezés (Tetszőleges Java utasítás) • Szintaxis: <%= kifejezés %> • Pl. <%= new java.util.Date() %> (A mostani dátum kiíratása a lapra) • Szkriptlet (Tetszőleges Java kódrészlet) • Szintaxis: <% kód %> • Pl. <% int i = 5; if (i > 2) %> <h2>Nagy</h2> <% else %> <h5>kicsi</h5>
Implicit objektumok • request: a „kérés” objektum. • response: a „válasz” objektum • out: ezen keresztül írhatunk választ a kliensnek. • session: a kéréshez kapcsolódó „munkamenet” • pageContext: objektumok, erőforrások elérése • page: a this megfelelője, a JSP lapon.
Direktívák • A web-szervernek küldött konfigurációs üzenetek, beállítások • Általános szintaxis: <%@ direktíva {attribútum = „érték”}%> • Típusai: • Include: Egy másik fájl tartalmának a beszúrása a JSP lapra. • Szintaxis: <%@ include file=„relatív elérési út”%> • Taglib: egy tagkönyvtár használata = import • Szintaxis: <%@ taglib uri=„java.util.Date” prefix=„d”%> • Page:Az egész oldalra érvényes beállítások. Lásd. A „Minta JSP lap” diát.
Egyéb elemek • Megjegyzés: • Szintaxis: <%- a megjegyzés -%> • Akcióelemek: • Szintaxis: <jsp:elemnév attribútum=„érték” attribútum2=„.../> • Az akcióelemek felsorolva: • jsp:include • jsp:forward • jsp:useBean • jsp:getProperty • jsp:setProperty
Akcióelemek • jsp:include • Más lap/tartalom dinamikus bemásolása, használata • Szintaxis: <jsp:include page=„relatív url” flush=„true/false”/> • Ha a „flush” = true, akkor a web szerver, a beszúrás előtt kiüríti a kimeneti puffert. • jsp:forward • A kérés továbbítása • Szintaxis: <jsp:forward page=„relatív url”/>
Akcióelemek 2. • Jsp:useBean • Egy Java osztály betöltése/használata a JSP lapon • Így használhatóak lesznek az osztály változói, ill. metódusai. • Szintaxis: <jsp:useBean id=„jb” class=„hu.javatanf.bean.Osztalyom” scope=„session”/> • A „scope” lehetséges értékei: • page • request • session • application
Akcióelemek 3. • jsp:getProperty • Egy Java osztály változójának az elérése. • Szintaxis: <jsp:getProperty name=„a bean neve” property=„változó neve”/> • jsp:setProperty • Egy Java osztály változójának a beállítása. • Szintaxis: <jsp:setProperty name=„bean” property=„nev” value=„name”/> A HTML form egy elemének a „name” attribútumában megadott értéke A bean egy változója
Osztály a JSP lap mögött index.jsp fogado.jsp Ember.java
UEL • UEL = Unified Expression Language • Használata JSP lapon: ${kifejezés} • Használata JSF lapon: #{kifejezés} • Általában a „mögöttes osztályban” lévő adatok (változók) beállítására/lekérdezésére használjuk. • Példa JSF lapon való használatra • <h:inputText value=„#{managedBean.nev}”/> • Magyarázat: A „managedBean” egy JSF lap mögötti osztály, a „nev” pedig ennek az osztálynak egy változója/adata. • A „h:inputText” pedig egy JSF beviteli mező.
JSTL • JSTL = JavaServer Pages Standard Tag Library • Regisztrációja a JSP lapon: • <%@taglib uri=„http://java.sun.com/jsp/jstl/core” prefix=„c”%> • JSTL vezérlőszerkezetek • Elágazás: <c:if> • Ciklus: <c:forEach> • Választás: <c:choose> • Kiíratás: <c:out>
JSTL példák • <c:if>
JSTL példák • <c:forEach>
JSTL példák • <c:choose>