Директиви за JSP: Страница, Включване & Урок за Таглиб

Съдържание:

Anonim

Какво представляват JSP директивите?

  • JSP директивите са съобщенията към JSP контейнера. Те предоставят глобална информация за цяла JSP страница.
  • Директивите на JSP се използват за даване на специални инструкции на контейнер за превод на JSP в код на сървлета.
  • Във фаза на жизнения цикъл на JSP, JSP трябва да бъде преобразуван в сервлет, който е фазата на транслация.
  • Те дават инструкции на контейнера за това как да се справят с определени аспекти на JSP обработката
  • Директивите могат да имат много атрибути чрез запетая, разделени като двойки ключ-стойност.
  • В JSP директивата е описана в маркерите <% @%>.

Синтаксис на директивата:

<%@ directive attribute %>

Има три вида директиви:

  1. Директива на страницата
  2. Включете директива
  3. Директива на Таглиб

Всеки от тях е описан подробно по-долу с примери:

В този урок ще научите -

  • Директива за JSP страница
  • Директива за включване на JSP
  • Директива за JSP Taglib

Директива за JSP страница

Синтаксис на директивата Page:

<%@ page… %>
  • Той предоставя атрибути, които се прилагат към цялата JSP страница.
  • Той дефинира зависими от страни атрибути, като скриптов език, страница за грешка и изисквания за буфериране.
  • Използва се за предоставяне на инструкции на контейнер, който се отнася до текущата JSP страница.

Следват списъка с атрибути, свързани с директивата на страницата:

  1. Език
  2. Удължава
  3. Внос
  4. тип съдържание
  5. информация
  6. сесия
  7. isThreadSafe
  8. автоизплакване
  9. буфер
  10. IsErrorPage
  11. pageEncoding
  12. errorPage
  13. isELIgonored

Повече подробности за всеки атрибут

  1. език : Той определя езика за програмиране (основния език), който се използва в страницата.

    Синтаксис на езика:

    <%@ page language="value" %>

    Тук стойността е езикът за програмиране (основният език)

Пример:

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

Обяснение на кода: В горния пример стойността на езика на атрибута е Java, който е основният език в този случай. Следователно кодът в етикетите на изрази ще бъде компилиран с помощта на java compiler.

  1. Extends : Този атрибут се използва за разширяване (наследяване) на класа, както прави JAVA

Синтаксис на extends:

<%@ page extends="value" %>

Тук стойността представлява клас, от който трябва да бъде наследена.

Пример:

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

Обяснение на кода: В горния код JSP разширява DemoClass, който е в пакета за демотест, и ще разшири всички функции на класа.

  1. Импортиране : Този атрибут е най-използваният атрибут в атрибутите на директивата на страницата. Той се използва, за да каже на контейнера да импортира други Java класове, интерфейси, преброявания и др., Докато генерира код на сървлет.

Синтаксис на импортиране :

<%@ page import="value" %>

Тук стойността показва класовете, които трябва да бъдат импортирани.

Пример:

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

Обяснение на кода:

В горния код импортираме клас Date от пакета java.util (всички класове помощни програми) и той може да използва всички методи от следващия клас.

  1. contentType :
  • Той определя схемата за кодиране на символи, т.е. използва се за задаване на типа съдържание и набора от символи на отговора
  • Типът по подразбиране на contentType е "text / html; charset = ISO-8859-1".

Синтаксис на contentType:

<%@ page contentType="value" %>

Пример:

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

Обяснение на кода:

В горния код типът съдържание е зададен като text / html, той задава кодиране на символи за JSP и за генерирана страница за отговор.

  1. информация
  • Той дефинира низ, който може да бъде достъпен чрез метода getServletInfo ().
  • Този атрибут се използва за задаване на описанието на сървлета.

Синтаксис на информация:

<%@ page info="value" %>

Тук стойността представлява информацията за сървлета.

Пример:

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

Обяснение на кода:

В горния код низ „Guru Directive JSP“ може да бъде извлечен от интерфейса на сървлета с помощта на getServletInfo ()

  1. Сесия
  • JSP страницата създава сесия по подразбиране.
  • Понякога не се нуждаем от сесия, която да бъде създадена в JSP, и следователно можем да зададем този атрибут на false в този случай. Стойността по подразбиране на атрибута на сесията е true и сесията се създава.

    Когато е зададено на false, тогава можем да посочим компилаторът да не създава сесията по подразбиране.

Синтаксис на сесията:

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

Тук в този случай атрибутът на сесията може да бъде зададен на true или false

Пример:

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

Обяснение на кода:

В горния пример атрибутът session е зададен на "false", следователно ние показваме, че не искаме да създаваме никаква сесия в този JSP

  1. isThreadSafe:
  • Той дефинира модела на резбата за генерирания сървлет.
  • Той показва нивото на безопасност на нишките, внедрено на страницата.
  • Стойността му по подразбиране е true, така че едновременно
  • Можем да използваме този атрибут за реализиране на интерфейс SingleThreadModel в генерирания сървлет.
  • Ако го зададем на false, той ще приложи SingleThreadModel и ще има достъп до всички споделени обекти и може да доведе до несъответствие.

Синтаксис на isThreadSafe:

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

Тук true или false представлява дали синхронизацията е налице, след това се задава като true и го задава като false.

Пример:

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

Обяснение на кода:

В горния код isThreadSafe е зададен на „true“, следователно ще бъде извършена синхронизация и могат да се използват множество нишки.

  1. AutoFlush:

Този атрибут указва, че буферираният изход трябва да бъде изтрит автоматично или не и стойността по подразбиране на този атрибут е вярна.

Ако стойността е зададена на false, буферът няма да бъде изтрит автоматично и ако е пълен, ще получим изключение.

Когато буферът е никакъв, тогава false е нелегитимен и няма буфериране, така че ще бъде изтрит автоматично.

Синтаксис на autoFlush:

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

Тук true / false представя дали буферирането трябва да се направи или не

Пример:

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

Обяснение на кода:

В горния код, автоматичното измиване е зададено на false и следователно буферирането няма да се извърши и ръчно измие изхода.

  1. Буфер:
  • Използвайки този атрибут, изходният обект на отговор може да бъде буфериран.
  • Можем да дефинираме размера на буферирането, който да се извърши, като използваме този атрибут, а размерът по подразбиране е 8KB.
  • Той насочва сървлета да напише буфера преди запис в обекта за отговор.

Синтаксис на буфера:

<%@ page buffer="value" %>

Тук стойността представлява размера на буфера, който трябва да бъде дефиниран. Ако няма буфер, тогава можем да напишем като никакъв и ако не споменем никаква стойност, тогава стойността по подразбиране е 8KB

Пример:

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

Обяснение на кода:

В горния код размерът на буфера се споменава като 16KB, като буферът ще бъде с този размер

  1. isErrorPage:
  • Това показва, че JSP страница, която има errorPage, ще бъде проверена в друга JSP страница
  • След това всеки JSP файл, деклариран с атрибут "isErrorPage", може да получава изключения от други JSP страници, които имат страници за грешки.
  • Изключенията са достъпни само за тези страници.
  • Стойността по подразбиране е false.

Синтаксис на isErrorPage:

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

Пример:

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

Обяснение на кода:

В горния код isErrorPage е зададен като true. Следователно, той ще провери дали всички други JSP имат набор атрибути errorPage (описан в следващия атрибут) и може да обработва изключения.

  1. Кодиране на страница:
Атрибутът "pageEncoding" дефинира кодирането на знаци за JSP страница.

По подразбиране е посочено „ISO-8859-1“, ако не е посочено друго.

Синтаксис на pageEncoding:

<%@ page pageEncoding="vaue" %>

Тук стойността определя стойността на набора от знаци за JSP

Пример:

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

Обяснение на кода:

В горния код "pageEncoding" е зададен по подразбиране на набор от знаци ISO-8859-1

  1. errorPage:
Този атрибут се използва за задаване на страницата за грешка за JSP страницата, ако JSP хвърли изключение и след това пренасочва към страницата с изключения.

Синтаксис на грешка Страница:

<%@ page errorPage="value" %>

Тук стойността представлява грешката JSP стойност на страницата

Пример:

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

Обяснение на кода:

В горния код, за да се справим с изключенията, имаме errroHandler.jsp

  1. isELIgnored:
  • IsELIgnored е атрибут на флаг, при който трябва да решим дали да игнорираме EL таговете или не.
  • Неговият тип данни е java enum и стойността по подразбиране е false, следователно EL е активирана по подразбиране.

Синтаксис на isELIgnored:

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

Тук true / false представлява стойността на EL, независимо дали трябва да се игнорира или не.

Пример:

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

Обяснение на кода:

В горния код, isELIgnored е вярно и следователно езикът на изразяване (EL) се игнорира тук.

В примера по-долу използваме четири атрибута (кодов ред 1-2)

Пример с четири атрибута

<% @ page language = "java" contentType = "text / html;" pageEncoding = "ISO-8859-1"isELIgnored = "false"%><% @ page import = "java.util.Date"%> Директива Guru JSP1  Датата е: <% = нов java.util.Date ()%>

Обяснение на кода:

Кодов ред 1-2: Тук дефинирахме четири атрибута, т.е.

  • Език: Зададен е като Java като език за програмиране
  • contentType: задава се като текст / html, за да каже на компилатора, че html трябва да бъде формат
  • pageEncoding: в този атрибут е зададен набор от символи по подразбиране
  • isELIgnored: Expression Tag е false, следователно не се пренебрегва

Кодов ред 3: Тук използвахме атрибут за импортиране и той импортира „Клас дата“, който е от Java util пакета, и се опитваме да покажем текущата дата в кода.

Когато изпълните горния код, ще получите следния изход

Изход :

  • Date is: Текущата дата, използваща метода за дата на класа на датите

Директива за включване на JSP

  • JSP "включва директива" (код 8) се използва за включване на един файл в друг файл
  • Този включен файл може да бъде HTML, JSP, текстови файлове и т.н.
  • Също така е полезно при създаването на шаблони с потребителски изгледи и разбиване на страниците на действия в горния и долния колонтитул и страничната лента.
  • Той включва файл по време на фазата на превод

Синтаксис на директивата за включване:

<%@ include… .%>

Пример:

Directive_jsp2.jsp (Основен файл)

<% @ page language = "java" contentType = "text / html; charset = ISO-8859-1"pageEncoding = "ISO-8859-1"%><% @ include file = "Directive_header_jsp3.jsp"%> Директива за гуру JSP2  Това е основният файл 

Directive_header_jsp3.jsp (който е включен в основния файл)

<% @ page language = "java" contentType = "text / html; charset = ISO-8859-1"pageEncoding = "ISO-8859-1"%> Заглавен файл: <% int count = 1; преброяване ++;out.println (брой);%>:

Обяснение на кода:

Directive_jsp2.jsp:

Кодов ред 3: В този код използваме включете тагове, където включваме файла директива_header_jsp3.jsp в основния файл (_jsp2.jsp) и получава изхода както на основния файл, така и на включения файл.

Directive_header_jsp3.jsp:

Кодов ред 11-12: Взехме брой променливи, инициализиран на 1 и след това го увеличихме. Това ще даде изхода в основния файл, както е показано по-долу.

Когато изпълнявате горния код, получавате следния изход:

Изход:

  • Резултатът е заглавен файл: 2: Това е основният файл
  • Изходът се изпълнява от файла director_jsp2.jsp, докато включеният файл director_header_jsp3.jsp ще бъде компилиран първо.
  • След като включеният файл приключи, основният файл се изпълнява и изходът ще бъде от основния файл "Това е основният файл". Така че ще получите изхода като "Header file: 2" от _jsp3.jsp и "This is main file" от _jsp2.jsp.

Директива за JSP Taglib

  • JSP директивата taglib се използва за дефиниране на библиотеката с тагове с "taglib" като префикс, който можем да използваме в JSP.
  • Повече подробности ще бъдат разгледани в раздела JSP Custom Tags
  • JSP директивата taglib се използва в JSP страниците, използвайки стандартните библиотеки на JSP тагове
  • Той използва набор от персонализирани маркери, идентифицира местоположението на библиотеката и предоставя средства за идентифициране на персонализирани маркери в JSP страницата.

Синтаксис на директивата taglib:

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

Тук атрибутът "uri" е уникален идентификатор в дескриптора на библиотеката на маркери, а атрибутът "prefix" е име на маркер.

Пример:

<% @ 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"%> Директива за гуру JSP 

Обяснение на кода:

Кодов ред 3: Тук "taglib" е дефиниран с атрибути uri и префикс.

Кодов ред 9: „gurutag“ е дефиниран персонализиран таг и може да се използва навсякъде