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) Verlengt: Dit attribuut wordt gebruikt om de klasse uit te breiden (erven) zoals JAVA dat doet

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 paginarichtlijnattributen. Het wordt gebruikt om de container te vertellen andere Java-klassen, interfaces, enums, enz. te importeren terwijl servletcode wordt gegenereerd. Het is vergelijkbaar met importinstructies in Java-klassen, interfaces.

Syntaxis van import:

<%@ 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) inhoudstype:

  • 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 kan de string “Guru Directive JSP” worden opgehaald door 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:

Coderegel 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

Coderegel 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

uitgang:

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

2) JSP Include-richtlijn

  • JSP “include richtlijn” (coderegel 8) wordt gebruikt om het ene bestand in het andere bestand op te nemen
  • Dit meegeleverde bestand kan HTML, JSP, tekstbestanden, enz. zijn.
  • Het is ook handig bij het maken van sjablonen met de gebruikersweergaven en het opdelen van de pagina's in kop- en voettekst- en zijbalkacties.
  • Het bevat een bestand tijdens de vertaalfase

Syntaxis van include-richtlijn:

<%@ include….%>

Voorbeeld:

Richtlijn_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:

Coderegel 3: In deze code gebruiken we include-tags waarbij we het bestand richtlijn_header_jsp3.jsp in het hoofdbestand (_jsp2.jsp) opnemen en de uitvoer van zowel het hoofdbestand als het opgenomen bestand ophalen.

Richtlijn_header_jsp3.jsp:

Coderegel 11-12: We hebben een variabeletelling genomen die is geïnitialiseerd op 1 en deze vervolgens hebben verhoogd. Dit geeft de uitvoer in het hoofdbestand, 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:

Coderegel 3: Hier wordt “taglib” gedefinieerd met de attributen uri en prefix.

Coderegel 9: “gurutag” is de aangepaste tag die is gedefinieerd en die overal kan worden gebruikt