JavaServer Pages
Vznik | 1999 |
---|---|
VÃÂÃÂÃÂývojÃÂÃÂÃÂáÃÂàÃÂà| Oracle (dÃÂàÃÂÃÂÃÂÃÂÃÂÃÂve Sun) |
PoslednÃÂÃÂÃÂÃÂ verze | 2.1 (leden 2006) |
Web | OficiÃÂÃÂÃÂálnÃÂÃÂÃÂàstrÃÂÃÂÃÂánky (anglicky) |
JavaServer Pages (JSP) je technologie pro vÃÂÃÂÃÂývoj hlavnÃÂÃÂÃÂàdynamickÃÂÃÂÃÂých HTML strÃÂÃÂÃÂánek zaloÃÂàÃÂþenÃÂÃÂÃÂá na jazyce Java. Vyvinul ji vÃÂàSun, ale pak ji koupila firma Oracle. PÃÂàÃÂÃÂi tvorbÃÂÃÂÃÂàse tedy pouÃÂàÃÂþÃÂÃÂÃÂÃÂvÃÂÃÂÃÂá primÃÂÃÂÃÂárnÃÂÃÂÃÂàHTML aÃÂàJava. Do kÃÂÃÂÃÂódu HTML se vklÃÂÃÂÃÂádÃÂÃÂÃÂá Java. OddÃÂÃÂÃÂÃÂluje se od HTML takto: <% .. Java kÃÂÃÂÃÂód ..ÃÂà%> a tyto bloky se nazÃÂÃÂÃÂývajÃÂÃÂÃÂàskriptlety. Na stranÃÂÃÂÃÂàserveru se tedy vloÃÂàÃÂþÃÂÃÂÃÂàvygenerovanÃÂÃÂÃÂý HTML mÃÂÃÂÃÂÃÂsto Javy v souboru. Jde o podobnÃÂÃÂÃÂý princip, jako u PHP. PÃÂàÃÂÃÂÃÂÃÂÃÂÃÂpona souborÃÂàÃÂï je .jsp.
ÃÂàÃÂýivotnÃÂÃÂÃÂàcyklus JSP
VÃÂàokamÃÂàÃÂþiku requestu ze strany klienta na server, si web container zkontroluje zdali je uÃÂàÃÂþ vytvoÃÂàÃÂÃÂenÃÂÃÂÃÂý Servlet kÃÂàdanÃÂÃÂÃÂé JSP strÃÂÃÂÃÂánce. Pokud ne, tak vytvÃÂÃÂÃÂáÃÂàÃÂÃÂÃÂÃÂÃÂàServlet. Pokud danÃÂÃÂÃÂý Servlet najde, tak kontroluje staÃÂàÃÂÃÂÃÂÃÂÃÂàobou souborÃÂàÃÂï a pokud je JSP strÃÂÃÂÃÂánka mladÃÂàÃÂáÃÂÃÂÃÂÃÂ, tak Servlet vytvoÃÂàÃÂÃÂÃÂÃÂÃÂàznovu. Pokud ne, tak pro zlepÃÂàÃÂáenÃÂÃÂÃÂàvÃÂÃÂÃÂýkonu pouÃÂàÃÂþije jiÃÂàÃÂþ existujÃÂÃÂÃÂÃÂcÃÂÃÂÃÂàServlet. ÃÂàÃÂýivotnÃÂÃÂÃÂàcyklus JSP se sklÃÂÃÂÃÂádÃÂÃÂÃÂá ze sedmi ÃÂÃÂÃÂÃÂÃÂÃÂÃÂástÃÂÃÂÃÂÃÂ:
- PÃÂÃÂ ÃÂÃÂeklad JSP
- Kompilace JSP
- Classloading ÃÂâÃÂÃÂÃÂànaÃÂÃÂÃÂÃÂte korespondujÃÂÃÂÃÂÃÂcÃÂÃÂÃÂàServlet tÃÂàÃÂÃÂÃÂÃÂÃÂÃÂdu
- Instantiation ÃÂâÃÂÃÂÃÂàpÃÂàÃÂÃÂipravÃÂÃÂÃÂàServlet tÃÂàÃÂÃÂÃÂÃÂÃÂÃÂdu
- Inicializace ÃÂâÃÂÃÂÃÂàjspInit()
- ZpracovÃÂÃÂÃÂánÃÂÃÂÃÂàpoÃÂàÃÂþadavku (Request) ÃÂâÃÂÃÂÃÂàjspService()
- ZahozenÃÂÃÂÃÂàobjektu ÃÂâÃÂÃÂÃÂàjspDestroy()
VÃÂÃÂÃÂýhody
Mezi hlavnÃÂÃÂÃÂàvÃÂÃÂÃÂýhody JSP patÃÂàÃÂÃÂÃÂÃÂÃÂàmoÃÂàÃÂþnost vyuÃÂàÃÂþÃÂÃÂÃÂÃÂt vÃÂàÃÂáech moÃÂàÃÂþnostÃÂÃÂÃÂÃÂ, co nabÃÂÃÂÃÂÃÂzÃÂÃÂÃÂàServlety a navÃÂÃÂÃÂÃÂc implicitnÃÂÃÂÃÂÃÂch objektÃÂàÃÂï, pÃÂàÃÂÃÂeddefinovanÃÂÃÂÃÂých tagÃÂàÃÂï, Expression Language (EL) a vlastnÃÂÃÂÃÂÃÂch tagÃÂàÃÂï.
JSP API
VÃÂàÃÂáechny vygenerovanÃÂÃÂÃÂé Servlety musÃÂÃÂÃÂàimplementovat dvÃÂÃÂÃÂàrozhranÃÂÃÂÃÂÃÂ. PrvnÃÂÃÂÃÂÃÂm je JspPage interface, z kterÃÂÃÂÃÂého implementuje dvÃÂÃÂÃÂàmetody z ÃÂàÃÂþivotnÃÂÃÂÃÂÃÂho cyklu:
- public void jspInit() ÃÂâÃÂÃÂÃÂàmetoda je volÃÂÃÂÃÂána pÃÂàÃÂÃÂi prvnÃÂÃÂÃÂÃÂm requestu, stejnÃÂÃÂÃÂàjako metoda init() uÃÂàServlet rozhranÃÂÃÂÃÂÃÂ
- public void jspDestroy() ÃÂâÃÂÃÂÃÂàmetoda je volÃÂÃÂÃÂána na konci ÃÂàÃÂþivotnÃÂÃÂÃÂÃÂho cyklu JSP, kdy je strÃÂÃÂÃÂánka zahozena
Z druhÃÂÃÂÃÂého rozhranÃÂÃÂÃÂÃÂ, HttpJspPage, dostÃÂÃÂÃÂávÃÂÃÂÃÂá metodu:
- public void _jspService() ÃÂâÃÂÃÂÃÂàmetoda je volÃÂÃÂÃÂána pÃÂàÃÂÃÂi kaÃÂàÃÂþdÃÂÃÂÃÂém poÃÂàÃÂþadavku na JSP strÃÂÃÂÃÂánku, co pÃÂàÃÂÃÂijde do web containeru (webovÃÂÃÂÃÂý, aplikaÃÂÃÂÃÂÃÂnÃÂÃÂÃÂàserver), metoda nemÃÂàÃÂïÃÂàÃÂþe bÃÂÃÂÃÂýt pÃÂàÃÂÃÂepsÃÂÃÂÃÂána (@Override).
ImplicitnÃÂÃÂÃÂÃÂ objekty
Web container vytvÃÂÃÂÃÂáÃÂàÃÂÃÂÃÂÃÂÃÂàdevÃÂÃÂÃÂÃÂt implicitnÃÂÃÂÃÂÃÂch objektÃÂàÃÂï, kterÃÂÃÂÃÂé jsou dostupnÃÂÃÂÃÂé pro vÃÂàÃÂáechny JSP strÃÂÃÂÃÂánky:
- out ÃÂâÃÂÃÂÃÂàJspWriter
- request ÃÂâÃÂÃÂÃÂàHttpServletRequest
- response ÃÂâÃÂÃÂÃÂàHttpServletResponse
- config ÃÂâÃÂÃÂÃÂàServletConfig
- application ÃÂâÃÂÃÂÃÂàServletContext
- session ÃÂâÃÂÃÂÃÂàHttpSession
- pageContext ÃÂâÃÂÃÂÃÂàPageContext
- page ÃÂâÃÂÃÂÃÂàObject
- exception ÃÂâÃÂÃÂÃÂàThrowable
Tagy
Scriptlet tag
Syntax: <% ...ÃÂÃÂ %>
VyuÃÂàÃÂþÃÂÃÂÃÂÃÂvÃÂÃÂÃÂá se pro exekuci Java kÃÂÃÂÃÂódu v JSP a mÃÂàÃÂïÃÂàÃÂþe deklarovat promÃÂÃÂÃÂÃÂnnÃÂÃÂÃÂé (uvnitÃÂàÃÂàmetody service()).
Expression tag
Syntax: <%= ...ÃÂÃÂ %>
Vypisuje output stream bez potÃÂàÃÂÃÂeby pouÃÂàÃÂþitÃÂÃÂÃÂàout.print().
Declaration tag
Syntax: <%! ...ÃÂÃÂ %>
Deklaruje objekty a metody mimo metodu service(), takÃÂàÃÂþe nezabÃÂÃÂÃÂÃÂrajÃÂÃÂÃÂàpamÃÂÃÂÃÂÃÂÃÂàÃÂÃÂ¥ pÃÂàÃÂÃÂi kaÃÂàÃÂþdÃÂÃÂÃÂém volÃÂÃÂÃÂánÃÂÃÂÃÂÃÂ.
Direktivy - JSP Directives
JSP Directives jsou zprÃÂÃÂÃÂávy, kterÃÂÃÂÃÂé ÃÂàÃÂÃÂÃÂÃÂÃÂÃÂkajÃÂÃÂÃÂàweb containeru, jak mÃÂÃÂÃÂá pÃÂàÃÂÃÂeloÃÂàÃÂþi JSP strÃÂÃÂÃÂánku do Servletu.
Page directives
Syntax: <%@ page attribute="value"ÃÂÃÂ %>
DefinujÃÂÃÂÃÂàatributy pro celou JSP strÃÂÃÂÃÂánku.
- import ÃÂâÃÂÃÂÃÂàImportuje tÃÂàÃÂÃÂÃÂÃÂÃÂÃÂdu, rozhranÃÂÃÂÃÂànebo obsah celÃÂÃÂÃÂého balÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂku.
- contentType ÃÂâÃÂÃÂÃÂàDefinuje MIME (Multipurpose Internet Mail Expression) ÃÂâÃÂÃÂÃÂàvÃÂÃÂÃÂýchozÃÂÃÂÃÂàhodnota ÃÂâÃÂÃÂÃÂÃÂtext/html; charset=ISO-8859-1ÃÂâÃÂÃÂÃÂÃÂ.
- extend ÃÂâÃÂÃÂÃÂàDefinuje rodiÃÂÃÂÃÂÃÂovskou tÃÂàÃÂÃÂÃÂÃÂÃÂÃÂdu.
- info ÃÂâÃÂÃÂÃÂàNastavuje informace, kterÃÂÃÂÃÂé vracÃÂÃÂÃÂàmetoda getServletInfo().
- buffer ÃÂâÃÂÃÂÃÂàNastavuje velikost v kilobytech bufferu, kterÃÂÃÂÃÂý zpracovÃÂÃÂÃÂáva vÃÂÃÂÃÂýstup generovanÃÂÃÂÃÂý z JSP strÃÂÃÂÃÂánky ÃÂâÃÂÃÂÃÂàvÃÂÃÂÃÂýchozÃÂÃÂÃÂàhodnota 8ÃÂàkb.
- language ÃÂâÃÂÃÂÃÂàSpecifikuje skriptovacÃÂÃÂÃÂàjazyk pouÃÂàÃÂþitÃÂÃÂÃÂý v JSP ÃÂâÃÂÃÂÃÂàvÃÂÃÂÃÂýchozÃÂÃÂÃÂàhodnota ÃÂâÃÂÃÂÃÂÃÂjavaÃÂâÃÂÃÂÃÂÃÂ.
- isElIgnored ÃÂâÃÂÃÂÃÂàIgnoruje Expression Language na strÃÂÃÂÃÂánce ÃÂâÃÂÃÂÃÂàdefaultnÃÂÃÂÃÂàÃÂâÃÂÃÂÃÂÃÂfalseÃÂâÃÂÃÂÃÂÃÂ.
- isThreadSafe ÃÂâÃÂÃÂÃÂàServlety i JSP jsou defaultnÃÂÃÂÃÂàvlÃÂÃÂÃÂáknovÃÂÃÂÃÂàbezpeÃÂÃÂÃÂÃÂnÃÂÃÂÃÂé, aby se mohli jednotlivÃÂÃÂÃÂé requesty zpracovÃÂÃÂÃÂávat paralelnÃÂÃÂÃÂÃÂ. PÃÂàÃÂÃÂi nastavenÃÂÃÂÃÂàÃÂâÃÂÃÂÃÂÃÂfalseÃÂâÃÂÃÂÃÂàjsou requesty serializovÃÂÃÂÃÂány.
- errorPage ÃÂâÃÂÃÂÃÂàPokud dojde kÃÂàchybÃÂÃÂÃÂÃÂ, tak dojde kÃÂàpÃÂàÃÂÃÂesmÃÂÃÂÃÂÃÂrovÃÂÃÂÃÂánÃÂÃÂÃÂàna definovanou strÃÂÃÂÃÂánku.
- isErrorPage ÃÂâÃÂÃÂÃÂàDefinuje, ÃÂàÃÂþe tato strÃÂÃÂÃÂánka je errorPage
Include directive
Syntax: <%@ include file="resourceName"ÃÂÃÂ %>
Se pouÃÂàÃÂþÃÂÃÂÃÂÃÂvÃÂÃÂÃÂá pro vklÃÂÃÂÃÂádÃÂÃÂÃÂánÃÂÃÂÃÂàobsahu zÃÂàrÃÂàÃÂïznÃÂÃÂÃÂých zdrojÃÂàÃÂï, jako jsou JSP, HTML nebo textovÃÂÃÂÃÂé soubory. Obsah je do strÃÂÃÂÃÂánky vloÃÂàÃÂþen pouze jednou a to vÃÂàdobÃÂÃÂÃÂàpÃÂàÃÂÃÂekladu, takÃÂàÃÂþe je vhodnÃÂÃÂÃÂÃÂjÃÂàÃÂáÃÂÃÂÃÂàvklÃÂÃÂÃÂádat statickÃÂÃÂÃÂé zdroje. VelkÃÂÃÂÃÂá vÃÂÃÂÃÂýhoda je znovu pouÃÂàÃÂþitelnost kÃÂÃÂÃÂódu pÃÂàÃÂÃÂi vklÃÂÃÂÃÂádÃÂÃÂÃÂánÃÂÃÂÃÂàHTML strÃÂÃÂÃÂánek.
Taglib directive
Syntax: <%@ taglib uri="uriOfTheTagLibrary" prefix="prefix"ÃÂÃÂ %>
Definuje knihovnu tagÃÂàÃÂï, kterÃÂÃÂÃÂé mÃÂàÃÂïÃÂàÃÂþeme vyuÃÂàÃÂþÃÂÃÂÃÂÃÂt vÃÂàJSP strÃÂÃÂÃÂánce. Tagy jsou definovÃÂÃÂÃÂány TLD (Tag Library Despriptor) souboru.
OdchytÃÂÃÂÃÂávÃÂÃÂÃÂánÃÂÃÂÃÂàvÃÂÃÂÃÂýjimek
Pro odchytÃÂÃÂÃÂávÃÂÃÂÃÂánÃÂÃÂÃÂàvÃÂÃÂÃÂýjimek a oÃÂàÃÂáetÃÂàÃÂÃÂenÃÂÃÂÃÂàpÃÂàÃÂÃÂÃÂÃÂÃÂÃÂpadnÃÂÃÂÃÂých chyb, ke kterÃÂÃÂÃÂým mÃÂàÃÂïÃÂàÃÂþe dojÃÂÃÂÃÂÃÂt mÃÂÃÂÃÂáme dvÃÂÃÂÃÂàmoÃÂàÃÂþnosti. PrvnÃÂÃÂÃÂàje skrze Page directives a to konkrÃÂÃÂÃÂétnÃÂÃÂÃÂàpomocÃÂÃÂÃÂàatributÃÂàÃÂï errorPage aÃÂàisErrorPage. Druhou moÃÂàÃÂþnostÃÂÃÂÃÂàje vyuÃÂàÃÂþitÃÂÃÂÃÂà<error-page> elementu ve web.xml souboru.
PÃÂàÃÂÃÂÃÂÃÂÃÂÃÂklady s vyuÃÂàÃÂþitÃÂÃÂÃÂÃÂm web.xml souboru:
<web-app>
ÃÂâÃÂÃÂÃÂæ
<error-page>
<exception-type> java.lang.Exception </exception-type>
<location>/error.jsp</location>
</error-page>
ÃÂâÃÂÃÂÃÂæ
</web-app>
<web-app>
ÃÂâÃÂÃÂÃÂæ
<error-page>
<error-code>500</error-code>
<location>/error.jsp</location>
</error-page>
ÃÂâÃÂÃÂÃÂæ
</web-app>
JSP Action tagy
JSP Actiony tagy se pouÃÂàÃÂþÃÂÃÂÃÂÃÂvajÃÂÃÂÃÂàpro ÃÂàÃÂÃÂÃÂÃÂÃÂÃÂzenÃÂÃÂÃÂàa sprÃÂÃÂÃÂávu JSP strÃÂÃÂÃÂánek a pro prÃÂÃÂÃÂáci sÃÂàJava Beany.ÃÂàSeznam action tagÃÂàÃÂï: jsp:forward, jsp:include, jsp:useBean, jsp:setProperty, jsp:getProperty, jsp:plugin, jsp:param, jsp:fallback.
jsp:forward
Syntax:
bez parametru:
<jsp:forward page="relativeURL | <%= expression%>" />
s parametrem:
<jsp:forward page="relativeURL | <%=expressionÃÂÃÂ %>"
<jsp:param name="parameterName" value="value | <%= expressionÃÂÃÂ %>" />
</jsp:forward>
Jsp:forward pÃÂàÃÂÃÂeposÃÂÃÂÃÂÃÂlÃÂÃÂÃÂá request na dalÃÂàÃÂáÃÂÃÂÃÂàzdroj.
jsp:include
Syntax:
<jsp:includeÃÂÃÂ page="relativeURLÃÂÃÂ |ÃÂÃÂ <%=ÃÂÃÂ expressionÃÂÃÂ %>"ÃÂÃÂ />
Jsp:include vklÃÂÃÂÃÂádÃÂÃÂÃÂá obsah v dobÃÂÃÂÃÂàrequestu, coÃÂàÃÂþ umoÃÂàÃÂþÃÂàÃÂÃÂuje vytvÃÂÃÂÃÂáÃÂàÃÂÃÂet dynamicky generovanÃÂÃÂÃÂý obsah strÃÂÃÂÃÂánek.
jsp:useBean
Syntax:
<jsp:useBeanÃÂÃÂ id=ÃÂÃÂ "instanceName"ÃÂÃÂ scope=ÃÂÃÂ "pageÃÂÃÂ |ÃÂÃÂ requestÃÂÃÂ |ÃÂÃÂ sessionÃÂÃÂ |ÃÂÃÂ application"
class=ÃÂÃÂ "packageName.className"ÃÂÃÂ type=ÃÂÃÂ "packageName.className"ÃÂÃÂ ÃÂÃÂ beanName="packageName.classNameÃÂÃÂ |ÃÂÃÂ <%=ÃÂÃÂ expressionÃÂÃÂ >"ÃÂÃÂ >
</jsp:useBean>
Jsp:useBean vracÃÂÃÂÃÂànebo vytvÃÂÃÂÃÂáÃÂàÃÂÃÂÃÂÃÂÃÂàJava Bean podle definovanÃÂÃÂÃÂého scope v atributu.
Atributy
- id ÃÂâÃÂÃÂÃÂàidentifikuje beanu v danÃÂÃÂÃÂém scope
- scope
- page ÃÂâÃÂÃÂÃÂàpouze pro danou strÃÂÃÂÃÂánku (vÃÂÃÂÃÂýchozÃÂÃÂÃÂàhodnota)
- request ÃÂâÃÂÃÂÃÂàv rÃÂÃÂÃÂámci requestu
- session ÃÂâÃÂÃÂÃÂàv rÃÂÃÂÃÂámci session
- application ÃÂâÃÂÃÂÃÂàpro celou aplikaci . nejÃÂàÃÂáirÃÂàÃÂáÃÂÃÂÃÂàscope
- class ÃÂâÃÂÃÂÃÂàspecifikuje tÃÂàÃÂÃÂÃÂÃÂÃÂÃÂdu pro kterou vytvÃÂÃÂÃÂáÃÂàÃÂÃÂÃÂÃÂÃÂàobjekt (tÃÂàÃÂÃÂÃÂÃÂÃÂÃÂda musÃÂÃÂÃÂàsplÃÂàÃÂÃÂovat nÃÂÃÂÃÂáleÃÂàÃÂþitosti Java Beany)
- type ÃÂâÃÂÃÂÃÂàspecifikuje datovÃÂÃÂÃÂý typ Java Beany
- beanName ÃÂâÃÂÃÂÃÂàinicializuje beanu skrze java.beans.Beans.instantiate() metodu
jsp:setProperty
Syntax:
<jsp:setPropertyÃÂÃÂ name="instanceOfBean"ÃÂÃÂ property=ÃÂÃÂ "*"ÃÂÃÂ ÃÂÃÂ ÃÂÃÂ |ÃÂÃÂ ÃÂÃÂ ÃÂÃÂ property="propertyName"ÃÂÃÂ param="parameterName"ÃÂÃÂ ÃÂÃÂ |ÃÂÃÂ ÃÂÃÂ ÃÂÃÂ property="propertyName"ÃÂÃÂ value="{ÃÂÃÂ stringÃÂÃÂ |ÃÂÃÂ <%=ÃÂÃÂ expressionÃÂÃÂ %>}"ÃÂÃÂ ÃÂÃÂ ÃÂÃÂ />
Jsp:setProperty nastavuje hodnotu vlastnosti/atributu beany.
jsp:getProperty
Syntax:
<jsp:getPropertyÃÂÃÂ name="instanceOfBean"ÃÂÃÂ property="propertyName"ÃÂÃÂ />
Jsp:getProperty vracÃÂÃÂÃÂÃÂ hodnotu vlastnosti/atributu beany.
Expression Language (EL)
Syntax: ${ expression }
EL zjednoduÃÂàÃÂáuje pÃÂàÃÂÃÂÃÂÃÂÃÂÃÂstup kÃÂàdatÃÂàÃÂïm uloÃÂàÃÂþenÃÂÃÂÃÂých vÃÂàJava BeanÃÂÃÂÃÂách a dalÃÂàÃÂáÃÂÃÂÃÂÃÂch objektech jako je request, session nebo application. Do JSP bylo EL pÃÂàÃÂÃÂidÃÂÃÂÃÂáno vÃÂàverzi 2.0.
ImplicitnÃÂÃÂÃÂÃÂ objekty v EL
- pageScope, requestScope, sessionScope, applicationScope ÃÂâÃÂÃÂÃÂàmapuje atribut podle jmÃÂÃÂÃÂéna v danÃÂÃÂÃÂém scope
- param ÃÂâÃÂÃÂÃÂàmapuje request parametr do jednÃÂÃÂÃÂé promÃÂÃÂÃÂÃÂnnÃÂÃÂÃÂé
- paramValues ÃÂâÃÂÃÂÃÂàmapuje request parametr do pole promÃÂÃÂÃÂÃÂnnÃÂÃÂÃÂých
- header ÃÂâÃÂÃÂÃÂàmapuje request hlaviÃÂÃÂÃÂÃÂku do jednÃÂÃÂÃÂé promÃÂÃÂÃÂÃÂnnÃÂÃÂÃÂé
- headerValues ÃÂâÃÂÃÂÃÂàmapuje request hlaviÃÂÃÂÃÂÃÂku do pole promÃÂÃÂÃÂÃÂnnÃÂÃÂÃÂých
- cookie ÃÂâÃÂÃÂÃÂàmapuje nÃÂÃÂÃÂázev cookies do hodnoty promÃÂÃÂÃÂÃÂnnÃÂÃÂÃÂé
- initParam ÃÂâÃÂÃÂÃÂàmapuje inicializaÃÂÃÂÃÂÃÂnÃÂÃÂÃÂàparametr
- pageContext ÃÂâÃÂÃÂÃÂàumoÃÂàÃÂþÃÂàÃÂÃÂuje pÃÂàÃÂÃÂÃÂÃÂÃÂÃÂstup kÃÂàobjektÃÂàÃÂïm jako je request, session a podobnÃÂÃÂÃÂÃÂ
OperÃÂÃÂÃÂátory v EL
[] .
() (zmÃÂÃÂÃÂÃÂna priorit operÃÂÃÂÃÂátorÃÂàÃÂï)
- (unÃÂÃÂÃÂárnÃÂÃÂÃÂàoperace) notÃÂà! empty
* / divÃÂÃÂ % mod
+ - (binÃÂÃÂÃÂárnÃÂÃÂÃÂàoperace)
< > <= >= lt gt le ge
==ÃÂÃÂ != eq ne
&& and
|| or
?ÃÂÃÂ :
KlÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂovÃÂÃÂÃÂá slova v EL
Lt, le, gt, ge, eq, ne, true, false, and, or, not, instanceof, div, mod, empty, null
JSTL (JSP Standard Tag Library)
JSTL je set tagÃÂàÃÂï pro zjednoduÃÂàÃÂáenÃÂÃÂÃÂàvÃÂÃÂÃÂývoje JSP strÃÂÃÂÃÂánek, ve kterÃÂÃÂÃÂých nenÃÂÃÂÃÂàpotÃÂàÃÂÃÂeba pouÃÂàÃÂþÃÂÃÂÃÂÃÂvat scriptlet tagy.
5 zÃÂÃÂÃÂákladnÃÂÃÂÃÂÃÂch knihoven
- core tags ÃÂâÃÂÃÂÃÂàprÃÂÃÂÃÂáce s promÃÂÃÂÃÂÃÂnnÃÂÃÂÃÂými, URL management, kontrola a sprÃÂÃÂÃÂáva strÃÂÃÂÃÂánek (prefix c)
- sql tags ÃÂâÃÂÃÂÃÂàpodpora SQL a pÃÂàÃÂÃÂÃÂÃÂÃÂÃÂstup do DB (prefix sql)
- xml tags ÃÂâÃÂÃÂÃÂàsprÃÂÃÂÃÂáva XML a jejich transformace (prefix x)
- internationalization tags ÃÂâÃÂÃÂÃÂàformÃÂÃÂÃÂátovÃÂÃÂÃÂánÃÂÃÂÃÂàa lokalizace (prefix fmt)
- function tags ÃÂâÃÂÃÂÃÂàmanipulace se stringem (prefix fn)
VlastnÃÂÃÂÃÂÃÂ tagy v JSP
JednÃÂÃÂÃÂá se o uÃÂàÃÂþivatelem vytvoÃÂàÃÂÃÂenÃÂÃÂÃÂé tagy. Jejich vytvÃÂÃÂÃÂáÃÂàÃÂÃÂenÃÂÃÂÃÂÃÂm se vyhÃÂÃÂÃÂýbÃÂÃÂÃÂáme scriptlet tagÃÂàÃÂïm a separujeme byznys logiku od JSP strÃÂÃÂÃÂánky. DalÃÂàÃÂáÃÂÃÂÃÂàvÃÂÃÂÃÂýhodou je znovu pouÃÂàÃÂþitelnost kÃÂÃÂÃÂódu.
<prefix:tagname attr1="value1"....attrn="valuen" >
ÃÂâÃÂÃÂÃÂæ
</prefix:tagname>
PÃÂàÃÂÃÂÃÂÃÂÃÂÃÂklady kÃÂÃÂÃÂódu
PoÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂtÃÂÃÂÃÂánÃÂÃÂÃÂàv cyklu for do ÃÂàÃÂáesti:
<p>PoÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂtÃÂÃÂÃÂánÃÂÃÂÃÂàdo ÃÂÃÂ
ÃÂáesti:</p> <!-- HTML -->
<% for (int i=1; i<=6; i++) {ÃÂÃÂ %> <!-- JSP -->
<p>ÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂsloÃÂÃÂ : <%= iÃÂÃÂ %>.</p> <!-- HTML & JSP -->
<% }ÃÂÃÂ %> <!-- JSP -->
<p>DopoÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂtÃÂÃÂÃÂáno.</p> <!-- HTML -->
A vÃÂÃÂÃÂýsledek:
PoÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂtÃÂÃÂÃÂánÃÂÃÂÃÂàdo ÃÂàÃÂáesti: ÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂsloÃÂà: 1. ÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂsloÃÂà: 2. ÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂsloÃÂà: 3. ÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂsloÃÂà: 4. ÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂsloÃÂà: 5. ÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂsloÃÂà: 6. DopoÃÂÃÂÃÂÃÂÃÂÃÂÃÂÃÂtÃÂÃÂÃÂáno.
ExternÃÂÃÂÃÂÃÂ odkazy
ObrÃÂÃÂÃÂázky, zvuky ÃÂÃÂÃÂÃÂi videa k tÃÂÃÂÃÂématu JavaServer Pages na Wikimedia Commons