Čo sú smernice JSP?
- Direktívy JSP sú správy do kontajnera JSP. Poskytujú globálne informácie o celej stránke JSP.
- Príkazy JSP sa používajú na poskytnutie špeciálnej inštrukcie kontajneru na preklad JSP do kódu servletu.
- Vo fáze životného cyklu JSP musí byť JSP prevedený na servlet, ktorý je fázou prekladu.
- Dávajú kontajneru pokyny, ako zaobchádzať s určitými aspektmi spracovania JSP
- Smernice môžu mať veľa atribútov oddelených čiarkami ako páry kľúč - hodnota.
- V JSP je smernica opísaná v značkách <% @%>.
Syntax smernice:
<%@ directive attribute %>
Existujú tri typy smerníc:
- Smernica o stránke
- Zahrnúť smernicu
- Smernica Taglib
Každá z nich je podrobne popísaná nižšie s príkladmi:
V tomto výučbe sa dozviete -
- Smernica JSP Page
- JSP Zahrnúť smernicu
- Smernica JSP Taglib
Smernica JSP Page
Syntax smernice Page:
<%@ page… %>
- Poskytuje atribúty, ktoré sa použijú na celú stránku JSP.
- Definuje atribúty závislé na stránke, ako napríklad skriptovací jazyk, chybová stránka a požiadavky na ukladanie do vyrovnávacej pamäte.
- Používa sa na poskytnutie pokynov pre kontajner, ktorý sa týka aktuálnej stránky JSP.
Nasleduje zoznam jej atribútov spojených so smernicou stránky:
- Jazyk
- Predlžuje
- Import
- typ obsahu
- Info
- zasadanie
- isThreadSafe
- autoflush
- nárazník
- IsErrorPage
- pageEncoding
- errorPage
- isELIgonored
Viac podrobností o jednotlivých atribútoch
- jazyk : Definuje programovací jazyk (základný jazyk) používaný na stránke.
Syntax jazyka:
<%@ page language="value" %>
Tu je hodnota programovací jazyk (základný jazyk)
Príklad:
<%@ page language="java" contentType="text/html; charset=ISO-8859-1"pageEncoding="ISO-8859-1"%>
Vysvetlenie kódu: Vo vyššie uvedenom príklade je hodnotou jazyka atribútu Java, ktorá je v tomto prípade základným jazykom. Preto by sa kód vo výrazových značkách kompiloval pomocou kompilátora java.
- Extends : Tento atribút sa používa na rozšírenie (zdedenie) triedy, ako to robí JAVA
Syntax rozšírení:
<%@ page extends="value" %>
Hodnota tu predstavuje triedu, z ktorej sa musí dediť.
Príklad:
<%@ page language="java" contentType="text/html; charset=ISO-8859-1"pageEncoding="ISO-8859-1"%><%@ page extends="demotest.DemoClass" %>
Vysvetlenie kódu: Vo vyššie uvedenom kóde JSP rozširuje DemoClass, ktorý je v balíku demotest, a rozšíri všetky funkcie triedy.
- Import : Tento atribút je najbežnejším atribútom v atribútoch direktívy stránky. Používa sa na to, aby povedal kontajneru, aby pri generovaní kódu servletu importoval ďalšie triedy Java, rozhrania, enumy atď. Je to podobné ako pri príkazoch importu v triedach Java, rozhraniach.
Syntax importu :
<%@ page import="value" %>
Hodnota tu označuje triedy, ktoré sa musia importovať.
Príklad:
<%@ page language="java" contentType="text/html; charset=ISO-8859-1"import="java.util.Date" pageEncoding="ISO-8859-1"%>
Vysvetlenie kódu:
Vo vyššie uvedenom kóde importujeme triedu Date z balíka java.util (všetky triedy nástrojov) a môže používať všetky metódy nasledujúcej triedy.
- contentType :
- Definuje schému kódovania znakov, tj používa sa na nastavenie typu obsahu a znakovej sady odpovede
- Predvolený typ contentType je „text / html; charset = ISO-8859-1“.
Syntax typu obsahu:
<%@ page contentType="value" %>
Príklad:
<%@ page language="java" contentType="text/html; charset=ISO-8859-1"pageEncoding="ISO-8859-1"%>
Vysvetlenie kódu:
Vo vyššie uvedenom kóde je typ obsahu nastavený ako text / html, nastavuje kódovanie znakov pre JSP a pre vygenerovanú stránku odpovede.
- Info
- Definuje reťazec, ku ktorému je možné získať prístup metódou getServletInfo ().
- Tento atribút sa používa na nastavenie popisu servletu.
Syntax informácií:
<%@ page info="value" %>
Táto hodnota predstavuje informácie o servlete.
Príklad:
<%@ page language="java" contentType="text/html; charset=ISO-8859-1"info="Guru Directive JSP" pageEncoding="ISO-8859-1"%>
Vysvetlenie kódu:
Vo vyššie uvedenom kóde je možné reťazec „Guru Directive JSP“ načítať rozhraním servletu pomocou getServletInfo ()
- Session
- Stránka JSP predvolene vytvára reláciu.
- Niekedy nepotrebujeme vytvorenie relácie v JSP, a preto môžeme v tomto prípade nastaviť tento atribút na hodnotu false. Predvolená hodnota atribútu session je true a relácia sa vytvorí.
Keď je nastavená na hodnotu false, môžeme označiť, že kompilátor predvolene nevytvára reláciu.
Syntax relácie:
<%@ page session="true/false"%>
V tomto prípade môže byť atribút relácie nastavený na hodnotu true alebo false
Príklad:
<%@ page language="java" contentType="text/html; charset=ISO-8859-1"session="false"%>
Vysvetlenie kódu:
Vo vyššie uvedenom príklade je atribút relácie nastavený na hodnotu „false“, takže naznačujeme, že v tomto JSP nechceme vytvárať žiadnu reláciu.
- isThreadSafe:
- Definuje model vlákna pre vygenerovaný servlet.
- Označuje úroveň bezpečnosti vlákna implementovanú na stránke.
- Jeho predvolená hodnota je pravda, takže súčasne
- Tento atribút môžeme použiť na implementáciu rozhrania SingleThreadModel do generovaného servletu.
- Ak ho nastavíme na hodnotu false, implementuje SingleThreadModel a má prístup k akýmkoľvek zdieľaným objektom a môže viesť k nekonzistencii.
Syntax isThreadSafe:
<% @ page isThreadSafe="true/false" %>
Tu true alebo false predstavuje, ak je tam synchronizácia, potom nastavte ako true a nastavte ju ako false.
Príklad:
<%@ page language="java" contentType="text/html; charset=ISO-8859-1"isThreadSafe="true"%>
Vysvetlenie kódu:
Vo vyššie uvedenom kóde je parameter isThreadSafe nastavený na hodnotu „true“, preto sa vykoná synchronizácia a je možné použiť viac vlákien.
- AutoFlush:
Tento atribút určuje, že výstup vo vyrovnávacej pamäti by sa mal vyprázdniť automaticky alebo nie a predvolená hodnota tohto atribútu je true.
Ak je hodnota nastavená na false, vyrovnávacia pamäť nebude automaticky vyprázdnená a ak je plná, dostaneme výnimku.
Ak vyrovnávacia pamäť nie je žiadna, potom je nepravdivá nelegitímna správa a nedochádza k žiadnemu ukladaniu do vyrovnávacej pamäte, takže sa vyprázdni automaticky.
Syntax funkcie autoFlush:
<% @ page autoFlush="true/false" %>
Tu true / false predstavuje, či sa musí ukladanie do vyrovnávacej pamäte vykonať alebo nie
Príklad:
<%@ page language="java" contentType="text/html; charset=ISO-8859-1"autoFlush="false"%>
Vysvetlenie kódu:
Vo vyššie uvedenom kóde je autoflush nastavený na hodnotu false, a preto sa nebude robiť medzipamäť a výstup bol vyprázdnený ručne.
- Vyrovnávacia pamäť:
- Použitím tohto atribútu môže byť objekt výstupnej odpovede uložený do medzipamäte.
- Pomocou tohto atribútu môžeme definovať veľkosť vyrovnávacej pamäte, ktorá sa má vykonať, a predvolená veľkosť je 8 kB.
- Nasmeruje servlet, aby pred zápisom do objektu odpovede zapísal vyrovnávaciu pamäť.
Syntax medzipamäte:
<%@ page buffer="value" %>
Hodnota tu predstavuje veľkosť vyrovnávacej pamäte, ktorú je potrebné definovať. Ak nie je k dispozícii žiadna vyrovnávacia pamäť, potom môžeme písať ako žiadna, a ak neuvádzame žiadnu hodnotu, predvolená hodnota je 8 kB
Príklad:
<%@ page language="java" contentType="text/html; charset=ISO-8859-1"buffer="16KB"%>
Vysvetlenie kódu:
Vo vyššie uvedenom kóde je veľkosť vyrovnávacej pamäte uvedená ako 16 kB, pričom vyrovnávacia pamäť by mala túto veľkosť
- isErrorPage:
- Znamená to, že stránka JSP, ktorá má stránku chyby, bude skontrolovaná na inej stránke JSP
- Akýkoľvek súbor JSP deklarovaný s atribútom „isErrorPage“ je potom schopný prijímať výnimky z iných stránok JSP, ktoré majú chybové stránky.
- Výnimky sú k dispozícii iba pre tieto stránky.
- Predvolená hodnota je false.
Syntax stránky isErrorPage:
<%@ page isErrorPage="true/false"%>
Príklad:
<%@ page language="java" contentType="text/html; charset=ISO-8859-1"isErrorPage="true"%>
Vysvetlenie kódu:
Vo vyššie uvedenom kóde je parameter isErrorPage nastavený na hodnotu true. Preto skontroluje, či všetky ostatné súbory JSP majú nastavený atribút errorPage (popísaný v nasledujúcom atribúte) a dokáže spracovať výnimky.
- Kódovanie stránky:
Predvolená hodnota je špecifikovaná ako „ISO-8859-1“, ak nie je zadané iné.
Syntax kódovania stránky:
<%@ page pageEncoding="vaue" %>
Tu hodnota určuje hodnotu znakovej sady pre JSP
Príklad:
<%@ page language="java" contentType="text/html;" pageEncoding="ISO-8859-1"isErrorPage="true"%>
Vysvetlenie kódu:
Vo vyššie uvedenom kóde bola stránka „pageEncoding“ nastavená na predvolenú znakovú sadu ISO-8859-1
- errorPage:
Syntax stránky errorPage:
<%@ page errorPage="value" %>
Táto hodnota predstavuje chybovú hodnotu stránky JSP
Príklad:
<%@ page language="java" contentType="text/html;" pageEncoding="ISO-8859-1"errorPage="errorHandler.jsp"%>
Vysvetlenie kódu:
Vo vyššie uvedenom kóde máme na spracovanie výnimiek errroHandler.jsp
- isELIgnorované:
- IsELIgnored je atribút príznaku, kde sa musíme rozhodnúť, či budeme značky EL ignorovať alebo nie.
- Jeho dátový typ je java enum a predvolená hodnota je false, preto je EL predvolene povolená.
Syntax isELIgnorovaná:
<%@ page isELIgnored="true/false" %>
Tu predstavuje hodnota true / false hodnotu EL, či sa má alebo nemá ignorovať.
Príklad:
<%@ page language="java" contentType="text/html;" pageEncoding="ISO-8859-1"isELIgnored="true"%>
Vysvetlenie kódu:
Vo vyššie uvedenom kóde má parameter isELIgnored hodnotu true, a preto je tu ignorovaný jazyk Expression Language (EL).
V nasledujúcom príklade používame štyri atribúty (riadok kódu 1-2)
Príklad so štyrmi atribútmi
<% @ page language = "java" contentType = "text / html;" pageEncoding = "ISO-8859-1"isELIgnored = "false"%><% @ page import = "java.util.Date"%>Smernica Guru JSP1 Dátum je: <% = nová java.util.Date ()%>
Vysvetlenie kódu:
Riadok kódu 1-2: Tu sme definovali štyri atribúty, tj
- Jazyk: Je nastavený ako Java ako programovací jazyk
- contentType: nastavený ako text / html, aby kompilátor povedal, že html musí byť formát
- pageEncoding: v tomto atribúte je nastavená predvolená znaková sada
- isELIgnored: Značka výrazu je nepravdivá, a preto nie je ignorovaná
Riadok kódu 3: Tu sme použili atribút import a importuje sa „trieda dátumu“, ktorá je z balíka Java util, a pokúšame sa v kóde zobraziť aktuálny dátum.
Po vykonaní vyššie uvedeného kódu získate nasledujúci výstup
Výstup :
- Dátum je: Aktuálny dátum pomocou metódy dátumu v triede dátumov
JSP Zahrnúť smernicu
- JSP "zahrnúť smernicu" (kód 8) sa používa na zahrnutie jedného súboru do iného súboru
- Týmto zahrnutým súborom môžu byť HTML, JSP, textové súbory atď.
- Je to tiež užitočné pri vytváraní šablón s používateľskými pohľadmi a rozdelení stránok na akcie hlavičky a päty a bočného panela.
- Zahŕňa súbor počas fázy prekladu
Syntax direktívy include:
<%@ include… .%>
Príklad:
Directive_jsp2.jsp (hlavný súbor)
<% @ page language = "java" contentType = "text / html; charset = ISO-8859-1"pageEncoding = "ISO-8859-1"%><% @ include file = "directive_header_jsp3.jsp"%>Guru smernica JSP2 Toto je hlavný súbor
Directive_header_jsp3.jsp (ktorý je zahrnutý v hlavnom súbore)
<% @ page language = "java" contentType = "text / html; charset = ISO-8859-1"pageEncoding = "ISO-8859-1"%> Hlavičkový súbor: <% int count = 1; počet ++;out.println (počet);%>:
Vysvetlenie kódu:
Directive_jsp2.jsp:
Riadok kódu 3: V tomto kóde používame značky na zahrnutie, kde do hlavného súboru (_jsp2.jsp) zaraďujeme súbor direktíva_header_jsp3.jsp, ktorý získava výstup tak z hlavného súboru, ako aj zo zahrnutého súboru.
Directive_header_jsp3.jsp:
Riadok kódu 11-12: Zobrali sme počet premenných inicializovaný na 1 a potom sme ich zvýšili. Takto získate výstup v hlavnom súbore, ako je uvedené nižšie.
Po vykonaní vyššie uvedeného kódu získate nasledujúci výstup:
Výkon:
- Výstupom je súbor hlavičky: 2: Toto je hlavný súbor
- Výstup je vykonávaný zo súboru direktória_jsp2.jsp, zatiaľ čo najskôr bude zostavený zahrnutý súbor direktória_jazer.jj3spsp.
- Po dokončení zahrnutého súboru sa vykoná hlavný súbor a výstup bude z hlavného súboru „Toto je hlavný súbor“. Takže získate výstup ako „Hlavičkový súbor: 2“ z _jsp3.jsp a „Toto je hlavný súbor“ z _jsp2.jsp.
Smernica JSP Taglib
- Direktíva JSP taglib slúži na definovanie knižnice značiek s predponou „taglib“, ktorú môžeme použiť v JSP.
- Viac podrobností nájdete v sekcii Vlastné značky JSP
- Direktíva JSP taglib sa používa na stránkach JSP pomocou štandardných knižníc značiek JSP
- Používa sadu vlastných značiek, identifikuje umiestnenie knižnice a poskytuje prostriedky na identifikáciu vlastných značiek na stránke JSP.
Syntax smernice taglib:
<%@ taglib uri="uri" prefix="value"%>
Atribút „uri“ je v tomto prípade jedinečným identifikátorom v deskriptore knižnice značiek a atribút „prefix“ je názvom značky.
Príklad:
<% @ 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"%>Smernica Guru JSP
Vysvetlenie kódu:
Riadok kódu 3: Tu je parameter „taglib“ definovaný s atribútmi uri a predponou.
Riadok kódu 9: „gurutag“ je definovaná vlastná značka, ktorú je možné použiť kdekoľvek