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.

  • ๐Ÿ“ข Direktiv Definition: Ett meddelande till JSP-containern med globala รถversรคttningsinstruktioner fรถr hela sidan.
  • ๐Ÿงญ Tre typer: Direktiven Page, include och taglib, alla skrivna inuti <%@ %>-taggar.
  • ๐Ÿ“„ Siddirektiv: Anger sprรฅk, import, innehรฅllstyp, session, buffert, felsida och andra sidattribut.
  • ๐Ÿ“Ž Inkludera direktiv: Sammanfogar en annan fil (HTML, JSP eller text) med sidan vid รถversรคttningstillfรคllet.
  • ๐Ÿท๏ธ Taglib-direktiv: Deklarerar ett taggbibliotek med en URI och ett prefix fรถr att aktivera anpassade taggar.

JSP-direktiv

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:

  1. Siddirektiv
  2. Inkludera direktiv
  3. 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:

  1. Sprรฅk
  2. fรถrlรคnger
  3. Importera
  4. innehรฅllstyp
  5. info
  6. session
  7. รคr ThreadSafe
  8. autospolning
  9. buffert
  10. IsErrorPage
  11. sidakodning
  12. felsida
  13. รค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

JSP Page Direktiv

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:

JSP Inkludera direktiv

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

Vanliga frรฅgor

Direktivet include sammanfogar en fil vid รถversรคttningstillfรคllet, sรฅ รคndringar behรถver kompileras om. ร…tgรคrden jsp:include inkluderar svaret frรฅn en fil vid begรคran, vilket gรถr den bรคttre fรถr dynamiskt, ofta fรถrรคnderligt innehรฅll.

importattributet anger vilken container Java klasser, grรคnssnitt eller paket som ska importeras nรคr servletkoden genereras, liknande importsatser i en vanlig Java klassen, sรฅ deras metoder finns tillgรคngliga pรฅ sidan.

JSP-direktiv bearbetas vid รถversรคttningstillfรคllet, nรคr JSP-sidan konverteras till en servlet. De pรฅverkar hur servleten genereras snarare รคn att producera utdata under varje begรคran.

AI kan fรถreslรฅ rรคtt sida, include- eller taglib-direktiv med korrekta attribut frรฅn en tydlig beskrivning, fรถrklara varje attribut och flagga vanliga misstag.ping nybรถrjare konfigurerar JSP-sidor snabbare och mer exakt.

Ja. AI kan skanna JSP-filer fรถr att upptรคcka ogiltiga attributvรคrden, motstridiga instรคllningar som buffer none med autoFlush false, saknade felsidor och duplicerade direktiv, hel.ping utvecklare upptรคcker konfigurationsproblem fรถre driftsรคttning.

Sammanfatta detta inlรคgg med: