JSP-richtlijnen

โšก Slimme samenvatting

JSP-directives zijn berichten aan de JSP-container die algemene informatie over een hele pagina bevatten en instructies geven tijdens de vertaling naar servletcode. Er bestaan โ€‹โ€‹drie typen directives: page, include en taglib, die elk binnen speciale tags worden geschreven.

  • ๐Ÿ“ข Richtlijn gedefinieerd: Een bericht aan de JSP-container met algemene, paginabrede vertaalinstructies.
  • ๐Ÿงญ Drie typen: De richtlijnen voor pagina's, include-bestanden en taglib-bestanden staan โ€‹โ€‹allemaal binnen <%@ %>-tags.
  • ๐Ÿ“„ Pagina-richtlijn: Hiermee worden de taal, import, contentType, sessie, buffer, errorPage en andere pagina-attributen ingesteld.
  • ๐Ÿ“Ž Inclusierichtlijn: Voegt een ander bestand (HTML, JSP of tekst) samen met de pagina tijdens het vertalen.
  • ???? ๏ธ Taglib-richtlijn: Hiermee wordt een tagbibliotheek met een URI en een prefix gedefinieerd om aangepaste tags mogelijk te maken.

JSP-richtlijnen

Wat zijn JSP-richtlijnen?

  • JSP-richtlijnen zijn de berichten naar de JSP-container. Ze bieden globale informatie over een volledige JSP-pagina.
  • JSP-richtlijnen worden gebruikt om speciale instructies aan een container te geven voor de vertaling van JSP naar servletcode.
  • In de JSP-levenscyclusfase moet JSP worden geconverteerd naar een servlet, wat de vertaalfase is.
  • Ze geven instructies aan de container over hoe om te gaan met bepaalde aspecten van JSP-verwerking
  • Richtlijnen kunnen veel attributen hebben, door komma's gescheiden als sleutel-waardeparen.
  • In JSP wordt de richtlijn beschreven in <%@ %> labels.

Syntaxis van richtlijn:

<%@ directive attribute="" %>

Soorten richtlijnen in JSP

Er zijn drie soorten richtlijnen in JSP:

  1. Paginarichtlijn
  2. Richtlijn opnemen
  3. Taglib-richtlijn

Elk van hen wordt hieronder in detail beschreven met voorbeelden:

1) JSP-paginarichtlijn

Syntaxis van Pagina-richtlijn:

<%@ pageโ€ฆ%>
  • Het biedt attributen die op de gehele JSP-pagina worden toegepast.
  • Het definieert pagina-afhankelijke kenmerken, zoals scripttaal, foutpagina en buffervereisten.
  • Het wordt gebruikt om instructies te geven aan een container die betrekking heeft op de huidige JSP-pagina.

Hieronder vindt u een lijst met kenmerken die aan de pagina-instructie zijn gekoppeld:

  1. Taal
  2. Breidt uit
  3. import
  4. inhoudType
  5. info
  6. sessie
  7. isThreadSafe
  8. automatisch spoelen
  9. buffer
  10. IsErrorPagina
  11. paginacodering
  12. foutpagina
  13. isELIgonored

Meer details over elk kenmerk

1) taal: Het definieert de programmeertaal (onderliggende taal) die op de pagina wordt gebruikt.

Syntaxis van taal:

<%@ page language="value" %>

Hier is de waarde de programmeertaal (onderliggende taal)

Voorbeeld:

<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
    pageEncoding="ISO-8859-1"%>

Toelichting code: In het bovenstaande voorbeeld is de attribuuttaalwaarde Java wat in dit geval de onderliggende taal is. Daarom zou de code in expressietags worden gecompileerd met behulp van de Java-compiler.

2) Uitbreidingen: Dit attribuut wordt gebruikt om de klasse uit te breiden (over te erven), net zoals in Java.

Syntaxis van extensies:

<%@ page extends="value" %>

Hier vertegenwoordigt de waarde de klasse waarvan deze moet worden geรซrfd.

Voorbeeld:

<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
       pageEncoding="ISO-8859-1"%>

<%@ page extends="demotest.DemoClass" %>

Uitleg van de code: In de bovenstaande code breidt JSP DemoClass uit, dat zich in het demotest-pakket bevindt, en het zal alle klassefuncties uitbreiden.

3) Importeren: Dit attribuut is het meest gebruikte attribuut in paginarichtlijnen. Het wordt gebruikt om de container te laten weten dat andere Java-klassen, interfaces, enumeraties, enzovoort, geรฏmporteerd moeten worden tijdens het genereren van servletcode. Het is vergelijkbaar met importinstructies in Java-klassen en -interfaces.

Syntaxis van importeren:

<%@ page import="value" %>

Hier geeft de waarde de klassen aan die moeten worden geรฏmporteerd.

Voorbeeld:

<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
    import="java.util.Date" pageEncoding="ISO-8859-1"%>

Uitleg van de code:

In de bovenstaande code importeren we de Date-klasse uit het java.util-pakket (alle hulpprogrammaklassen). Deze klasse kan alle methoden van de volgende klasse gebruiken.

4) contentType:

  • Het definieert het tekencoderingsschema, dat wil zeggen dat het wordt gebruikt om het inhoudstype en de tekenset van het antwoord in te stellen
  • Het standaardtype van contentType is "text/html; charset=ISO-8859-1".

Syntaxis van het contentType:

<%@ page contentType="value" %>

Voorbeeld:

<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
    pageEncoding="ISO-8859-1"%>

Uitleg van de code:

In de bovenstaande code is het inhoudstype ingesteld als text/html, het stelt de tekencodering in voor JSP en voor de gegenereerde antwoordpagina.

5) informatie

  • Het definieert een tekenreeks die toegankelijk is via de getServletInfo()-methode.
  • Dit attribuut wordt gebruikt om de servletbeschrijving in te stellen.

Syntaxis van informatie:

<%@ page info="value" %>

Hier vertegenwoordigt de waarde de servletinformatie.

Voorbeeld:

<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
    info="Guru Directive JSP" pageEncoding="ISO-8859-1"%>

Uitleg van de code:

In de bovenstaande code staat de tekenreeks โ€œGuru De "Directive JSP" kan worden opgehaald via de servlet-interface met behulp van getServletInfo().

6) Sessie

  • JSP-pagina maakt standaard een sessie.
  • Soms hoeven we geen sessie te creรซren in JSP, en daarom kunnen we dit kenmerk in dat geval op false zetten. De standaardwaarde van het sessiekenmerk is true, en de sessie wordt gecreรซerd. Wanneer het op false staat, kunnen we de compiler aangeven om de sessie standaard niet te creรซren.

Syntaxis van sessie:

<%@ page session="true/false"%>

In dit geval kan het sessiekenmerk worden ingesteld op waar of onwaar

Voorbeeld:

<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
    session="false"%>

Toelichting code:

In het bovenstaande voorbeeld is het sessiekenmerk ingesteld op 'false'. Daarom geven we aan dat we geen enkele sessie in deze JSP willen maken

7) isThreadSafe:

  • Het definieert het threadingmodel voor de gegenereerde servlet.
  • Het geeft het niveau van draadveiligheid aan dat op de pagina is geรฏmplementeerd.
  • De standaardwaarde is waar, dus gelijktijdig
  • We kunnen dit kenmerk gebruiken om de SingleThreadModel-interface in de gegenereerde servlet te implementeren.
  • Als we het op false instellen, implementeert het SingleThreadModel en heeft het toegang tot alle gedeelde objecten en kan het inconsistentie opleveren.

Syntaxis van isThreadSafe:

<% @ page isThreadSafe="true/false" %>

Hier geeft true of false aan of er synchronisatie is, stel deze dan in op true en stel deze in op false.

Voorbeeld:

<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
    isThreadSafe="true"%>

Uitleg van de code:

In de bovenstaande code is isThreadSafe ingesteld op โ€œtrueโ€, waardoor synchronisatie wordt uitgevoerd en meerdere threads kunnen worden gebruikt.

8) Automatisch spoelen:

Dit kenmerk specificeert of de gebufferde uitvoer automatisch moet worden geflusht of niet en de standaardwaarde van dat kenmerk is true. Als de waarde is ingesteld op false, wordt de buffer niet automatisch geflusht en als deze vol is, krijgen we een uitzondering. Als de buffer none is, is false onwettig en is er geen buffering, dus wordt deze automatisch geflusht.

Syntaxis van autoFlush:

<% @ page autoFlush="true/false" %>

Hier geeft true/false aan of er wel of niet gebufferd moet worden

Voorbeeld:

<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
    autoFlush="false"%>

Uitleg van de code:

In de bovenstaande code is autoflush ingesteld op false en wordt er dus geen buffering uitgevoerd. De uitvoer wordt handmatig geflusht.

9) Buffer:

  • Met behulp van dit kenmerk kan het uitvoerresponsobject worden gebufferd.
  • Met dit kenmerk kunnen we de buffergrootte definiรซren. De standaardgrootte is 8 KB.
  • Hiermee wordt de servlet geรฏnstrueerd om de buffer te schrijven voordat er naar het responsobject wordt geschreven.

Syntaxis van buffer:

<%@ page buffer="value" %>

Hier vertegenwoordigt de waarde de grootte van de buffer die gedefinieerd moet worden. Als er geen buffer is, kunnen we schrijven als none, en als we geen waarde vermelden, is de standaard 8KB

Voorbeeld:

<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
    buffer="16KB"%>

Uitleg van de code:

In de bovenstaande code wordt de buffergrootte vermeld als 16 KB, terwijl de buffer die grootte zou hebben

10) isErrorPagina:

  • Het geeft aan dat een JSP-pagina met een errorPage op een andere JSP-pagina wordt gecontroleerd
  • Elk JSP-bestand dat is gedeclareerd met het kenmerk โ€œisErrorPageโ€ kan vervolgens uitzonderingen ontvangen van andere JSP-paginaโ€™s die foutpaginaโ€™s hebben.
  • Uitzonderingen zijn alleen beschikbaar voor deze pagina's.
  • De standaardwaarde is false.

Syntaxis van isErrorPage:

<%@ page isErrorPage="true/false"%>

Voorbeeld:

<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
    isErrorPage="true"%>

Uitleg van de code:

In de bovenstaande code is isErrorPage ingesteld op true. Daarom zal het controleren of andere JSP's het kenmerk errorPage (beschreven in het volgende attribuut) hebben ingesteld en uitzonderingen kunnen afhandelen.

11) Paginacodering:

Het kenmerk "pageEncoding" definieert de tekencodering voor JSP-pagina's. De standaard is opgegeven als "ISO-8859-1" als er geen andere is opgegeven.

Syntaxis van pageEncoding:

<%@ page pageEncoding="vaue" %>

Hier specificeert waarde de tekensetwaarde voor JSP

Voorbeeld:

<%@ page language="java" contentType="text/html;" pageEncoding="ISO-8859-1"
    isErrorPage="true"%>

Uitleg van de code:

In de bovenstaande code is โ€œpageEncodingโ€ ingesteld op de standaard tekenset ISO-8859-1

12) foutpagina:

Dit kenmerk wordt gebruikt om de foutpagina voor de JSP-pagina in te stellen als JSP een uitzondering genereert en vervolgens omleidt naar de uitzonderingspagina.

Syntaxis van foutpagina:

<%@ page errorPage="value" %>

Hier vertegenwoordigt de waarde de fout-JSP-paginawaarde

Voorbeeld:

<%@ page language="java" contentType="text/html;" pageEncoding="ISO-8859-1"
    errorPage="errorHandler.jsp"%>

Uitleg van de code:

In de bovenstaande code hebben we errroHandler.jsp om uitzonderingen af โ€‹โ€‹te handelen

13) wordt genegeerd:

  • IsELIgnored is een vlagattribuut waarbij we moeten beslissen of we EL-tags willen negeren of niet.
  • Het datatype is java enum en de standaardwaarde is false, daarom is EL standaard ingeschakeld.

Syntaxis van isELIgnored:

<%@ page isELIgnored="true/false" %>

Hier vertegenwoordigt waar/onwaar de waarde van EL, ongeacht of deze moet worden genegeerd of niet.

Voorbeeld:

<%@ page language="java" contentType="text/html;" pageEncoding="ISO-8859-1"
    isELIgnored="true"%>

Uitleg van de code:

In de bovenstaande code is isELIgnored waar en dus Expressietaal (EL) wordt hier genegeerd. In het onderstaande voorbeeld gebruiken we vier attributen (coderegel 1-2).

Voorbeeld met vier attributen

<%@ 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>

Uitleg van de code:

Code Lijn 1-2: Hier hebben we vier attributen gedefinieerd, namelijk

  • Taal: Het is ingesteld als Java als programmeertaal
  • contentType: stel in als text/html om de compiler te vertellen dat html een formaat moet hebben
  • pageEncoding: de standaardtekenset is ingesteld in dit attribuut
  • isELIgnored: Expressietag is false en wordt daarom niet genegeerd

Code Regel 3: Hier hebben we het importkenmerk gebruikt en het importeert de โ€œDatumklasseโ€ die afkomstig is van Java util-pakket en we proberen de huidige datum in de code weer te geven.

Wanneer u de bovenstaande code uitvoert, krijgt u de volgende uitvoer

JSP-paginarichtlijn

Output:

  • Datum is: huidige datum met behulp van de datummethode van de datumklasse

2) JSP Include-richtlijn

  • De JSP-richtlijn "include" (coderegel 8) wordt gebruikt om een โ€‹โ€‹bestand in een ander bestand op te nemen.
  • Dit meegeleverde bestand kan een HTML-, JSP- of tekstbestand zijn, enzovoort.
  • Het is ook handig voor het maken van sjablonen met gebruikersweergaven en het opsplitsen van pagina's in kop- en voettekst en zijbalkacties.
  • Het bevat een bestand tijdens de vertaalfase

Syntaxis van include-richtlijn:

<%@ includeโ€ฆ.%>

Voorbeeld:

Directive_jsp2.jsp (Hoofdbestand)

<%@ 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>

Richtlijn_header_jsp3.jsp (die is opgenomen in het hoofdbestand)

<%@ 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>

Uitleg van de code:

Richtlijn_jsp2.jsp:

Code Regel 3: In deze code gebruiken we include-tags waarmee we het bestand directive_header_jsp3.jsp in het hoofdbestand (_jsp2.jsp) opnemen en de uitvoer van zowel het hoofdbestand als het opgenomen bestand verkrijgen.

Richtlijn_header_jsp3.jsp:

Code Lijn 11-12: We hebben een variabele 'count' geรฏnitialiseerd op 1 en deze vervolgens verhoogd. Dit levert de uitvoer in het hoofdbestand op zoals hieronder weergegeven.

Wanneer u de bovenstaande code uitvoert, krijgt u de volgende uitvoer:

JSP Inclusief richtlijn

Output:

  • De uitvoer is Header-bestand: 2: Dit is het hoofdbestand
  • De uitvoer wordt uitgevoerd vanuit het bestand richtlijn_jsp2.jsp, terwijl het bestand richtlijn_header_jsp3.jsp eerst wordt gecompileerd.
  • Nadat het meegeleverde bestand is voltooid, wordt het hoofdbestand uitgevoerd en komt de uitvoer uit het hoofdbestand โ€œDit is het hoofdbestandโ€. U krijgt dus de uitvoer als โ€œHeader file: 2โ€ van _jsp3.jsp en โ€œThis is main fileโ€ van _jsp2.jsp.

3) JSP Taglib-richtlijn

  • De JSP taglib-richtlijn wordt gebruikt om de tagbibliotheek te definiรซren met โ€œtaglibโ€ als voorvoegsel, die we kunnen gebruiken JSP.
  • Meer details worden besproken in de sectie Aangepaste JSP-tags
  • De JSP taglib-richtlijn wordt gebruikt op de JSP-pagina's met behulp van de JSP-standaardtagbibliotheken
  • Het maakt gebruik van een reeks aangepaste tags, identificeert de locatie van de bibliotheek en biedt middelen om aangepaste tags op de JSP-pagina te identificeren.

Syntaxis van taglib-richtlijn:

<%@ taglib uri="uri" prefix="value"%>

Hier is het โ€œuriโ€ attribuut een unieke identificatie in de tagbibliotheekdescriptor en het โ€œprefixโ€ attribuut is een tagnaam.

Voorbeeld:

<%@ 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>

Uitleg van de code:

Code Regel 3: Hier wordt โ€œtaglibโ€ gedefinieerd met de attributen uri en prefix.

Code Regel 9: โ€œgurutagโ€ is de aangepaste tag die is gedefinieerd en die overal kan worden gebruikt

Veelgestelde vragen

De `include`-richtlijn voegt een bestand samen tijdens de vertaling, waardoor wijzigingen opnieuw gecompileerd moeten worden. De `jsp:include`-actie voegt het antwoord van een bestand toe op het moment van de aanvraag, waardoor deze beter geschikt is voor dynamische, vaak veranderende content.

Het importattribuut vertelt de container welke Java Klassen, interfaces of pakketten die geรฏmporteerd moeten worden bij het genereren van de servletcode, vergelijkbaar met importinstructies in een reguliere applicatie. Java klasse, zodat hun methoden beschikbaar zijn op de pagina.

JSP-richtlijnen worden verwerkt tijdens de vertaling, wanneer de JSP-pagina wordt omgezet in een servlet. Ze beรฏnvloeden hoe de servlet wordt gegenereerd, in plaats van dat ze uitvoer produceren bij elk verzoek.

AI kan de juiste pagina, include of taglib-richtlijn met de juiste attributen suggereren op basis van een beschrijving in eenvoudige taal, elk attribuut uitleggen en veelvoorkomende fouten signaleren, enz.ping Beginners kunnen JSP-pagina's sneller en nauwkeuriger configureren.

Ja. AI kan JSP-bestanden scannen om ongeldige attribuutwaarden, conflicterende instellingen zoals 'buffer none' met 'autoFlush false', ontbrekende foutpagina's en dubbele instructies te detecteren.ping Ontwikkelaars sporen configuratieproblemen op vรณรณr de implementatie.

Vat dit bericht samen met: