JSP-direktiver: Side, Inkluder & Taglib-vejledning

Indholdsfortegnelse:

Anonim

Hvad er JSP-direktiver?

  • JSP-direktiver er beskederne til JSP-containeren. De giver global information om en hel JSP-side.
  • JSP-direktiver bruges til at give speciel instruktion til en container til oversættelse af JSP til servletkode.
  • I JSP-livscyklusfasen skal JSP konverteres til en servlet, som er oversættelsesfasen.
  • De giver instruktioner til containeren om, hvordan man håndterer visse aspekter af JSP-behandling
  • Direktiver kan have mange attributter ved komma adskilt som nøgleværdipar.
  • I JSP er direktivet beskrevet i <% @%> tags.

Syntaks for direktivet:

<%@ directive attribute %>

Der er tre typer direktiver:

  1. Side-direktivet
  2. Inkluder direktiv
  3. Taglib-direktivet

Hver af dem er beskrevet detaljeret nedenfor med eksempler:

I denne vejledning lærer du -

  • JSP-sidedirektivet
  • JSP Inkluder direktiv
  • JSP Taglib-direktivet

JSP-sidedirektivet

Syntaks for sidedirektivet:

<%@ page… %>
  • Det giver attributter, der bliver anvendt på hele JSP-siden.
  • Den definerer sideafhængige attributter, såsom scriptingsprog, fejlside og bufferingskrav.
  • Det bruges til at give instruktioner til en container, der vedrører den aktuelle JSP-side.

Følgende er dens liste over attributter, der er knyttet til sidedirektivet:

  1. Sprog
  2. Udvider sig
  3. Importere
  4. indholdstype
  5. info
  6. session
  7. isThreadSafe
  8. autoflush
  9. buffer
  10. IsErrorPage
  11. pageEncoding
  12. errorPage
  13. isELgonored

Flere detaljer om hver attribut

  1. sprog : Det definerer det programmeringssprog (underliggende sprog), der bruges på siden.

    Sprogets syntaks:

    <%@ page language="value" %>

    Her er værdien programmeringssprog (underliggende sprog)

Eksempel:

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

Forklaring af kode: I ovenstående eksempel er attributssprogværdien Java, som er det underliggende sprog i dette tilfælde. Derfor vil koden i ekspressionskoder blive kompileret ved hjælp af java compiler.

  1. Udvider : Denne attribut bruges til at udvide (arve) klassen som JAVA gør

Syntaks for udvidelser:

<%@ page extends="value" %>

Her repræsenterer værdien klasse, hvorfra den skal arves.

Eksempel:

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

Forklaring af koden: I ovenstående kode udvider JSP DemoClass, som er inden for demotestpakke, og det udvider alle klassefunktioner.

  1. Import : Denne attribut er den mest anvendte attribut i attributter til sidedirektiv. Den bruges til at fortælle containeren at importere andre java-klasser, grænseflader, enums osv., Mens generering af servletkode. Det ligner importudtalelser i java-klasser, grænseflader.

Import af syntaks :

<%@ page import="value" %>

Her angiver værdien de klasser, der skal importeres.

Eksempel:

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

Forklaring af koden:

I ovenstående kode importerer vi dataklassen fra java.util-pakken (alle hjælpeklasser), og den kan bruge alle metoder i følgende klasse.

  1. contentType :
  • Det definerer tegnkodningsskemaet, dvs. det bruges til at indstille indholdstypen og tegnsættet for svaret
  • Standardtypen for contentType er "text / html; charset = ISO-8859-1".

Indholdets syntaks Type:

<%@ page contentType="value" %>

Eksempel:

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

Forklaring af koden:

I ovenstående kode indstilles indholdstypen som tekst / html, den indstiller tegnkodning for JSP og for genereret svarside.

  1. info
  • Det definerer en streng, som kan fås med getServletInfo () -metoden.
  • Denne attribut bruges til at indstille servletbeskrivelsen.

Syntaks for info:

<%@ page info="value" %>

Her repræsenterer værdien servletoplysningerne.

Eksempel:

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

Forklaring af koden:

I ovenstående kode kan strengen "Guru Directive JSP" hentes af servlet-interface ved hjælp af getServletInfo ()

  1. Session
  • JSP-siden opretter session som standard.
  • Nogle gange har vi ikke brug for en session, der skal oprettes i JSP, og derfor kan vi indstille denne attribut til falsk i så fald. Standardværdien af ​​sessionsattributten er sand, og sessionen oprettes.

    Når det er indstillet til falsk, kan vi angive, at compileren ikke opretter sessionen som standard.

Syntaks for session:

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

Her i dette tilfælde kan sessionattribut indstilles til sand eller falsk

Eksempel:

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

Forklaring af kode:

I ovenstående eksempel er sessionsattribut sat til "falsk", hvorfor vi indikerer, at vi ikke vil oprette nogen session i denne JSP

  1. isThreadSafe:
  • Det definerer trådmodellen for den genererede servlet.
  • Det angiver niveauet for trådsikkerhed implementeret på siden.
  • Dens standardværdi er sand, så samtidig
  • Vi kan bruge denne attribut til at implementere SingleThreadModel-interface i genereret servlet.
  • Hvis vi indstiller det til falsk, implementerer det SingleThreadModel og kan få adgang til alle delte objekter og kan give inkonsistens.

Syntaks for isThreadSafe:

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

Her repræsenterer sand eller falsk, hvis synkronisering er der, så indstilles som sand og indstilles som falsk.

Eksempel:

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

Forklaring af koden:

I ovenstående kode er isThreadSafe indstillet til "sand", derfor vil synkronisering blive udført, og flere tråde kan bruges.

  1. AutoFlush:

Denne attribut specificerer, at det buffrede output skal skylles automatisk eller ej, og at standardværdien for denne attribut er sand.

Hvis værdien er sat til falsk, skylles bufferen ikke automatisk, og hvis den er fuld, får vi en undtagelse.

Når bufferen ikke er nogen, er falsken uægte, og der er ingen buffering, så den skylles automatisk.

Syntaks for autoFlush:

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

Her repræsenterer sand / falsk, om buffering skal udføres eller ej

Eksempel:

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

Forklaring af koden:

I ovenstående kode er autoflush indstillet til falsk, og derfor vil buffering ikke blive udført, og den har manuelt skylt output.

  1. Buffer:
  • Ved hjælp af denne attribut kan outputresponsobjektet være bufret.
  • Vi kan definere størrelsen på buffering, der skal udføres ved hjælp af denne attribut, og standardstørrelsen er 8 KB.
  • Den leder servlet til at skrive bufferen, før den skrives til responsobjektet.

Syntaks for buffer:

<%@ page buffer="value" %>

Her repræsenterer værdien størrelsen på bufferen, der skal defineres. Hvis der ikke er nogen buffer, kan vi skrive som ingen, og hvis vi ikke nævner nogen værdi, er standard 8KB

Eksempel:

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

Forklaring af koden:

I ovenstående kode nævnes bufferstørrelse som 16KB, hvor bufferen ville have den størrelse

  1. isErrorPage:
  • Det indikerer, at JSP-side, der har en fejlside, kontrolleres på en anden JSP-side
  • Enhver JSP-fil, der er erklæret med attributten "isErrorPage", kan derefter modtage undtagelser fra andre JSP-sider, der har fejlsider.
  • Undtagelser er kun tilgængelige på disse sider.
  • Standardværdien er falsk.

Syntaks for isErrorPage:

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

Eksempel:

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

Forklaring af koden:

I ovenstående kode er isErrorPage indstillet som sand. Derfor kontrollerer den, at andre JSP'er har errorPage (beskrevet i den næste attribut) attribut sæt, og det kan håndtere undtagelser.

  1. PageEncoding:
Attributten "pageEncoding" definerer tegnkodning for JSP-siden.

Standard er angivet som "ISO-8859-1", hvis en anden ikke er specificeret.

Syntaks for side Kodning:

<%@ page pageEncoding="vaue" %>

Her angiver værdi tegnsætværdien for JSP

Eksempel:

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

Forklaring af koden:

I ovenstående kode er "pageEncoding" indstillet til standard-tegnsæt ISO-8859-1

  1. errorPage:
Denne attribut bruges til at indstille fejlsiden for JSP-siden, hvis JSP kaster en undtagelse, og derefter omdirigeres til undtagelsessiden.

Fejlsyntaks Side:

<%@ page errorPage="value" %>

Her repræsenterer værdien fejlen JSP-sideværdi

Eksempel:

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

Forklaring af koden:

I ovenstående kode har vi errroHandler.jsp til at håndtere undtagelser

  1. isEL ignoreret:
  • IsELIgnored er en flagattribut, hvor vi skal beslutte, om vi skal ignorere EL-tags eller ej.
  • Dens datatype er java enum, og standardværdien er falsk, hvorfor EL er aktiveret som standard.

Syntaks for isEL ignoreret:

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

Her repræsenterer sand / falsk værdien af ​​EL, uanset om den skal ignoreres eller ej.

Eksempel:

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

Forklaring af koden:

I ovenstående kode er isELIgnored sand, og derfor ignoreres ekspressionssprog (EL) her.

I nedenstående eksempel bruger vi fire attributter (kodelinje 1-2)

Eksempel med fire attributter

<% @ side sprog = "java" contentType = "tekst / html;" pageEncoding = "ISO-8859-1"isELIgnored = "false"%><% @ side import = "java.util.Date"%> Direktiv Guru JSP1  Dato er: <% = ny java.util.Date ()%>

Forklaring af koden:

Kodelinje 1-2: Her har vi defineret fire attributter dvs.

  • Sprog: Det er indstillet som Java som programmeringssprog
  • contentType: indstil som tekst / html for at fortælle compileren, at html skal være format
  • pageEncoding: standard charset er indstillet i denne attribut
  • isELIgnored: Expression Tag er falsk, derfor ignoreres det ikke

Kodelinje 3: Her har vi brugt importattribut, og det importerer "Datoklasse", som er fra Java util-pakke, og vi prøver at vise den aktuelle dato i koden.

Når du udfører ovenstående kode, får du følgende output

Output :

  • Dato er: Aktuel dato ved hjælp af datometoden for dataklassen

JSP Inkluder direktiv

  • JSP "inkluderer direktiv" (kodelinje 8) bruges til at inkludere en fil til den anden fil
  • Denne inkluderede fil kan være HTML, JSP, tekstfiler osv.
  • Det er også nyttigt at oprette skabeloner med brugervisningerne og opdele siderne i sidehoved & sidefod og sidebjælkehandlinger.
  • Det inkluderer fil under oversættelsesfasen

Syntaks for inkluderer direktivet:

<%@ include… .%>

Eksempel:

Directive_jsp2.jsp (Hovedfil)

<% @ side sprog = "java" contentType = "tekst / html; charset = ISO-8859-1"pageEncoding = "ISO-8859-1"%><% @ inkluderer fil = "directive_header_jsp3.jsp"%> Guru-direktivet JSP2  Dette er hovedfilen 

Directive_header_jsp3.jsp (som er inkluderet i hovedfilen)

<% @ side sprog = "java" contentType = "tekst / html; charset = ISO-8859-1"pageEncoding = "ISO-8859-1"%> Overskriftsfil: <% int antal = 1; tælle ++;out.println (antal);%>:

Forklaring af koden:

Direktiv_jsp2.jsp:

Kodelinje 3: I denne kode bruger vi inkluderende tags, hvor vi inkluderer filen directive_header_jsp3.jsp i hovedfilen (_jsp2.jsp) og får output fra både hovedfil og inkluderet fil.

Direktiv_header_jsp3.jsp:

Kodelinje 11-12: Vi har taget en variabeloptælling initialiseret til 1 og derefter steget den. Dette giver output i hovedfilen som vist nedenfor.

Når du udfører ovenstående kode, får du følgende output:

Produktion:

  • Outputtet er Header-fil: 2: Dette er hovedfilen
  • Outputtet udføres fra filen directive_jsp2.jsp, mens den inkluderede directive_header_jsp3.jsp-fil først kompileres.
  • Når den inkluderede fil er færdig, udføres hovedfilen, og output kommer fra hovedfilen "Dette er hovedfilen". Så du får output som "Header file: 2" fra _jsp3.jsp og "This is main file" fra _jsp2.jsp.

JSP Taglib-direktivet

  • JSP taglib-direktivet bruges til at definere tagbiblioteket med "taglib" som præfikset, som vi kan bruge i JSP.
  • Flere detaljer vil blive dækket i sektionen JSP Custom Tags
  • JSP taglib-direktivet bruges i JSP-siderne ved hjælp af JSP-standard-tagbibliotekerne
  • Det bruger et sæt brugerdefinerede tags, identificerer placeringen af ​​biblioteket og giver midler til at identificere brugerdefinerede tags på JSP-siden.

Syntaks for taglib-direktivet:

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

Her er "uri" -attribut en unik identifikator i tagbiblioteksbeskrivelsen, og "prefix" -attribut er et tagnavn.

Eksempel:

<% @ side sprog = "java" contentType = "tekst / html; charset = ISO-8859-1"pageEncoding = "ISO-8859-1"%><% @ taglib præfiks = "gurutag" uri = "http://java.sun.com/jsp/jstl/core"%> Guru-direktivet JSP 

Forklaring af koden:

Kodelinje 3: Her er "taglib" defineret med attributter uri og præfiks.

Kodelinje 9: "gurutag" er det brugerdefinerede tag defineret, og det kan bruges hvor som helst