Директивы JSP: Page, Include & Учебник по Taglib

Содержание:

Anonim

Что такое директивы JSP?

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

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

<%@ directive attribute %>

Есть три типа директив:

  1. Директива страницы
  2. Включить директиву
  3. Директива Taglib

Каждый из них подробно описан ниже с примерами:

В этом руководстве вы узнаете -

  • Директива страницы JSP
  • Директива JSP Include
  • Директива 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. language : определяет язык программирования (базовый язык), используемый на странице.

    Синтаксис языка:

    <%@ page language="value" %>

    Здесь значение - это язык программирования (базовый язык)

Пример:

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

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

  1. Расширяет : этот атрибут используется для расширения (наследования) класса, как это делает 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, который находится в пакете demotest, и расширяет все функции класса.

  1. Импорт : этот атрибут является наиболее часто используемым атрибутом в атрибутах директив страницы. Он используется для указания контейнеру импортировать другие классы Java, интерфейсы, перечисления и т. Д. При генерации кода сервлета. Он аналогичен операторам импорта в классах 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"%>

Расшифровка кода:

В приведенном выше примере для атрибута сеанса установлено значение «false», поэтому мы указываем, что не хотим создавать сеанс в этом JSP.

  1. isThreadSafe:
  • Он определяет потоковую модель для сгенерированного сервлета.
  • Он указывает на уровень безопасности потоков, реализованный на странице.
  • Его значение по умолчанию истинно, поэтому одновременный
  • Мы можем использовать этот атрибут для реализации интерфейса SingleThreadModel в сгенерированном сервлете.
  • Если мы установим для него значение false, тогда он будет реализовывать SingleThreadModel и сможет получить доступ к любым общим объектам и может привести к несогласованности.

Синтаксис isThreadSafe:

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

Здесь истина или ложь означает, есть ли синхронизация, затем устанавливается как истина и устанавливается как ложь.

Пример:

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

Расшифровка кода:

В приведенном выше коде для isThreadSafe установлено значение «true», поэтому синхронизация будет выполнена, и можно будет использовать несколько потоков.

  1. Автозапуск:

Этот атрибут указывает, что буферизованный вывод должен сбрасываться автоматически или нет, и значение этого атрибута по умолчанию - истина.

Если установлено значение false, буфер не будет сброшен автоматически, а если он заполнен, мы получим исключение.

Если в буфере нет буфера, значит ложь является недопустимой, и буферизация отсутствует, поэтому она будет сброшена автоматически.

Синтаксис autoFlush:

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

Здесь истина / ложь указывает, должна ли буферизация выполняться или нет.

Пример:

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

Расшифровка кода:

В приведенном выше коде для autoflush установлено значение false, и, следовательно, буферизация не будет выполняться, и он вручную сбрасывает вывод.

  1. Буфер:
  • Используя этот атрибут, можно буферизовать объект выходного ответа.
  • Мы можем определить размер буферизации, которая будет выполняться с помощью этого атрибута, и размер по умолчанию составляет 8 КБ.
  • Он предписывает сервлету записать буфер перед записью в объект ответа.

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

<%@ page buffer="value" %>

Здесь значение представляет размер буфера, который необходимо определить. Если буфера нет, мы можем писать как none, а если мы не указываем какое-либо значение, то значение по умолчанию составляет 8 КБ.

Пример:

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

Расшифровка кода:

В приведенном выше коде размер буфера указан как 16 КБ, при этом буфер будет иметь этот размер.

  1. isErrorPage:
  • Это означает, что страница JSP с ошибкой будет проверена на другой странице JSP.
  • Любой файл JSP, объявленный с атрибутом isErrorPage, может затем получать исключения от других страниц JSP, которые имеют страницы ошибок.
  • Исключения доступны только для этих страниц.
  • Значение по умолчанию неверно.

Синтаксис 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" %>

Здесь value указывает значение кодировки для JSP

Пример:

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

Расшифровка кода:

В приведенном выше коде "pageEncoding" была установлена ​​кодировка по умолчанию ISO-8859-1.

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

Синтаксис errorPage:

<%@ page errorPage="value" %>

Здесь значение представляет значение страницы ошибки JSP.

Пример:

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

Расшифровка кода:

В приведенном выше коде для обработки исключений у нас есть errroHandler.jsp

  1. isEL Игнорируется:
  • 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 = "ложь"%><% @ page import = "java.util.Date"%> Директива Guru JSP1  Дата: <% = новый java.util.Date ()%>

Расшифровка кода:

Строка кода 1-2: Здесь мы определили четыре атрибута, т.е.

  • Язык: установлен как Java как язык программирования.
  • contentType: установить как text / html, чтобы сообщить компилятору, что html должен быть отформатирован
  • pageEncoding: в этом атрибуте устанавливается кодировка по умолчанию
  • isELIgnored: тег выражения имеет значение false, поэтому он не игнорируется

Строка кода 3: здесь мы использовали атрибут импорта, и он импортирует «класс даты» из пакета утилиты Java, и мы пытаемся отобразить текущую дату в коде.

Когда вы выполните приведенный выше код, вы получите следующий результат

Выход :

  • Дата: Текущая дата с использованием метода даты класса даты

Директива JSP Include

  • "Директива включения" JSP (строка кода 8) используется для включения одного файла в другой.
  • Этот включаемый файл может быть HTML, JSP, текстовыми файлами и т. Д.
  • Это также полезно при создании шаблонов с пользовательскими представлениями и разбиении страниц на действия верхнего и нижнего колонтитула и боковой панели.
  • Он включает файл на этапе перевода

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

<%@ 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; count ++;out.println (количество);%>:

Расшифровка кода:

Directive_jsp2.jsp:

Строка кода 3: в этом коде мы используем теги include, в которых мы включаем файл directive_header_jsp3.jsp в основной файл (_jsp2.jsp) и получаем вывод как основного файла, так и включаемого файла.

Directive_header_jsp3.jsp:

Строка кода 11-12: Мы взяли счетчик переменных, инициализированный до 1, а затем увеличили его. Это даст результат в основном файле, как показано ниже.

Когда вы выполняете приведенный выше код, вы получаете следующий результат:

Выход:

  • На выходе получается файл заголовка: 2: это основной файл.
  • Вывод выполняется из файла directive_jsp2.jsp, в то время как включенный файл directive_header_jsp3.jsp будет скомпилирован первым.
  • После того, как включенный файл будет готов, будет выполнен основной файл, и на выходе будет основной файл «Это основной файл». Таким образом, вы получите результат в виде «Заголовочный файл: 2» из _jsp3.jsp и «Это главный файл» из _jsp2.jsp.

Директива JSP Taglib

  • Директива JSP taglib используется для определения библиотеки тегов с префиксом taglib, который мы можем использовать в JSP.
  • Более подробно будет рассмотрено в разделе "Пользовательские теги JSP".
  • Директива JSP taglib используется на страницах JSP с использованием стандартных библиотек тегов JSP.
  • Он использует набор настраиваемых тегов, определяет расположение библиотеки и предоставляет средства идентификации настраиваемых тегов на странице JSP.

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

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

Здесь атрибут «uri» - это уникальный идентификатор в дескрипторе библиотеки тегов, а атрибут «префикс» - это имя тега.

Пример:

<% @ 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 и prefix.

Строка кода 9: gurutag - это определенный пользовательский тег, который можно использовать где угодно.