Movatterモバイル変換


[0]ホーム

URL:


Ugrás a tartalomhoz
Wikipédia
Keresés

JavaServer Pages

Ellenőrzött
A Wikipédiából, a szabad enciklopédiából

Változat állapota

Ez a lap egy ellenőrzött változata

Ez aközzétett változat,ellenőrizve:2024. augusztus 26.

Pontosságellenőrzött

AJavaServer Pages (rövidenJSP) egy technológia, melynek segítségével aszoftverfejlesztő dinamikusan tud generálniHTML,XML vagy egyéb dokumentumokatHTTP kérésekre reagálva. A JSP tekinthető aservlet réteg feletti absztrakciós szintnek. A JSP oldalból java servlet forráskód generálódik. A JSP2006 májusa óta aJ2EE specifikáció része.

Történet

[szerkesztés]

Az első hivatalos JSP specifikációt1999 júniusában adták ki. A későbbi változatok felülről kompatibilisek ezzel az 1.0 verzióval. Szintén még1999-ben jelent meg a JSP 1.1 verzió decemberben, amely már lehetőséget adott acustom tag libraries, magyarul elemkönyvtárak használatára. A JSP 1.2 verzió 2001 szeptemberében látott napvilágot. Ezt követte a JSP 2.0 verzió, amelyben már szerepelt akifejezésnyelv (angolulExpression Language vagy rövidenEL) és a JSPX dokumentumok támogatása is. A legfrissebb JSP specifikáció a JSP 2.1.

Szintaxis

[szerkesztés]

Egy JSP oldalban a következő nyelvi elemek lehetnek:

  • statikus adat, példáulHTML kód
  • direktívák
  • szkriptelemek és változók
  • akciók
  • elemkönyvtárakban definiálttag-ek

Direktívák

[szerkesztés]

A direktívák tekinthetők a JSP konténernek szóló utasításoknak is. Attribútumaik is lehetnek. A direktívák általános alakja a következő:

<%@ direktívanév attr_1="érték_1" attr_2="érték_2" … %>

Három féle direktíva használható JSP oldalakban:include,page és ataglib

include

[szerkesztés]

Azinclude direktívával be lehet illeszteni egy teljes fájl tartalmát az adott JSP oldalba. Ez hasonlatos aC programozási nyelv#include direktívájához. Statikus tartalmat illeszt be a fordítás előtt. (Dinamikus, futásidejű beillesztés ajsp:include akcióval lehetséges.) A beillesztett fájlok kiterjesztése általában.jspf, ami aJSP Fragment rövidítése:

<%@ include file="valami_file.jspf" %>

page

[szerkesztés]

Apage direktíva hatása a kapott opcióktól függ, melyeket az alábbiakban részletezünk:

import
Stringértékű argumentum, a generált szervlet kódban import utasítássá konvertálódik:
<%@ page import="java.util.*" %>
contentType
A tartalom típusát adja meg. Ezt akkor érdemes használni, ha a generált tartalom nemHTML vagy ha az alapértelmezett karaktertáblától különbözőt kívánunk használni:
<%@ page contentType="text/html;charset=ISO-8859-2" %>
errorPage
Azt adja meg, hogy mely oldalra irányítódjon át a felhasználó, ha kivétel történik aHTTP kérés kezelése során:
<%@ page errorPage="hibalap.jsp" %>
isErrorPage
Logikai értéket vehet fel. Akkor igaz az értéke, ha az adott lap hibalap:
<%@ page isErrorPage=false %>
isThreadSafe
Logikai értéket vehet fel. Értéke akkor legyentrue, ha az adott oldal szálbiztos, értve ezalatt azt, hogy ki tud szolgálni több kérést párhuzamosan. Ha értékefalse, akkor a JSP container sorbaállítja a kéréseket:
<%@ page isThreadSafe=true %>
info
String értékű argumentum, mely az oldal rövid leírását tartalmazhatja. Az így definiált leírást adja vissza a generált Servlet osztálygetServletInfo() metódusa:
<%@ page info="Ez itt, kéremszépen, fontos servlet információ." %>
extends
Azt adja meg, hogy a JSP oldalból generált osztály mely osztálynak legyen a leszármazottja. Ritkán használják, hiszen általában megfelel az alapértelmezett öröklődés.
<%@ page extends="ValamiOsztaly" %>
session
logikai értékével azt határozható meg, hogy akar-e aszoftverfejlesztő sessiont használni. Az alapértelmezett értéktrue. Ha értékefalse, akkor nem használható asessionimplicit objektum.
<%@ page session=false %>
buffer
Megadható a kimeneti puffer minimális mérete. Az alapértelmezett érték 8kb. Értéke lehetnone is, ekkor nincs pufferelés, és minden közvetlenül íródik a HTTP válaszPrintWriter objektumára:
<%@ page buffer="32kb" %>
<%@ page buffer="none" %>
autoFlush
Logikai érték, mely azt határozza meg, hogy mi történjek, ha a kimeneti puffer megtelik. Ha értéketrue, akkor a puffer automatikusan ürítődik. Ha értékefalse, akkor kivétel váltódik a puffer megtelése esetén. Alapértelmezett értéketrue:
<%@ page autoFlush=false %>

taglib

[szerkesztés]

Ataglib direktívával JSP elemkönyvtárakat lehet használni. Paraméterként meg kell adni egyURI-t, ahol az elemkönyvtár leírófájlja található, valamint egy prefixumot, amivel később hivatkozni lehet az elemkönyvtár elemeire. Például így:

<%@ taglib prefix="kedvencprefixumom" uri="taglib/kedvenc.tld" %>

Szkriptelemek

[szerkesztés]

Háromféleképpen lehetjava forráskódot elhelyezni a JSP oldalban: deklarációk, szkriptrészletek és kifejezések formájában:

Deklarációk

[szerkesztés]

Adeklarációs tag-ben definiált kód teljes egészében bemásolódik a generált java servlet osztály forráskódjába. Például adattagokat lehet vele definiálni:

<%! int serverInstanceVariable = 1; %>

A deklarációs tag metódust is tartalmazhat, amely szintén a generált szervlet osztályba kerül be:

<%! public void increaseServerInstanceVariable() {     serverInstanceVariable++; }%>

Szkriptrészletek

[szerkesztés]

Aszkriptrészlet (angolulscriptlet) tagben megadott kódrészlet a generált servlet osztály_jspService() metódusába másolódik be.

Szintaxisa:

<%java forráskód%>

Példa:

<% int lokalisValtozo = 6 * 7 ; out.println("Hatszor hét az " + lokalisValtozo + ".");%>

Kifejezések

[szerkesztés]

Akifejezés tag-ben megadott kifejezés futási időben értékelődik ki és az értéke kerül awebszerver által visszaadott HTML kódba. Az alábbi példa2{\displaystyle {\sqrt {2}}} közelítő értékét generálja:

<%= Math.sqrt(2) %>

Implicit objektumok

[szerkesztés]

Léteznek ún. implicit objektumok, melyeket a JSP container láthatóvá tesz a JSP oldalak számára. Ezekre hivatkozhat aszoftverfejlesztő a JSP kódban:

out
A JSPWriter osztály példánya, aHTTP válasz üzenettörzs részét reprezentálja.
page
Maga a generált java servlet objektum.
pageContext
Ajavax.servlet.jsp.PageContext osztály példánya. Az egész oldalra vonatkozó adatokat tartalmaz.
request
Egyjavax.servlet.http.HttpServletRequest objektum, amely aHTTP kérést reprezentálja.
response
AHTTP válasz objektum.
session
AHTTP session objektum, mely felhasználói információk megőrzésére használható.
config
A servlet konfigurációs adatait tartalmazóServletConfig objektum. Értéke megegyezik a servlet objektumgetServletConfig() metódusának visszatérési értékével.
application
Alkalmazásadatokat tartalmazó objektum.
exception
A dobott kivétel objektumot tartalmazza, amennyiben az adott JSP oldal hibalap, azazisErrorPage="true".

Megjegyzések

[szerkesztés]

Amegjegyzés tag-ek formátuma az alábbi:

<%-- Megjegyzés szövege --%>

Akciók

[szerkesztés]

A JSP tartalmaz standard akciókat is, de a JSP 1.1 verziója óta lehetséges a saját akciók definiálása is saját elemkönyvtárak (angolulcustom tag libraries) használatával. Az alábbi lista mutatja a JSP standard akcióit:

jsp:include
Hasonlatos a szubrutinhíváshoz. Hatására a servlet átadja aHTTP kérés kezelését egy másik oldalnak. Ha a megadott oldal válaszolt, akkor visszakerül a vezérlés a hívó oldalhoz. Ezzel az akcióval az egyszer megírt kód újrahasználható, s így nem kell azt duplikálni. Az a különbség az include direktíva és a jsp:include akció között, hogy míg a direktíva statikusan illeszti be egy másik oldal tartalmát fordítás előtt, addig a jsp:include akció dinamikusan, aHTTP kérés kezelésekor fut le és így dinamikusan generált tartalmat is be tud illeszteni.
jsp:param
A jsp:include, jsp:forward vagy jsp:params blokkok belsejében használható. A megadott paraméter hozzáadódik a kérés paraméterlistájába
jsp:forward
Segítségével aHTTP kérés továbbadódik egy másik URL-re. Ellentétben a jsp:include akcióval, itt a hívó oldalhoz soha nem kerül vissza a vezérlés.
jsp:plugin
ANetscape Navigator és azInternet Explorer korábbi verziói különbözőhtml tag-eket használtak ajava appletek beillesztésére. Ez az akció legenerálja a megfelelő böngészőspecifikustag-et.
jsp:fallback
A megjelenítendő tartalom abban az esetben, ha a böngésző nem támogatja az appleteket.
jsp:getProperty
Lekérdez egy tulajdonságot a megadottJavaBean-től.
jsp:setProperty
Beállítja a megadott JavaBean egy tulajdonságát.
jsp:useBean
Létrehoz illetve újrafelhasznál egy JavaBeant.

Elemkönyvtárak

[szerkesztés]

A JSP 1.1 és az azt követő verziókban lehetséges a saját elemkönyvtárak használata. A fejlesztőnek meg kell írnia egy java osztályban az akció kódját, továbbá kell készítenie egy elemkönyvtárleíróXML fájlt, angolultag library desciptor-t. Az ilyen fájlok kiterjesztése jellemzően.tld. Az alábbi példában feltesszük, hogy létezik egykrumpli.tld elemkönyvtárleíró fájl és a hozzá tartozó implementáció. A JSP oldalban először hivatkozni kell a leírófájlra és meg kell adni a használni kívánt prefixumot a taglib direktíva segítségével, majd használhatóak az akciók:

<%@ taglib uri="krumpli.tld" prefix="trallala" %>…<trallala:izgalmasakcio> <%-- a nyitó tag %>…</trallala:izgalmasakcio> <%-- a záró tag %>…

További információk

[szerkesztés]
A lap eredeti címe: „https://hu.wikipedia.org/w/index.php?title=JavaServer_Pages&oldid=27398276
Kategóriák:

[8]ページ先頭

©2009-2025 Movatter.jp