JSP direktive

Što su JSP direktive?

  • JSP direktive su poruke za JSP spremnik. Oni pružaju globalne informacije o cijeloj JSP stranici.
  • JSP direktive koriste se za davanje posebnih uputa spremniku za prijevod JSP-a u kod servleta.
  • U fazi životnog ciklusa JSP-a, JSP se mora pretvoriti u servlet koji je faza prevođenja.
  • Oni daju upute spremniku o tome kako postupati s određenim aspektima JSP obrade
  • Direktive mogu imati mnogo atributa odvojenih zarezima kao parovi ključ-vrijednost.
  • U JSP-u, direktiva je opisana u <%@ %> oznake.

Sintaksa direktive:

<%@ directive attribute="" %>

Vrste direktiva u JSP-u

Postoje tri vrste direktiva u JSP-u:

  1. Stranica direktiva
  2. Uključi direktivu
  3. Taglib direktiva

Svaki od njih je detaljno opisan u nastavku s primjerima:

1) Direktiva JSP stranice

Sintaksa direktive Page:

<%@ page…%>
  • Omogućuje atribute koji se primjenjuju na cijelu JSP stranicu.
  • Definira atribute ovisne o stranici, kao što su skriptni jezik, stranica s pogreškom i zahtjevi za međuspremnik.
  • Koristi se za pružanje uputa spremniku koji se odnosi na trenutnu JSP stranicu.

Slijedi njegov popis atributa povezanih s direktivom stranice:

  1. Jezik
  2. Proširuje
  3. uvoz
  4. contentType
  5. info
  6. Sjednica
  7. isThreadSafe
  8. automatsko ispiranje
  9. tampon
  10. IsErrorPage
  11. pageEncoding
  12. Stranica pogreške
  13. jeELIgonoran

Više detalja o svakom atributu

1) jezik: Definira programski jezik (temeljni jezik) koji se koristi na stranici.

Sintaksa jezika:

<%@ page language="value" %>

Ovdje je vrijednost programski jezik (temeljni jezik)

Primjer:

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

Objašnjenje koda: U gornjem primjeru vrijednost atributa jezika je Java koji je u ovom slučaju temeljni jezik. Stoga bi se kod u izraznim oznakama preveo pomoću java prevoditelja.

2) Proširuje se: Ovaj se atribut koristi za proširenje (nasljeđivanje) klase kao što to čini JAVA

Sintaksa proširenja:

<%@ page extends="value" %>

Ovdje vrijednost predstavlja klasu iz koje se mora naslijediti.

Primjer:

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

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

Objašnjenje koda: U gornjem kodu JSP proširuje DemoClass koji je unutar demotest paketa i proširit će sve značajke klase.

3) Uvoz: Ovaj atribut je najčešće korišteni atribut u atributima direktive stranice. Koristi se da se spremniku kaže da uveze druge java klase, sučelja, enumove, itd. dok generira kod servleta. Sličan je uvoznim izjavama u java klasama, sučeljima.

Sintaksa uvoza:

<%@ page import="value" %>

Ovdje vrijednost označava klase koje se moraju uvesti.

Primjer:

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

Objašnjenje koda:

U gornjem kodu uvozimo klasu Date iz paketa java.util (sve uslužne klase) i može koristiti sve metode sljedeće klase.

4) contentType:

  • Definira shemu kodiranja znakova, tj. koristi se za postavljanje vrste sadržaja i skupa znakova odgovora
  • Zadana vrsta contentType je "text/html; charset=ISO-8859-1".

Sintaksa contentType:

<%@ page contentType="value" %>

Primjer:

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

Objašnjenje koda:

U gornjem kodu, vrsta sadržaja postavljena je kao text/html, postavlja kodiranje znakova za JSP i za generiranu stranicu odgovora.

5) informacije

  • Definira niz kojem se može pristupiti metodom getServletInfo().
  • Ovaj atribut se koristi za postavljanje opisa servleta.

Sintaksa informacija:

<%@ page info="value" %>

Ovdje vrijednost predstavlja informacije o servletu.

Primjer:

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

Objašnjenje koda:

U gornjem kodu, niz "Guru Directive JSP" može se dohvatiti sučeljem servleta pomoću getServletInfo()

6) Sjednica

  • JSP stranica prema zadanim postavkama stvara sesiju.
  • Ponekad ne trebamo kreirati sesiju u JSP-u, pa stoga u tom slučaju možemo postaviti ovaj atribut na false. Zadana vrijednost atributa sesije je istinita i sesija je stvorena. Kada je postavljeno na false, tada možemo naznačiti kompajleru da ne stvara sesiju prema zadanim postavkama.

Sintaksa sesije:

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

Ovdje u ovom slučaju atribut sesije može se postaviti na true ili false

Primjer:

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

Objašnjenje koda:

U gornjem primjeru, atribut sesije postavljen je na "false" stoga pokazujemo da ne želimo stvoriti nikakvu sesiju u ovom JSP-u

7) isThreadSafe:

  • On definira model niti za generirani servlet.
  • Označava razinu sigurnosti niti implementiranu na stranici.
  • Njegova zadana vrijednost je istinita tako da simultano
  • Ovaj atribut možemo koristiti za implementaciju sučelja SingleThreadModel u generirani servlet.
  • Ako ga postavimo na false, tada će implementirati SingleThreadModel i moći će pristupiti svim zajedničkim objektima i može izazvati nedosljednost.

Sintaksa isThreadSafe:

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

Ovdje true ili false predstavlja ako postoji sinkronizacija, tada postavite kao true i postavite je kao false.

Primjer:

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

Objašnjenje koda:

U gornjem kodu, isThreadSafe je postavljen na "true" stoga će se izvršiti sinkronizacija i može se koristiti više niti.

8) Automatsko ispiranje:

Ovaj atribut specificira da se izlaz u međuspremniku treba isprati automatski ili ne, a zadana vrijednost tog atributa je istina. Ako je vrijednost postavljena na false, međuspremnik se neće automatski isprazniti, a ako je pun, dobit ćemo iznimku. Kada je međuspremnik nijedan, tada je false nelegitiman i nema međuspremnika, pa će se automatski isprati.

Sintaksa za autoFlush:

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

Ovdje istinito/netočno predstavlja treba li se napraviti međuspremnik ili ne

Primjer:

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

Objašnjenje koda:

U gornjem kodu, autoflush je postavljen na false i stoga se neće izvršiti spremanje u međuspremnik i mora ručno isprati izlaz.

9) Buffer:

  • Korištenjem ovog atributa objekt izlaznog odgovora može se spremiti u međuspremnik.
  • Pomoću ovog atributa možemo definirati veličinu međuspremnika, a zadana veličina je 8 KB.
  • Usmjerava servlet da zapiše međuspremnik prije pisanja u objekt odgovora.

Sintaksa međuspremnika:

<%@ page buffer="value" %>

Ovdje vrijednost predstavlja veličinu međuspremnika koji treba definirati. Ako nema međuspremnika, možemo pisati kao nijedan, a ako ne spomenemo nikakvu vrijednost, zadana vrijednost je 8KB

Primjer:

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

Objašnjenje koda:

U gornjem kodu, veličina međuspremnika spominje se kao 16 KB pri čemu bi međuspremnik bio te veličine

10) isErrorPage:

  • Označava da će JSP stranica koja ima errorPage biti provjerena na drugoj JSP stranici
  • Svaka JSP datoteka deklarirana s atributom "isErrorPage" tada može primati iznimke od drugih JSP stranica koje imaju stranice s pogreškom.
  • Izuzeci su dostupni samo ovim stranicama.
  • Zadana vrijednost je false.

Sintaksa isErrorPage:

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

Primjer:

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

Objašnjenje koda:

U gornjem kodu, isErrorPage je postavljen kao true. Stoga će provjeriti da li svi drugi JSP-ovi imaju set atributa errorPage (opisan u sljedećem atributu) i mogu rukovati iznimkama.

11) Kodiranje stranice:

Atribut “pageEncoding” definira kodiranje znakova za JSP stranicu. Zadana postavka navedena je kao "ISO-8859-1" ako bilo koja druga nije navedena.

Sintaksa pageEncoding:

<%@ page pageEncoding="vaue" %>

Ovdje vrijednost specificira vrijednost skupa znakova za JSP

Primjer:

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

Objašnjenje koda:

U gornjem kodu “pageEncoding” je postavljen na zadani skup znakova ISO-8859-1

12) Stranica pogreške:

Ovaj se atribut koristi za postavljanje stranice s pogreškom za JSP stranicu ako JSP izbaci iznimku i zatim preusmjeri na stranicu s iznimkom.

Sintaksa stranice pogreške:

<%@ page errorPage="value" %>

Ovdje vrijednost predstavlja vrijednost JSP stranice pogreške

Primjer:

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

Objašnjenje koda:

U gornjem kodu, za rukovanje iznimkama imamo errroHandler.jsp

13) isELIgnored:

  • IsELIgnored je atribut zastave gdje moramo odlučiti hoćemo li zanemariti EL oznake ili ne.
  • Njegov tip podataka je java enum, a zadana vrijednost je lažna, stoga je EL omogućen prema zadanim postavkama.

Sintaksa isELIgnored:

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

Ovdje istinito/netočno predstavlja vrijednost EL-a bez obzira treba li je zanemariti ili ne.

Primjer:

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

Objašnjenje koda:

U gornjem kodu isELIgnored je true i stoga Jezik izražavanja (EL) ovdje se zanemaruje. U primjeru u nastavku koristimo četiri atributa (redak koda 1-2)

Primjer s četiri atributa

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

Objašnjenje koda:

Redak koda 1-2: Ovdje smo definirali četiri atributa, tj

  • Jezik: Postavljen je kao Java kao programski jezik
  • contentType: postavite kao text/html da kažete kompajleru da html mora biti formatiran
  • pageEncoding: zadani skup znakova postavljen je u ovom atributu
  • isELIgnored: Oznaka izraza je netočna pa se ne zanemaruje

Redak koda 3: Ovdje smo upotrijebili atribut uvoza, a on uvozi “Datumsku klasu” koja je iz Java util paket, a mi pokušavamo prikazati trenutni datum u kodu.

Kada izvršite gornji kod, dobit ćete sljedeći izlaz

Direktiva JSP stranice

Izlaz:

  • Datum je: trenutni datum korištenjem metode datuma klase datuma

2) JSP Include direktiva

  • JSP "include directive" (codeline 8) koristi se za uključivanje jedne datoteke u drugu datoteku
  • Ova uključena datoteka može biti HTML, JSP, tekstualne datoteke itd.
  • Također je koristan u stvaranju predložaka s korisničkim prikazima i razbijanju stranica u radnje zaglavlja i podnožja te bočne trake.
  • Uključuje datoteku tijekom faze prijevoda

Sintaksa direktive uključivanja:

<%@ include….%>

Primjer:

Directive_jsp2.jsp (Glavna datoteka)

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

Directive_header_jsp3.jsp (koji je uključen u glavnu datoteku)

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

Objašnjenje koda:

Directive_jsp2.jsp:

Redak koda 3: U ovom kodu koristimo oznake uključivanja gdje uključujemo datoteku directive_header_jsp3.jsp u glavnu datoteku (_jsp2.jsp) i dobivamo izlaz i glavne datoteke i uključene datoteke.

Directive_header_jsp3.jsp:

Redak koda 11-12: Uzeli smo broj varijabli inicijaliziran na 1 i zatim ga povećali. Ovo će dati izlaz u glavnoj datoteci kao što je prikazano u nastavku.

Kada izvršite gornji kod, dobit ćete sljedeći izlaz:

JSP Include direktiva

Izlaz:

  • Izlaz je datoteka zaglavlja: 2 : Ovo je glavna datoteka
  • Izlaz se izvodi iz datoteke directive_jsp2.jsp dok će se uključena datoteka directive_header_jsp3.jsp prvo kompajlirati.
  • Nakon što je uključena datoteka gotova, glavna datoteka se izvršava, a izlaz će biti iz glavne datoteke "Ovo je glavna datoteka". Tako ćete dobiti izlaz kao "Datoteka zaglavlja: 2" iz _jsp3.jsp i "Ovo je glavna datoteka" iz _jsp2.jsp.

3) Direktiva JSP Taglib

  • Direktiva JSP taglib koristi se za definiranje biblioteke oznaka s "taglib" kao prefiksom, koju možemo koristiti u JSP.
  • Više pojedinosti bit će obrađeno u odjeljku JSP Custom Tags
  • Direktiva JSP taglib koristi se na JSP stranicama koje koriste JSP standardne biblioteke oznaka
  • Koristi skup prilagođenih oznaka, identificira lokaciju knjižnice i pruža sredstva za identificiranje prilagođenih oznaka na JSP stranici.

Sintaksa direktive taglib:

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

Ovdje je atribut "uri" jedinstveni identifikator u deskriptoru biblioteke oznaka, a atribut "prefix" je naziv oznake.

Primjer:

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

Objašnjenje koda:

Redak koda 3: Ovdje je "taglib" definiran atributima uri i prefiks.

Redak koda 9: "gurutag" je definirana prilagođena oznaka i može se koristiti bilo gdje