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.

  • ๐Ÿ“ข Direktiiv mรครคratletud: JSP konteinerile saadetav sรตnum, mis annab globaalsed, kogu lehte hรตlmavad tรตlkejuhised.
  • ๐Ÿงญ Kolm tรผรผpi: Lehekรผlje, include'i ja taglib direktiivid, kรตik kirjutatud <%@ %> siltide sisse.
  • ๐Ÿ“„ Lehekรผlje direktiiv: Mรครคrab keele, impordi, sisutรผรผbi, seansi, puhvri, vealehe ja muud lehe atribuudid.
  • ๐Ÿ“Ž Lisa direktiiv: รœhendab tรตlkimise ajal lehega teise faili (HTML, JSP vรตi tekstifail).
  • ???? ๏ธ Taglibi direktiiv: Deklareerib siltide teegi koos URI ja eesliitega kohandatud siltide lubamiseks.

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:

  1. Lehekรผlje direktiiv
  2. Kaasake direktiiv
  3. 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:

  1. Keel
  2. Pikendab
  3. Import
  4. sisutรผรผp
  5. info
  6. istung
  7. isThreadSafe
  8. automaatne loputus
  9. puhver
  10. IsErrorPage
  11. pageEncoding
  12. vealeht
  13. 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

JSP lehe direktiiv

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:

JSP Kaasa direktiiv

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

KKK

Include direktiiv รผhendab faili tรตlkimise ajal, seega tuleb muudatused uuesti kompileerida. jsp:include toiming lisab faili vastuse pรคringu ajal, mis teeb selle paremaks dรผnaamilise ja sageli muutuva sisu puhul.

Atribuut import annab konteinerile teada, milline Java klassid, liidesed vรตi paketid, mida servleti koodi genereerimisel importida, sarnaselt tavalise import-lausetega Java klass, seega on nende meetodid lehel saadaval.

JSP-direktiivid tรถรถdeldakse tรตlkimise ajal, kui JSP-leht teisendatakse servletiks. Need mรตjutavad pigem servleti genereerimist kui iga pรคringu ajal vรคljundi tootmist.

Tehisintellekt oskab lihtsas keeles kirjelduse pรตhjal soovitada รตiget lehekรผlge, include'i vรตi taglib-direktiivi koos รตigete atribuutidega, selgitada iga atribuuti ja mรคrkida levinud vigu.ping algajad saavad JSP-lehti kiiremini ja tรคpsemalt seadistada.

Jah. Tehisintellekt saab skannida JSP-faile, et leida sobimatuid atribuudivรครคrtusi, vastuolulisi sรคtteid, nรคiteks puhver puudub, kui automaatne tรผhjendamine on vale, puuduvad vealehed ja duplikaatdirektiivid.ping Arendajad mรคrkavad konfiguratsiooniprobleeme enne juurutamist.

Vรตta see postitus kokku jรคrgmiselt: