JSP-richtlijnen: pagina, inclusief & Taglib-zelfstudie

Inhoudsopgave:

Anonim

Wat zijn JSP-richtlijnen?

  • JSP-richtlijnen zijn de berichten naar de JSP-container. Ze bieden globale informatie over een hele JSP-pagina.
  • JSP-richtlijnen worden gebruikt om speciale instructies te geven aan een container voor het vertalen van JSP naar servlet-code.
  • In de JSP-levenscyclusfase moet JSP worden geconverteerd naar een servlet die de translatiefase is.
  • Ze geven instructies aan de container over hoe om te gaan met bepaalde aspecten van JSP-verwerking
  • Richtlijnen kunnen veel attributen hebben die door komma's zijn gescheiden als sleutel / waarde-paren.
  • In JSP wordt de instructie beschreven in <% @%> tags.

Syntaxis van richtlijn:

<%@ directive attribute %>

Er zijn drie soorten richtlijnen:

  1. Pagina richtlijn
  2. Inclusief richtlijn
  3. Taglib-richtlijn

Elk van hen wordt hieronder in detail beschreven met voorbeelden:

In deze tutorial leer je -

  • JSP-pagina-instructie
  • JSP Inclusief richtlijn
  • JSP Taglib-richtlijn

JSP-pagina-instructie

Syntaxis van paginarichtlijn:

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

Hieronder volgt de lijst met attributen die zijn gekoppeld aan de pagina-instructie:

  1. Taal
  2. Verlengt
  3. Importeren
  4. contentType
  5. info
  6. sessie
  7. isThreadSafe
  8. autoflush
  9. buffer
  10. IsErrorPage
  11. pageEncoding
  12. errorPage
  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 waarde is de programmeertaal (onderliggende taal)

Voorbeeld:

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

Verklaring van code: In het bovenstaande voorbeeld is de attribuut taalwaarde Java, wat in dit geval de onderliggende taal is. Daarom zou de code in expressietags worden gecompileerd met behulp van de java-compiler.

  1. Extends : Dit attribuut wordt gebruikt om de klasse uit te breiden (over te nemen) zoals JAVA doet

Syntaxis van uitbreidingen:

<%@ page extends="value" %>

Hier vertegenwoordigt de waarde de klasse waarvan het 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 die zich binnen het demotest-pakket bevindt, en het zal alle klassenfuncties uitbreiden.

  1. Import : dit attribuut is het meest gebruikte attribuut in paginarichtlijn attributen. Het wordt gebruikt om de container te vertellen andere java klassen, interfaces, enums, etc. te importeren tijdens het genereren van servlet code. Het is vergelijkbaar met import statements in java klassen, interfaces.

Syntaxis van importeren :

<%@ page import="value" %>

Hier geeft 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 hulpprogramma-klassen) en het kan alle methoden van de volgende klasse gebruiken.

  1. inhoudstype :
  • Het definieert het karaktercoderingsschema, dwz het wordt gebruikt om het inhoudstype en de karakterset van het antwoord in te stellen
  • Het standaardtype 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 tekst / html, het stelt de tekencodering in voor JSP en voor de gegenereerde responspagina.

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

Syntaxis van info:

<%@ page info="value" %>

Hier vertegenwoordigt de waarde de servlet-informatie.

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 ()

  1. Sessie
  • JSP-pagina maakt standaard een sessie.
  • Soms hebben we geen sessie nodig om in JSP te worden gemaakt, en daarom kunnen we dit attribuut in dat geval op false zetten. De standaardwaarde van het sessieattribuut is true en de sessie wordt gemaakt.

    Als het is ingesteld op false, kunnen we de compiler aangeven om de sessie niet standaard te maken.

Syntaxis van sessie:

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

In dit geval kan het sessiekenmerk worden ingesteld op true of false

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", dus we geven aan dat we geen sessie in deze JSP willen maken

  1. isThreadSafe:
  • Het definieert het threading-model 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 zetten, 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 als true en stel deze in als 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", dus wordt er gesynchroniseerd en kunnen meerdere threads worden gebruikt.

  1. AutoFlush:

Dit kenmerk geeft aan dat de gebufferde uitvoer automatisch moet worden leeggemaakt of niet en de standaardwaarde van dat kenmerk is true.

Als de waarde is ingesteld op false, wordt de buffer niet automatisch leeggemaakt en als deze vol is, krijgen we een uitzondering.

Als de buffer geen is, dan is de false onwettig en is er geen buffer, dus het wordt automatisch leeggemaakt.

Syntaxis van autoFlush:

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

Hier geeft true / false aan of buffering moet worden uitgevoerd of niet

Voorbeeld:

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

Uitleg van de code:

In de bovenstaande code is de autoflush ingesteld op false en daarom wordt er niet gebufferd en wordt de uitvoer handmatig doorgespoeld.

  1. Buffer:
  • Met behulp van dit kenmerk kan het outputantwoordobject worden gebufferd.
  • We kunnen de grootte van de buffering definiëren met behulp van dit kenmerk en de standaardgrootte is 8 KB.
  • Het geeft de servlet de opdracht om de buffer te schrijven voordat hij naar het antwoordobject schrijft.

Syntaxis van buffer:

<%@ page buffer="value" %>

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

Voorbeeld:

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

Uitleg van de code:

In de bovenstaande code wordt de buffergrootte 16 KB genoemd, waarbij de buffer van die grootte zou zijn

  1. isErrorPage:
  • Het geeft aan dat de JSP-pagina met een foutpagina wordt gecontroleerd op een andere JSP-pagina
  • Elk JSP-bestand dat is gedeclareerd met het kenmerk "isErrorPage" kan dan uitzonderingen ontvangen van andere JSP-pagina's met foutpagina's.
  • 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 als true. Daarom zal het controleren of alle andere JSP's de attribuutset errorPage (beschreven in het volgende attribuut) hebben en uitzonderingen kunnen verwerken.

  1. Pagina-codering:
Het kenmerk "pageEncoding" definieert de tekencodering voor de JSP-pagina.

De standaardwaarde is gespecificeerd als "ISO-8859-1" als er geen andere is gespecificeerd.

Syntaxis van pageEncoding:

<%@ page pageEncoding="vaue" %>

Hier geeft waarde de karaktersetwaarde voor JSP aan

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

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

Syntaxis van errorPage:

<%@ page errorPage="value" %>

Hier staat de waarde voor 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

  1. wordt genegeerd:
  • IsELIgnored is een vlagattribuut waar 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 isELGenegeerd:

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

Hier vertegenwoordigt true / false 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 daarom wordt Expression Language (EL) 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"%> Richtlijngoeroe JSP1  Datum is: <% = nieuwe java.util.Date ()%>

Uitleg van de code:

Coderegel 1-2: hier hebben we vier attributen gedefinieerd, dwz

  • Taal: Het is ingesteld als Java als programmeertaal
  • contentType: ingesteld als text / html om de compiler te vertellen dat html moet worden opgemaakt
  • pageEncoding: standaard charset is ingesteld in dit attribuut
  • isELIgnored: Expression Tag is false en wordt daarom niet genegeerd

Coderegel 3: hier hebben we het importattribuut gebruikt, en het importeert "Date class", dat afkomstig is van het Java util-pakket, en we proberen de huidige datum in de code weer te geven.

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

Uitgang :

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

JSP Inclusief richtlijn

  • JSP "include-instructie" (codeline 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 de pagina's op te splitsen 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 = "richtlijn_header_jsp3.jsp"%> Guru-richtlijn JSP2  Dit is het hoofdbestand 

Directive_header_jsp3.jsp (die is opgenomen in het hoofdbestand)

<% @ page language = "java" contentType = "text / html; charset = ISO-8859-1"pageEncoding = "ISO-8859-1"%> Headerbestand: <% int count = 1; tel ++;out.println (count);%>:

Uitleg van de code:

Richtlijn_jsp2.jsp:

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

Directive_header_jsp3.jsp:

Coderegel 11-12: we hebben een variabeletelling geïnitialiseerd op 1 genomen en deze vervolgens verhoogd. Dit geeft de uitvoer in het hoofdbestand zoals hieronder weergegeven.

Als je de bovenstaande code uitvoert, krijg je de volgende output:

Uitgang:

  • De uitvoer is Header-bestand: 2: Dit is het hoofdbestand
  • De uitvoer wordt uitgevoerd vanuit het bestand richtlijn_jsp2.jsp terwijl het bestand met de richtlijn_header_jsp3.jsp eerst zal worden gecompileerd.
  • Nadat het bijgevoegde bestand is voltooid, wordt het hoofdbestand uitgevoerd en zal de uitvoer afkomstig zijn van het hoofdbestand "Dit is het hoofdbestand". U krijgt dus de uitvoer als "Kopbestand: 2" van _jsp3.jsp en "Dit is het hoofdbestand" van _jsp2.jsp.

JSP Taglib-richtlijn

  • JSP taglib-instructie wordt gebruikt om de tagbibliotheek te definiëren met "taglib" als prefix, die we kunnen gebruiken in JSP.
  • Meer details zullen worden behandeld in het gedeelte Aangepaste JSP-tags
  • De JSP-taglib-instructie wordt gebruikt in de JSP-pagina's met behulp van de standaard JSP-tagbibliotheken
  • Het gebruikt een set aangepaste tags, identificeert de locatie van de bibliotheek en biedt middelen om aangepaste tags op de JSP-pagina te identificeren.

Syntaxis van taglib-instructie:

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

Hier is het "uri" -attribuut een unieke identificatie in de tagbibliotheek-descriptor en het "voorvoegsel" -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"%> Guru-richtlijn JSP 

Uitleg van de code:

Coderegel 3: Hier wordt "taglib" gedefinieerd met attributen uri en prefix.

Coderegel 9: "gurutag" is de aangepaste tag die is gedefinieerd en deze kan overal worden gebruikt