JSP-direktiv
โก Smart sammanfattning
JSP-direktiv รคr meddelanden till JSP-containern som ger global information om en hel sida och instruerar den under รถversรคttning till servletkod. Det finns tre direktivtyper: page, include och taglib, var och en skriven inuti speciella taggar.

Vad รคr JSP-direktiv?
- JSP-direktiv รคr meddelandena till JSP-behรฅllaren. De tillhandahรฅller global information om en hel JSP-sida.
- JSP-direktiv anvรคnds fรถr att ge speciella instruktioner till en behรฅllare fรถr รถversรคttning av JSP till servletkod.
- I JSP livscykelfas mรฅste JSP konverteras till en servlet som รคr รถversรคttningsfasen.
- De ger instruktioner till behรฅllaren om hur man hanterar vissa aspekter av JSP-bearbetning
- Direktiv kan ha mรฅnga attribut med kommatecken separerade som nyckel-vรคrdepar.
- I JSP beskrivs direktiv i
<%@ %>taggar.
Syntax fรถr direktiv:
<%@ directive attribute="" %>
Typer av direktiv i JSP
Det finns tre typer av direktiv i JSP:
- Siddirektiv
- Inkludera direktiv
- Taglib direktiv
Var och en av dem beskrivs i detalj nedan med exempel:
1) JSP Page direktiv
Syntax fรถr siddirektiv:
<%@ pageโฆ%>
- Den tillhandahรฅller attribut som appliceras pรฅ hela JSP-sidan.
- Den definierar sidberoende attribut, sรฅsom skriptsprรฅk, felsida och buffringskrav.
- Den anvรคnds fรถr att ge instruktioner till en behรฅllare som hรคnfรถr sig till aktuell JSP-sida.
Fรถljande รคr dess lista รถver attribut som รคr kopplade till siddirektivet:
- Sprรฅk
- fรถrlรคnger
- Importera
- innehรฅllstyp
- info
- session
- รคr ThreadSafe
- autospolning
- buffert
- IsErrorPage
- sidakodning
- felsida
- รคr ELgonorerad
Mer information om varje attribut
1) sprรฅk: Den definierar programmeringssprรฅk (underliggande sprรฅk) som anvรคnds pรฅ sidan.
Syntax fรถr sprรฅk:
<%@ page language="value" %>
Hรคr รคr vรคrdet programmeringssprรฅket (underliggande sprรฅk)
Exempel:
<%@ page language="java" contentType="text/html; charset=ISO-8859-1" pageEncoding="ISO-8859-1"%>
Fรถrklaring av kod: I exemplet ovan รคr attributsprรฅkvรคrdet Java som รคr det underliggande sprรฅket i detta fall. Dรคrfรถr skulle koden i expressionstaggar kompileras med java-kompilator.
2) Fรถrlรคnger: Detta attribut anvรคnds fรถr att utรถka (รคrva) klassen precis som JAVA gรถr.
Syntax fรถr fรถrlรคngningar:
<%@ page extends="value" %>
Hรคr representerar vรคrdet klass frรฅn vilken det mรฅste รคrvas.
Exempel:
<%@ page language="java" contentType="text/html; charset=ISO-8859-1" pageEncoding="ISO-8859-1"%> <%@ page extends="demotest.DemoClass" %>
Fรถrklaring av koden: I ovanstรฅende kod utรถkar JSP DemoClass som รคr inom demotest-paketet, och det kommer att utรถka alla klassfunktioner.
3) Importera: Detta attribut รคr det mest anvรคnda attributet i siddirektivattribut. Det anvรคnds fรถr att ange att containern ska importera andra Java-klasser, grรคnssnitt, enumer etc. vid generering av servletkod. Det liknar importsatser i Java-klasser, grรคnssnitt.
Importsyntax:
<%@ page import="value" %>
Hรคr anger vรคrdet vilka klasser som mรฅste importeras.
Exempel:
<%@ page language="java" contentType="text/html; charset=ISO-8859-1" import="java.util.Date" pageEncoding="ISO-8859-1"%>
Fรถrklaring av koden:
I ovanstรฅende kod importerar vi Date class frรฅn paketet java.util (alla verktygsklasser), och den kan anvรคnda alla metoder i fรถljande klass.
4) innehรฅllstyp:
- Det definierar teckenkodningsschemat, dvs det anvรคnds fรถr att stรคlla in innehรฅllstypen och teckenuppsรคttningen fรถr svaret
- Standardtypen av contentType รคr
"text/html; charset=ISO-8859-1".
Syntax fรถr contentType:
<%@ page contentType="value" %>
Exempel:
<%@ page language="java" contentType="text/html; charset=ISO-8859-1" pageEncoding="ISO-8859-1"%>
Fรถrklaring av koden:
I ovanstรฅende kod รคr innehรฅllstypen instรคlld som text/html, den stรคller in teckenkodning fรถr JSP och fรถr genererad svarssida.
5) info
- Den definierar en strรคng som kan nรฅs med metoden getServletInfo().
- Det hรคr attributet anvรคnds fรถr att stรคlla in servletbeskrivningen.
Syntax fรถr information:
<%@ page info="value" %>
Hรคr representerar vรคrdet servletinformationen.
Exempel:
<%@ page language="java" contentType="text/html; charset=ISO-8859-1" info="Guru Directive JSP" pageEncoding="ISO-8859-1"%>
Fรถrklaring av koden:
I koden ovan, strรคngen "Guru "Directive JSP" kan hรคmtas av servletgrรคnssnittet med hjรคlp av getServletInfo()
6) Session
- JSP-sidan skapar session som standard.
- Ibland behรถver vi inte skapa en session i JSP, och dรคrfรถr kan vi stรคlla in detta attribut till false i sรฅ fall. Standardvรคrdet fรถr sessionsattributet รคr sant och sessionen skapas. Nรคr den รคr instรคlld pรฅ false kan vi indikera att kompilatorn inte skapar sessionen som standard.
Syntax fรถr session:
<%@ page session="true/false"%>
Hรคr i det hรคr fallet kan sessionsattribut stรคllas in pรฅ sant eller falskt
Exempel:
<%@ page language="java" contentType="text/html; charset=ISO-8859-1" session="false"%>
Fรถrklaring av kod:
I exemplet ovan รคr sessionsattributet instรคllt pรฅ "false" och dรคrfรถr indikerar vi att vi inte vill skapa nรฅgon session i denna JSP
7) รคr ThreadSafe:
- Den definierar trรฅdningsmodellen fรถr den genererade servleten.
- Det indikerar nivรฅn pรฅ trรฅdsรคkerheten implementerad pรฅ sidan.
- Dess standardvรคrde รคr sant sรฅ samtidigt
- Vi kan anvรคnda detta attribut fรถr att implementera SingleThreadModel-grรคnssnitt i genererad servlet.
- Om vi โโstรคller in den pรฅ false, kommer den att implementera SingleThreadModel och kan komma รฅt alla delade objekt och kan ge inkonsekvens.
Syntax fรถr isThreadSafe:
<% @ page isThreadSafe="true/false" %>
Hรคr representerar sant eller falskt om synkronisering finns dรคr, stรคlls in som sant och stรคlls in som falskt.
Exempel:
<%@ page language="java" contentType="text/html; charset=ISO-8859-1" isThreadSafe="true"%>
Fรถrklaring av koden:
I ovanstรฅende kod รคr isThreadSafe instรคlld pรฅ "true", sรฅ synkronisering kommer att gรถras och flera trรฅdar kan anvรคndas.
8) AutoFlush:
Det hรคr attributet anger att den buffrade utdata ska tรถmmas automatiskt eller inte och standardvรคrdet fรถr det attributet รคr sant. Om vรคrdet รคr instรคllt pรฅ false kommer bufferten inte att spolas automatiskt och om den รคr full fรฅr vi ett undantag. Nรคr bufferten inte รคr nรฅgon รคr den falska illegitima, och det finns ingen buffring, sรฅ den tรถms automatiskt.
Syntax fรถr autoFlush:
<% @ page autoFlush="true/false" %>
Hรคr representerar sant/falskt om buffring mรฅste gรถras eller inte
Exempel:
<%@ page language="java" contentType="text/html; charset=ISO-8859-1" autoFlush="false"%>
Fรถrklaring av koden:
I ovanstรฅende kod รคr autospolningen instรคlld pรฅ falsk och dรคrfรถr kommer buffring inte att gรถras och den har manuellt tรถmt utmatningen.
9) Buffer:
- Genom att anvรคnda detta attribut kan utdatasvarsobjektet buffras.
- Vi kan definiera storleken pรฅ buffring som ska gรถras med detta attribut och standardstorleken รคr 8KB.
- Den styr servleten att skriva bufferten innan den skriver till responsobjektet.
Syntax fรถr buffert:
<%@ page buffer="value" %>
Hรคr representerar vรคrdet storleken pรฅ bufferten som mรฅste definieras. Om det inte finns nรฅgon buffert kan vi skriva som ingen, och om vi inte nรคmner nรฅgot vรคrde รคr standardvรคrdet 8KB
Exempel:
<%@ page language="java" contentType="text/html; charset=ISO-8859-1" buffer="16KB"%>
Fรถrklaring av koden:
I ovanstรฅende kod nรคmns buffertstorleken som 16KB dรคr bufferten skulle vara av den storleken
10) isErrorPage:
- Det indikerar att JSP-sida som har en felsida kommer att kontrolleras pรฅ en annan JSP-sida
- Alla JSP-filer som deklareras med attributet "isErrorPage" kan sedan ta emot undantag frรฅn andra JSP-sidor som har felsidor.
- Undantag รคr endast tillgรคngliga fรถr dessa sidor.
- Standardvรคrdet รคr falskt.
Syntax fรถr isErrorPage:
<%@ page isErrorPage="true/false"%>
Exempel:
<%@ page language="java" contentType="text/html; charset=ISO-8859-1" isErrorPage="true"%>
Fรถrklaring av koden:
I ovanstรฅende kod รคr isErrorPage satt som sant. Dรคrfรถr kommer den att kontrollera att alla andra JSP:er har errorPage (beskrivs i nรคsta attribut) attributuppsรคttning och den kan hantera undantag.
11) Sidkodning:
Attributet "pageEncoding" definierar teckenkodningen fรถr JSP-sidan. Standardinstรคllningen รคr specificerad som "ISO-8859-1" om nรฅgon annan inte anges.
Syntax fรถr sidakodning:
<%@ page pageEncoding="vaue" %>
Hรคr anger vรคrde teckenuppsรคttningsvรคrdet fรถr JSP
Exempel:
<%@ page language="java" contentType="text/html;" pageEncoding="ISO-8859-1" isErrorPage="true"%>
Fรถrklaring av koden:
I ovanstรฅende kod har "pageEncoding" stรคllts in pรฅ standardteckenuppsรคttningen ISO-8859-1
12) felsida:
Detta attribut anvรคnds fรถr att stรคlla in felsidan fรถr JSP-sidan om JSP kastar ett undantag och sedan omdirigerar det till undantagssidan.
Syntax fรถr felsida:
<%@ page errorPage="value" %>
Hรคr representerar vรคrdet JSP-sidans felvรคrde
Exempel:
<%@ page language="java" contentType="text/html;" pageEncoding="ISO-8859-1" errorPage="errorHandler.jsp"%>
Fรถrklaring av koden:
I koden ovan har vi errroHandler.jsp fรถr att hantera undantag
13) Ignoreras:
- IsELignored รคr ett flaggattribut dรคr vi mรฅste bestรคmma om vi ska ignorera EL-taggar eller inte.
- Dess datatyp รคr java enum, och standardvรคrdet รคr falskt och dรคrfรถr รคr EL aktiverat som standard.
Syntax fรถr isELIgnored:
<%@ page isELIgnored="true/false" %>
Hรคr representerar sant/falskt vรคrdet pรฅ EL oavsett om det ska ignoreras eller inte.
Exempel:
<%@ page language="java" contentType="text/html;" pageEncoding="ISO-8859-1" isELIgnored="true"%>
Fรถrklaring av koden:
I ovanstรฅende kod รคr isELIgnored sant och dรคrmed Expression Language (EL) ignoreras hรคr. I exemplet nedan anvรคnder vi fyra attribut (kodrad 1-2)
Exempel med fyra attribut
<%@ 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>
Fรถrklaring av koden:
Code Rad 1-2: Hรคr har vi definierat fyra attribut, dvs
- Sprรฅk: Den รคr instรคlld som Java som programmeringssprรฅk
- contentType: stรคll in som text/html fรถr att tala om fรถr kompilatorn att html mรฅste vara format
- pageEncoding: standardteckenuppsรคttning รคr instรคlld i detta attribut
- isELIgnored: Expression Tag รคr falsk och ignoreras dรคrfรถr inte
Code Linje 3: Hรคr har vi anvรคnt importattribut, och det รคr import av "Date class" som รคr frรฅn Java util-paketet, och vi fรถrsรถker visa aktuellt datum i koden.
Nรคr du kรถr ovanstรฅende kod fรฅr du fรถljande utdata
Produktion:
- Datum รคr: Aktuellt datum med datummetoden fรถr datumklassen
2) JSP Include-direktivet
- JSP "include directive" (kodrad 8) anvรคnds fรถr att inkludera en fil i en annan fil.
- Den hรคr inkluderade filen kan vara HTML, JSP, textfiler etc.
- Det รคr ocksรฅ anvรคndbart fรถr att skapa mallar med anvรคndarvyer och dela upp sidorna i sidhuvud, sidfot och sidofรคltsรฅtgรคrder.
- Den inkluderar fil under รถversรคttningsfasen
Syntax fรถr include-direktiv:
<%@ includeโฆ.%>
Exempel:
Directive_jsp2.jsp (Huvudfil)
<%@ 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>
Direktiv_header_jsp3.jsp (som ingรฅr i huvudfilen)
<%@ 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>
Fรถrklaring av koden:
Direktiv_jsp2.jsp:
Code Linje 3: I den hรคr koden anvรคnder vi include-taggar dรคr vi inkluderar filen directive_header_jsp3.jsp i huvudfilen (_jsp2.jsp) och hรคmtar utdata frรฅn bรฅde huvudfilen och den inkluderade filen.
Direktiv_header_jsp3.jsp:
Code Rad 11-12: Vi har initierat en variabel count till 1 och sedan รถkat den. Detta ger utdata i huvudfilen som visas nedan.
Nรคr du kรถr ovanstรฅende kod fรฅr du fรถljande utdata:
Produktion:
- Utdata รคr Header file: 2 : Detta รคr huvudfilen
- Utdatat exekveras frรฅn filen directive_jsp2.jsp medan filen directive_header_jsp3.jsp kommer att kompileras fรถrst.
- Nรคr den inkluderade filen รคr klar exekveras huvudfilen och utdata kommer frรฅn huvudfilen "Detta รคr huvudfilen". Sรฅ du kommer att fรฅ utdata som "Header file: 2" frรฅn _jsp3.jsp och "This is main file" frรฅn _jsp2.jsp.
3) JSP Taglib-direktivet
- JSP taglib-direktivet anvรคnds fรถr att definiera taggbiblioteket med "taglib" som prefix, vilket vi kan anvรคnda i JSP.
- Mer detaljer kommer att behandlas i avsnittet JSP Custom Tags
- JSP taglib-direktivet anvรคnds pรฅ JSP-sidorna som anvรคnder JSP-standardtaggbiblioteken
- Den anvรคnder en uppsรคttning anpassade taggar, identifierar platsen fรถr biblioteket och tillhandahรฅller sรคtt att identifiera anpassade taggar pรฅ JSP-sidan.
Syntax fรถr taglib-direktivet:
<%@ taglib uri="uri" prefix="value"%>
Hรคr รคr "uri"-attributet en unik identifierare i taggbibliotekets deskriptor och "prefix"-attributet รคr ett taggnamn.
Exempel:
<%@ 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>
Fรถrklaring av koden:
Code Linje 3: Hรคr definieras "taglib" med attributen uri och prefix.
Code Linje 9: "gurutag" รคr den anpassade taggen som definieras och den kan anvรคndas var som helst


