JSP direktiivid
Mis on JSP direktiivid?
- JSP-direktiivid on sõnumid JSP-konteinerisse. Need pakuvad globaalset teavet kogu JSP lehe kohta.
- JSP direktiive kasutatakse spetsiaalsete juhiste andmiseks konteinerile JSP tõlkimiseks servleti koodiks.
- JSP elutsükli faasis tuleb JSP teisendada servletiks, mis on tõlkefaas.
- Need annavad konteinerile juhiseid JSP töötlemise teatud aspektide käsitlemiseks
- Direktiividel võib olla palju komadega eraldatud atribuute võtme-väärtuse paaridena.
- JSP-s on direktiivi kirjeldatud
<%@ %>
sildid.
Direktiivi süntaks:
<%@ directive attribute="" %>
JSP direktiivide tüübid
JSP-s on kolme tüüpi direktiive:
- Lehekülje direktiiv
- Kaasake direktiiv
- Taglib direktiiv
Kõiki neist kirjeldatakse üksikasjalikult allpool koos näidetega:
1) JSP lehekülje direktiiv
Lehekülje direktiivi süntaks:
<%@ page…%>
- See pakub atribuute, mida rakendatakse kogu JSP lehele.
- See määratleb lehest sõltuvad atribuudid, nagu skriptikeel, vealeht ja puhverdusnõuded.
- Seda kasutatakse juhiste andmiseks konteinerile, mis puudutab praegust JSP lehte.
Järgmine on selle lehe direktiiviga seotud atribuutide loend:
- Keel
- Pikendab
- Import
- sisutüüp
- info
- istung
- isThreadSafe
- automaatne loputus
- puhver
- IsErrorPage
- pageEncoding
- vealeht
- on ELIgonored
Lisateavet iga atribuudi kohta
1) keel: See määratleb programmeerimiskeel (aluskeel), mida lehel kasutatakse.
Keele süntaks:
<%@ page language="value" %>
Siin on väärtus programmeerimiskeel (aluskeel)
Näide:
<%@ page language="java" contentType="text/html; charset=ISO-8859-1" pageEncoding="ISO-8859-1"%>
Koodi selgitus: Ülaltoodud näites on atribuudi keele väärtus Java mis on antud juhul aluseks. Seega kompileeritakse väljendimärgendite kood Java kompilaatori abil.
2) Pikendab: Seda atribuuti kasutatakse klassi laiendamiseks (pärimiseks), nagu seda teeb JAVA
Laiendite süntaks:
<%@ page extends="value" %>
Siin tähistab väärtus klassi, kust see tuleb pärida.
Näide:
<%@ page language="java" contentType="text/html; charset=ISO-8859-1" pageEncoding="ISO-8859-1"%> <%@ page extends="demotest.DemoClass" %>
Koodi selgitus: Ülaltoodud koodis laiendab JSP DemoClassi, mis on demotest paketis, ja see laiendab kõiki klassi funktsioone.
3) Import: Seda atribuuti kasutatakse lehe direktiivi atribuutides enim. Seda kasutatakse selleks, et anda konteinerile servleti koodi genereerimisel korraldus importida muid Java klasse, liideseid, enumisid jne. See sarnaneb java klasside, liideste importlausetega.
Impordi süntaks:
<%@ page import="value" %>
Siin tähistab väärtus klasse, mis tuleb importida.
Näide:
<%@ page language="java" contentType="text/html; charset=ISO-8859-1" import="java.util.Date" pageEncoding="ISO-8859-1"%>
Koodi selgitus:
Ülaltoodud koodis impordime Date klassi paketist java.util (kõik utiliidiklassid) ja see võib kasutada kõiki järgmise klassi meetodeid.
4) sisutüüp:
- See määratleb märgikodeeringu skeemi, st seda kasutatakse vastuse sisutüübi ja märgistiku määramiseks
- Vaikimisi sisutüübi tüüp on
"text/html; charset=ISO-8859-1"
.
Sisutüübi süntaks:
<%@ page contentType="value" %>
Näide:
<%@ page language="java" contentType="text/html; charset=ISO-8859-1" pageEncoding="ISO-8859-1"%>
Koodi selgitus:
Ülaltoodud koodis on sisutüübiks seatud tekst/html, see määrab JSP ja genereeritud vastuselehe märgikodeeringu.
5) teave
- See määratleb stringi, millele pääseb ligi meetodiga getServletInfo().
- Seda atribuuti kasutatakse servleti kirjelduse määramiseks.
Teabe süntaks:
<%@ page info="value" %>
Siin tähistab väärtus servleti teavet.
Näide:
<%@ page language="java" contentType="text/html; charset=ISO-8859-1" info="Guru Directive JSP" pageEncoding="ISO-8859-1"%>
Koodi selgitus:
Ülaltoodud koodis saab stringi "Guru direktiivi JSP" hankida servleti liidesega, kasutades käsku getServletInfo()
6) Seanss
- JSP-leht loob vaikimisi seansi.
- Mõnikord ei pea me JSP-s seanssi looma ja seetõttu saame sel juhul määrata selle atribuudi väärtuseks false. Seansi atribuudi vaikeväärtus on tõene ja seanss luuakse. Kui see on seatud väärtusele Väär, saame kompilaatorile näidata, et ta ei loo vaikimisi seanssi.
Seansi süntaks:
<%@ page session="true/false"%>
Sel juhul saab seansi atribuudi väärtuseks määrata tõene või väär
Näide:
<%@ page language="java" contentType="text/html; charset=ISO-8859-1" session="false"%>
Koodi selgitus:
Ülaltoodud näites on seansi atribuut seatud väärtusele "false", seega näitame, et me ei soovi selles JSP-s seanssi luua
7) isThreadSafe:
- See määratleb loodud servleti keermestusmudeli.
- See näitab lehel rakendatud lõime ohutuse taset.
- Selle vaikeväärtus on tõene, nii et samaaegne
- Seda atribuuti saame kasutada SingleThreadModel liidese juurutamiseks loodud servletis.
- Kui seame selle väärtuseks Väär, rakendab see SingleThreadModeli ja pääseb juurde kõikidele jagatud objektidele ja võib põhjustada vastuolusid.
IsThreadSafe süntaks:
<% @ page isThreadSafe="true/false" %>
Siin tähistab tõene või väär, kui sünkroonimine on olemas, siis määratakse tõeseks ja valeks.
Näide:
<%@ page language="java" contentType="text/html; charset=ISO-8859-1" isThreadSafe="true"%>
Koodi selgitus:
Ülaltoodud koodis on isThreadSafe seatud väärtusele "tõene", seega toimub sünkroonimine ja saab kasutada mitut lõime.
8) Automaatne loputus:
See atribuut määrab, et puhverdatud väljund tuleb automaatselt tühjendada või mitte ja selle atribuudi vaikeväärtus on tõene. Kui väärtuseks on seatud false, puhvrit automaatselt ei loputata ja kui see on täis, saame erandi. Kui puhver puudub, on vale vale ja puhverdamist ei toimu, seega loputatakse see automaatselt.
AutoFlushi süntaks:
<% @ page autoFlush="true/false" %>
Siin näitab tõene/väär, kas puhverdamine tuleb teha või mitte
Näide:
<%@ page language="java" contentType="text/html; charset=ISO-8859-1" autoFlush="false"%>
Koodi selgitus:
Ülaltoodud koodis on automaatne loputus seatud väärtusele Väär ja seetõttu puhverdamist ei tehta ja see on väljundit käsitsi loputanud.
9) Buffer:
- Seda atribuuti kasutades võib väljundvastuse objekti puhverdada.
- Selle atribuudi abil saame määratleda tehtava puhverdamise suuruse ja vaikesuurus on 8 KB.
- See suunab servleti puhvri kirjutama enne vastuseobjektile kirjutamist.
Puhvri süntaks:
<%@ page buffer="value" %>
Siin tähistab väärtus puhvri suurust, mis tuleb määratleda. Kui puhvrit pole, saame kirjutada kui none ja kui me väärtust ei maini, on vaikimisi 8KB
Näide:
<%@ page language="java" contentType="text/html; charset=ISO-8859-1" buffer="16KB"%>
Koodi selgitus:
Ülaltoodud koodis on puhvri suuruseks märgitud 16 KB, kusjuures puhver oleks selle suurusega
10) isErrorPage:
- See näitab, et JSP-lehte, millel on errorPage, kontrollitakse teisel JSP-lehel
- Iga JSP-fail, mis on deklareeritud atribuudiga „isErrorPage”, on seejärel võimeline vastu võtma erandeid teistelt vealehtedega JSP-lehtedelt.
- Erandid on saadaval ainult nendel lehtedel.
- Vaikeväärtus on false.
IsErrorPage süntaks:
<%@ page isErrorPage="true/false"%>
Näide:
<%@ page language="java" contentType="text/html; charset=ISO-8859-1" isErrorPage="true"%>
Koodi selgitus:
Ülaltoodud koodis on isErrorPage seatud tõeseks. Seega kontrollib see, kas kõigil teistel JSP-del on atribuudi errorPage (kirjeldatud järgmises atribuudis) komplekt ja see suudab käsitleda erandeid.
11) Lehe kodeering:
Atribuut „pageEncoding” määrab JSP-lehe märgikodeeringu. Vaikimisi on määratud "ISO-8859-1", kui muud pole määratud.
Lehe kodeeringu süntaks:
<%@ page pageEncoding="vaue" %>
Siin määrab väärtus JSP märgistiku väärtuse
Näide:
<%@ page language="java" contentType="text/html;" pageEncoding="ISO-8859-1" isErrorPage="true"%>
Koodi selgitus:
Ülaltoodud koodis on “pageEncoding” seatud vaikemärgisesse ISO-8859-1
12) errorPage:
Seda atribuuti kasutatakse JSP-lehe vealehe määramiseks, kui JSP teeb erandi ja suunab seejärel erandilehele.
Vealehe süntaks:
<%@ page errorPage="value" %>
Siin tähistab väärtus vea JSP lehe väärtust
Näide:
<%@ page language="java" contentType="text/html;" pageEncoding="ISO-8859-1" errorPage="errorHandler.jsp"%>
Koodi selgitus:
Ülaltoodud koodis on erandite käsitlemiseks errroHandler.jsp
13) Ignoreeritakse:
- IsELIgnored on lipu atribuut, mille puhul peame otsustama, kas ignoreerida EL-silte või mitte.
- Selle andmetüüp on java enum ja vaikeväärtus on false, mistõttu EL on vaikimisi lubatud.
Sõna isELIgnored süntaks:
<%@ page isELIgnored="true/false" %>
Siin tähistab tõene/väär EL väärtust olenemata sellest, kas seda tuleks ignoreerida või mitte.
Näide:
<%@ page language="java" contentType="text/html;" pageEncoding="ISO-8859-1" isELIgnored="true"%>
Koodi selgitus:
Ülaltoodud koodis on isELIgnored tõene ja seega Väljenduskeel (EL) jäetakse siin tähelepanuta. Allolevas näites kasutame nelja atribuuti (koodirida 1-2)
Nelja atribuudiga näide
<%@ page language="java" contentType="text/html;" pageEncoding="ISO-8859-1" isELIgnored="false"%> <%@page import="java.util.Date" %> <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"> <title>Directive Guru JSP1</title> </head> <body> <a>Date is:</a> <%= new java.util.Date() %> </body> </html>
Koodi selgitus:
Koodirida 1–2: Siin oleme määratlenud neli atribuuti, st
- Keel: see on määratud kui Java programmeerimiskeelena
- contentType: määrake tekstiks/html-ks, et öelda kompilaatorile, et html peab olema vormingus
- pageEncoding: selles atribuudis on määratud vaikemärgistik
- isELIgnored: Väljendi silt on vale, seega seda ei ignoreerita
Koodirida 3: Siin oleme kasutanud impordi atribuuti ja see impordib "Kuupäevaklassi", mis pärineb Java util pakett ja püüame kuvada koodis praegust kuupäeva.
Kui käivitate ülaltoodud koodi, saate järgmise väljundi
Väljund:
- Kuupäev on: praegune kuupäev, kasutades kuupäevaklassi kuupäevameetodit
2)JSP Lisa käsk
- JSP-d "include direktiiv" (koodirida 8) kasutatakse ühe faili kaasamiseks teise faili
- See kaasatud fail võib olla HTML, JSP, tekstifailid jne.
- See on kasulik ka kasutajavaadetega mallide loomisel ning lehtede päise-jaluse ja külgriba toiminguteks jagamisel.
- See sisaldab faili tõlkefaasis
Lisadirektiivi süntaks:
<%@ include….%>
Näide:
Direktiiv_jsp2.jsp (peafail)
<%@ page language="java" contentType="text/html; charset=ISO-8859-1" pageEncoding="ISO-8859-1"%> <%@ include file="directive_header_jsp3.jsp" %> <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"> <title>Guru Directive JSP2</title> </head> <body> <a>This is the main file</a> </body> </html>
Direktiiv_header_jsp3.jsp (mis sisaldub põhifailis)
<%@ page language="java" contentType="text/html; charset=ISO-8859-1" pageEncoding="ISO-8859-1"%> <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"> </head> <body> <a>Header file : </a> <%int count =1; count++; out.println(count);%> : </body> </html>
Koodi selgitus:
Direktiiv_jsp2.jsp:
Koodirida 3: Selles koodis kasutame kaasamismärgendeid, mille puhul lisame faili direktiiv_päis_jsp3.jsp põhifaili (_jsp2.jsp) ja saame nii põhifaili kui ka kaasatud faili väljundi.
Direktiiv_header_jsp3.jsp:
Koodirida 11–12: Oleme võtnud muutujate arvu, mis on lähtestatud 1-ks ja seejärel suurendanud seda. See annab põhifaili väljundi, nagu allpool näidatud.
Kui käivitate ülaltoodud koodi, saate järgmise väljundi:
Väljund:
- Väljund on päisefail: 2: See on põhifail
- Väljund käivitatakse failist direktiiv_jsp2.jsp, samas kui esmalt kompileeritakse direktiiv_header_jsp3.jsp.
- Pärast kaasatud faili tegemist käivitatakse põhifail ja väljund on põhifailist “See on põhifail”. Nii saate failist _jsp2.jsp väljundi "Päisefail: 3" ja failist _jsp2.jsp "See on põhifail".
3) JSP Taglib direktiiv
- JSP käskkirja taglib kasutatakse silditeegi määratlemiseks, mille eesliit on "taglib", mida saame kasutada JSP.
- Üksikasjalikumat teavet käsitletakse jaotises JSP kohandatud sildid
- JSP-i taglib-direktiivi kasutatakse JSP-lehtedel, kasutades JSP standardseid silditeeke
- See kasutab kohandatud siltide komplekti, tuvastab teegi asukoha ja pakub vahendeid kohandatud siltide tuvastamiseks JSP-lehel.
Taglib direktiivi süntaks:
<%@ taglib uri="uri" prefix="value"%>
Siin on atribuut „uri” unikaalne identifikaator silditeegi deskriptoris ja atribuut „prefix” on sildi nimi.
Näide:
<%@ page language="java" contentType="text/html; charset=ISO-8859-1" pageEncoding="ISO-8859-1"%> <%@ taglib prefix="gurutag" uri="http://java.sun.com/jsp/jstl/core" %> <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"> <title>Guru Directive JSP</title> <gurutag:hello/> </head> <body> </body> </html>
Koodi selgitus:
Koodirida 3: Siin on "taglib" määratletud atribuutidega uri ja prefiks.
Koodirida 9: „gurutag” on määratletud kohandatud silt ja seda saab kasutada kõikjal