JSP direktiivid
โก Nutikas kokkuvรตte
JSP-direktiivid on JSP-konteinerile saadetavad sรตnumid, mis annavad รผldist teavet kogu lehe kohta ja juhivad seda servleti koodiks teisendamisel. On kolme tรผรผpi direktiive: page, include ja taglib, millest igaรผks on kirjutatud spetsiaalsete siltide sisse.

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) Laiendab: Seda atribuuti kasutatakse klassi laiendamiseks (pรคrimiseks) nagu JAVA seda teeb.
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) Importimine: See atribuut on lehedirektiivi atribuutide puhul kรตige enam kasutatav atribuut. Seda kasutatakse konteineri kรคskimiseks importida teisi Java klasse, liideseid, enumeid jne servleti koodi genereerimise ajal. See sarnaneb Java klasside ja liideste import-lausetega.
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 string โGuru โDirektiivi JSPโ saab servleti liidese abil hankida funktsiooni getServletInfo() abil.
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) ignoreeritakse siin. 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:
Code Rida 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
Code Rida 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 kaasamisdirektiiv
- JSP โkaasamisdirektiiviโ (koodirida 8) kasutatakse รผhe faili teise faili lisamiseks.
- See lisatud fail vรตib olla HTML-, JSP-, tekstifail jne.
- See on kasulik ka mallide loomisel kasutajavaadetega ning lehtede jagamisel pรคise- ja jaluse ning kรผlgriba toiminguteks.
- See sisaldab faili tรตlkefaasis
Lisadirektiivi sรผntaks:
<%@ includeโฆ.%>
Nรคide:
Directive_jsp2.jsp (pรตhifail)
<%@ 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:
Code Rida 3: Selles koodis kasutame lisamissilte, kus lisame faili directive_header_jsp3.jsp pรตhifaili (_jsp2.jsp) ja saame nii pรตhifaili kui ka lisatud faili vรคljundi.
Direktiiv_header_jsp3.jsp:
Code Rida 11-12: Oleme vรตtnud muutuja count, mis on initsialiseeritud vรครคrtuseks 1 ja seejรคrel seda suurendanud. See annab pรตhifailis 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:
Code Rida 3: Siin on "taglib" mรครคratletud atribuutidega uri ja prefiks.
Code Rida 9: โgurutagโ on mรครคratletud kohandatud silt ja seda saab kasutada kรตikjal


