Kaj so direktive JSP?
- Direktive JSP so sporočila vsebniku JSP. Zagotavljajo globalne informacije o celotni strani JSP.
- Direktive JSP se uporabljajo za dajanje posebnih navodil vsebniku za prevajanje JSP v kodo strežniškega programčka.
- V fazi življenjskega cikla JSP je treba JSP pretvoriti v servlet, ki je faza prevajanja.
- Vsebniku dajejo navodila, kako ravnati z določenimi vidiki obdelave JSP
- Direktive imajo lahko veliko atributov z vejico, ločenih kot pari ključ / vrednost.
- V JSP je direktiva opisana v oznakah <% @%>.
Sintaksa direktive:
<%@ directive attribute %>
Obstajajo tri vrste direktiv:
- Direktiva o straneh
- Vključi direktivo
- Taglibova direktiva
Vsak od njih je podrobno opisan spodaj s primeri:
V tej vadnici boste izvedeli -
- Direktiva o straneh JSP
- JSP Vključi direktivo
- Direktiva JSP Taglib
Direktiva o straneh JSP
Sintaksa direktive Page:
<%@ page… %>
- Ponuja atribute, ki se uporabljajo za celotno stran JSP.
- Določa atribute, odvisne od strani, kot so skriptni jezik, strani z napakami in zahteve medpomnjenja.
- Uporablja se za zagotavljanje navodil za vsebnik, ki se nanaša na trenutno stran JSP.
Sledi seznam atributov, povezanih z direktivo o straneh:
- Jezik
- Razširja
- Uvozi
- contentType
- info
- sejo
- isThreadSafe
- samodejno izpiranje
- medpomnilnik
- IsErrorPage
- pageEncoding
- errorPage
- isELIgonored
Več podrobnosti o vsakem atributu
- jezik : Določa programski jezik (osnovni jezik), ki se uporablja na strani.
Sintaksa jezika:
<%@ page language="value" %>
Tu je vrednost programski jezik (osnovni jezik)
Primer:
<%@ page language="java" contentType="text/html; charset=ISO-8859-1"pageEncoding="ISO-8859-1"%>
Pojasnilo kode: V zgornjem primeru je vrednost jezika atributov Java, ki je v tem primeru osnovni jezik. Zato bi bila koda v izraznih oznakah prevedena z uporabo java compilerja.
- Extends : Ta atribut se uporablja za razširitev (podedovanje) razreda, kot to počne JAVA
Sintaksa podaljškov:
<%@ page extends="value" %>
Tu vrednost predstavlja razred, iz katerega ga je treba podedovati.
Primer:
<%@ page language="java" contentType="text/html; charset=ISO-8859-1"pageEncoding="ISO-8859-1"%><%@ page extends="demotest.DemoClass" %>
Pojasnilo kode: V zgornji kodi JSP razširja DemoClass, ki je znotraj paketa demotest, in razširil bo vse funkcije razreda.
- Uvoz : Ta atribut je najpogosteje uporabljeni atribut v atributih direktiv strani. Uporablja se za povezovanje vsebnika, naj med generiranjem kode strežniškega programčka uvozi druge razrede java, vmesnike, enume itd. Podoben je izjavam o uvozu v razredih java, vmesnikih.
Sintaksa uvoza :
<%@ page import="value" %>
Tu vrednost označuje razrede, ki jih je treba uvoziti.
Primer:
<%@ page language="java" contentType="text/html; charset=ISO-8859-1"import="java.util.Date" pageEncoding="ISO-8859-1"%>
Pojasnilo kode:
V zgornjo kodo uvozimo razred Date iz paketa java.util (vsi razredi pripomočkov) in lahko uporablja vse metode naslednjega razreda.
- contentType :
- Določa shemo kodiranja znakov, tj. Uporablja se za nastavitev vrste vsebine in nabora znakov odziva
- Privzeta vrsta vsebine je "text / html; charset = ISO-8859-1".
Sintaksa vrste vsebine:
<%@ page contentType="value" %>
Primer:
<%@ page language="java" contentType="text/html; charset=ISO-8859-1"pageEncoding="ISO-8859-1"%>
Pojasnilo kode:
V zgornji kodi je vrsta vsebine nastavljena kot besedilo / html, nastavi kodiranje znakov za JSP in za ustvarjeno odzivno stran.
- info
- Določa niz, do katerega je mogoče dostopati z metodo getServletInfo ().
- Ta atribut se uporablja za nastavitev opisa strežniškega programčka.
Sintaksa informacij:
<%@ page info="value" %>
Tu vrednost predstavlja informacije o strežniškem programčku.
Primer:
<%@ page language="java" contentType="text/html; charset=ISO-8859-1"info="Guru Directive JSP" pageEncoding="ISO-8859-1"%>
Pojasnilo kode:
V zgornji kodi lahko niz "Guru Directive JSP" pridobi vmesnik strežniškega programčka z uporabo getServletInfo ()
- Seja
- Stran JSP privzeto ustvari sejo.
- Včasih ne potrebujemo seje, ki bi jo ustvarili v JSP, zato lahko ta atribut v tem primeru nastavimo na false. Privzeta vrednost atributa seje je true in seja je ustvarjena.
Ko je nastavljen na false, lahko prevajalniku označimo, da privzeto ne ustvari seje.
Sintaksa seje:
<%@ page session="true/false"%>
V tem primeru lahko atribut seje nastavite na true ali false
Primer:
<%@ page language="java" contentType="text/html; charset=ISO-8859-1"session="false"%>
Pojasnilo kode:
V zgornjem primeru je atribut session nastavljen na "false", zato nakazujemo, da v tem JSP ne želimo ustvariti nobene seje
- isThreadSafe:
- Določa model navojev za ustvarjeni strežniški programček.
- Označuje raven varnosti niti na strani.
- Njegova privzeta vrednost je true, tako hkrati
- Ta atribut lahko uporabimo za implementacijo vmesnika SingleThreadModel v generirani strežniški programček.
- Če jo nastavimo na false, bo uvedel SingleThreadModel in lahko dostopa do vseh predmetov v skupni rabi ter povzroči nedoslednost.
Sintaksa isThreadSafe:
<% @ page isThreadSafe="true/false" %>
Tu true ali false predstavlja, če je sinhronizacija potem nastavljena kot true in jo nastavite kot false.
Primer:
<%@ page language="java" contentType="text/html; charset=ISO-8859-1"isThreadSafe="true"%>
Pojasnilo kode:
V zgornji kodi je isThreadSafe nastavljen na "true", zato bo izvedena sinhronizacija in lahko uporabite več niti.
- Samodejno izpiranje:
Ta atribut določa, da je treba medpomnilnik izpisati samodejno ali ne, privzeta vrednost tega atributa pa je true.
Če je vrednost nastavljena na false, medpomnilnik ne bo samodejno odstranjen in če je poln, bomo dobili izjemo.
Če je medpomnilnik nič, je false nelegitimen in ni medpomnjenja, zato bo samodejno izpraznjen.
Sintaksa samodejnega izpiranja:
<% @ page autoFlush="true/false" %>
Tu true / false predstavlja, ali je treba medpomnjenje opraviti ali ne
Primer:
<%@ page language="java" contentType="text/html; charset=ISO-8859-1"autoFlush="false"%>
Pojasnilo kode:
V zgornji kodi je samodejno izpiranje nastavljeno na false in zato medpomnjenje ne bo izvedeno, rezultat pa je ročno izpiral.
- Odbojnik:
- Z uporabo tega atributa je lahko izhodni odzivni objekt medpomnjen.
- S tem atributom lahko določimo velikost medpomnjenja, privzeta velikost pa je 8 KB.
- Naredi strežniški programček, da napiše medpomnilnik, preden zapiše v odzivni objekt.
Sintaksa medpomnilnika:
<%@ page buffer="value" %>
Tu vrednost predstavlja velikost medpomnilnika, ki ga je treba definirati. Če vmesnega pomnilnika ni, lahko zapišemo kot noben in če ne omenimo nobene vrednosti, je privzeta vrednost 8 KB
Primer:
<%@ page language="java" contentType="text/html; charset=ISO-8859-1"buffer="16KB"%>
Pojasnilo kode:
V zgornji kodi je velikost medpomnilnika omenjena kot 16 KB, pri čemer bi bil medpomnilnik te velikosti
- isErrorPage:
- Označuje, da bo stran JSP, ki ima errorPage, preverjena na drugi strani JSP
- Vsaka datoteka JSP, deklarirana z atributom "isErrorPage", je nato sposobna prejemati izjeme z drugih strani JSP, ki imajo strani z napakami.
- Izjeme so na voljo samo na teh straneh.
- Privzeta vrednost je false.
Sintaksa isErrorPage:
<%@ page isErrorPage="true/false"%>
Primer:
<%@ page language="java" contentType="text/html; charset=ISO-8859-1"isErrorPage="true"%>
Pojasnilo kode:
V zgornji kodi je isErrorPage nastavljen kot true. Zato bo preveril, ali ima kateri koli drug JSP nabor atributov errorPage (opisan v naslednjem atributu) in lahko obvladuje izjeme.
- PageEncoding:
Privzeta vrednost je določena kot "ISO-8859-1", če katera koli druga ni določena.
Sintaksa pageEncoding:
<%@ page pageEncoding="vaue" %>
Tu vrednost določa vrednost nabora znakov za JSP
Primer:
<%@ page language="java" contentType="text/html;" pageEncoding="ISO-8859-1"isErrorPage="true"%>
Pojasnilo kode:
V zgornji kodi je "pageEncoding" nastavljen na privzeti nabor znakov ISO-8859-1
- errorPage:
Sintaksa errorPage:
<%@ page errorPage="value" %>
Tu vrednost predstavlja vrednost strani z napako JSP
Primer:
<%@ page language="java" contentType="text/html;" pageEncoding="ISO-8859-1"errorPage="errorHandler.jsp"%>
Pojasnilo kode:
V zgornji kodi imamo za obravnavo izjem errroHandler.jsp
- isELIgnored:
- IsELIgnored je atribut zastavice, pri katerem se moramo odločiti, ali bomo ignorirali oznake EL ali ne.
- Njegov podatkovni tip je java enum, privzeta vrednost pa je false, zato je EL privzeto omogočen.
Sintaksa isELIgnored:
<%@ page isELIgnored="true/false" %>
Tu true / false predstavlja vrednost EL, naj bo prezrta ali ne.
Primer:
<%@ page language="java" contentType="text/html;" pageEncoding="ISO-8859-1"isELIgnored="true"%>
Pojasnilo kode:
V zgornji kodi je isELIgnored true, zato je tukaj izraz jezik za izražanje (EL) prezrt.
V spodnjem primeru uporabljamo štiri atribute (kodna vrstica 1-2)
Primer s štirimi atributi
<% @ page language = "java" contentType = "text / html;" pageEncoding = "ISO-8859-1"isELIgnored = "false"%><% @ page import = "java.util.Date"%>Guru JSP1 z direktivo Datum je: <% = new java.util.Date ()%>
Pojasnilo kode:
Koda 1-2: Tu smo opredelili štiri atribute, tj
- Jezik: kot programski jezik je nastavljen kot Java
- contentType: nastavi kot besedilo / html, da prevajalniku pove, da mora biti html format
- pageEncoding: v tem atributu je nastavljena privzeta nabor znakov
- isELIgnored: Oznaka izraza je napačna, zato je ne prezremo
Vrstica kode 3: Tukaj smo uporabili atribut import in uvažamo "Date date", ki je iz paketa Java util, v kodi pa poskušamo prikazati trenutni datum.
Ko zaženete zgornjo kodo, boste dobili naslednji izhod
Izhod :
- Datum je: trenutni datum z uporabo metode datuma za datumski razred
JSP Vključi direktivo
- JSP "vključi direktivo" (koda 8) se uporablja za vključitev ene datoteke v drugo
- Ta vključena datoteka je lahko HTML, JSP, besedilne datoteke itd.
- Koristno je tudi pri ustvarjanju predlog z uporabniškimi pogledi in razdeljevanju strani na dejanja glave in noge in stranske vrstice.
- Vključuje datoteko v fazi prevajanja
Sintaksa direktive include:
<%@ include… .%>
Primer:
Directive_jsp2.jsp (glavna datoteka)
<% @ page language = "java" contentType = "text / html; charset = ISO-8859-1"pageEncoding = "ISO-8859-1"%><% @ include file = "директива_header_jsp3.jsp"%>Guru direktiva JSP2 To je glavna datoteka
Directive_header_jsp3.jsp (ki je vključena v glavno datoteko)
<% @ page language = "java" contentType = "text / html; charset = ISO-8859-1"pageEncoding = "ISO-8859-1"%> Datoteka z glavo: <% int count = 1; štetje ++;out.println (count);%>:
Pojasnilo kode:
Directive_jsp2.jsp:
Vrstica kode 3: V tej kodi uporabljamo oznake za vključitev, kjer v glavno datoteko (_jsp2.jsp) vključimo datoteko Directive_header_jsp3.jsp in dobimo izhodne podatke glavne in vključene datoteke.
Directive_header_jsp3.jsp:
Vrstica kode 11-12: Sprejeli smo število spremenljivk, inicializirano na 1 in ga nato povečali. To bo dalo izhod v glavni datoteki, kot je prikazano spodaj.
Ko zaženete zgornjo kodo, dobite naslednji izhod:
Izhod:
- Rezultat je datoteka glave: 2: To je glavna datoteka
- Izhod se izvede iz datoteke Directive_jsp2.jsp, medtem ko bo vključena datoteka Directive_header_jsp3.jsp najprej prevedena.
- Po končani vključeni datoteki se izvrši glavna datoteka, rezultat pa bo iz glavne datoteke "To je glavna datoteka". Tako boste dobili izhod kot "Header file: 2" iz _jsp3.jsp in "This is main file" iz _jsp2.jsp.
Direktiva JSP Taglib
- Direktiva JSP taglib se uporablja za definiranje knjižnice oznak s predpono "taglib", ki jo lahko uporabimo v JSP.
- Več podrobnosti bo zajetih v oddelku JSP Custom Tags
- Direktiva JSP taglib se uporablja na straneh JSP z uporabo knjižnic standardnih oznak JSP
- Uporablja nabor oznak po meri, identificira lokacijo knjižnice in ponuja sredstva za prepoznavanje oznak po meri na strani JSP.
Sintaksa direktive taglib:
<%@ taglib uri="uri" prefix="value"%>
Tu je atribut "uri" edinstven identifikator v deskriptorju knjižnice oznak, atribut "predpona" pa je ime oznake.
Primer:
<% @ page language = "java" contentType = "text / html; charset = ISO-8859-1"pageEncoding = "ISO-8859-1"%><% @ taglib predpona = "gurutag" uri = "http://java.sun.com/jsp/jstl/core"%>Guru Directive JSP
Pojasnilo kode:
Vrstica kode 3: Tu je "taglib" definiran z atributi uri in predpono.
Vrstica kode 9: "gurutag" je oznaka po meri, ki jo lahko uporabljate kjer koli