Что такое директивы JSP?
- Директивы JSP - это сообщения для контейнера JSP. Они предоставляют глобальную информацию обо всей странице JSP.
- Директивы JSP используются для передачи контейнеру специальных инструкций по преобразованию JSP в код сервлета.
- На этапе жизненного цикла JSP JSP необходимо преобразовать в сервлет, который является этапом трансляции.
- Они дают контейнеру инструкции о том, как обрабатывать определенные аспекты обработки JSP.
- Директивы могут иметь множество атрибутов, разделенных запятыми в виде пар ключ-значение.
- В JSP директива описывается в тегах <% @%>.
Синтаксис директивы:
<%@ directive attribute %>
Есть три типа директив:
- Директива страницы
- Включить директиву
- Директива Taglib
Каждый из них подробно описан ниже с примерами:
В этом руководстве вы узнаете -
- Директива страницы JSP
- Директива JSP Include
- Директива JSP Taglib
Директива страницы JSP
Синтаксис директивы Page:
<%@ page… %>
- Он предоставляет атрибуты, которые применяются ко всей странице JSP.
- Он определяет атрибуты, зависящие от страницы, такие как язык сценариев, страница ошибок и требования к буферизации.
- Он используется для предоставления инструкций контейнеру, относящемуся к текущей странице JSP.
Ниже приведен список его атрибутов, связанных с директивой страницы:
- Язык
- Расширяется
- импорт
- Тип содержимого
- Информация
- сессия
- isThreadSafe
- автозапуск
- буфер
- IsErrorPage
- pageEncoding
- errorPage
- isELIgonored
Подробнее о каждом атрибуте
- language : определяет язык программирования (базовый язык), используемый на странице.
Синтаксис языка:
<%@ page language="value" %>
Здесь значение - это язык программирования (базовый язык)
Пример:
<%@ page language="java" contentType="text/html; charset=ISO-8859-1"pageEncoding="ISO-8859-1"%>
Объяснение кода: В приведенном выше примере значением языка атрибута является Java, который в данном случае является основным языком. Следовательно, код в тегах выражений будет скомпилирован с использованием компилятора java.
- Расширяет : этот атрибут используется для расширения (наследования) класса, как это делает 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, и расширяет все функции класса.
- Импорт : этот атрибут является наиболее часто используемым атрибутом в атрибутах директив страницы. Он используется для указания контейнеру импортировать другие классы 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 (все служебные классы), и он может использовать все методы следующего класса.
- 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 и для сгенерированной страницы ответа.
- Информация
- Он определяет строку, к которой можно получить доступ с помощью метода 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 ().
- Сессия
- Страница 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.
- isThreadSafe:
- Он определяет потоковую модель для сгенерированного сервлета.
- Он указывает на уровень безопасности потоков, реализованный на странице.
- Его значение по умолчанию истинно, поэтому одновременный
- Мы можем использовать этот атрибут для реализации интерфейса SingleThreadModel в сгенерированном сервлете.
- Если мы установим для него значение false, тогда он будет реализовывать SingleThreadModel и сможет получить доступ к любым общим объектам и может привести к несогласованности.
Синтаксис isThreadSafe:
<% @ page isThreadSafe="true/false" %>
Здесь истина или ложь означает, есть ли синхронизация, затем устанавливается как истина и устанавливается как ложь.
Пример:
<%@ page language="java" contentType="text/html; charset=ISO-8859-1"isThreadSafe="true"%>
Расшифровка кода:
В приведенном выше коде для isThreadSafe установлено значение «true», поэтому синхронизация будет выполнена, и можно будет использовать несколько потоков.
- Автозапуск:
Этот атрибут указывает, что буферизованный вывод должен сбрасываться автоматически или нет, и значение этого атрибута по умолчанию - истина.
Если установлено значение false, буфер не будет сброшен автоматически, а если он заполнен, мы получим исключение.
Если в буфере нет буфера, значит ложь является недопустимой, и буферизация отсутствует, поэтому она будет сброшена автоматически.
Синтаксис autoFlush:
<% @ page autoFlush="true/false" %>
Здесь истина / ложь указывает, должна ли буферизация выполняться или нет.
Пример:
<%@ page language="java" contentType="text/html; charset=ISO-8859-1"autoFlush="false"%>
Расшифровка кода:
В приведенном выше коде для autoflush установлено значение false, и, следовательно, буферизация не будет выполняться, и он вручную сбрасывает вывод.
- Буфер:
- Используя этот атрибут, можно буферизовать объект выходного ответа.
- Мы можем определить размер буферизации, которая будет выполняться с помощью этого атрибута, и размер по умолчанию составляет 8 КБ.
- Он предписывает сервлету записать буфер перед записью в объект ответа.
Синтаксис буфера:
<%@ page buffer="value" %>
Здесь значение представляет размер буфера, который необходимо определить. Если буфера нет, мы можем писать как none, а если мы не указываем какое-либо значение, то значение по умолчанию составляет 8 КБ.
Пример:
<%@ page language="java" contentType="text/html; charset=ISO-8859-1"buffer="16KB"%>
Расшифровка кода:
В приведенном выше коде размер буфера указан как 16 КБ, при этом буфер будет иметь этот размер.
- 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 (описанный в следующем атрибуте), и может обрабатывать исключения.
- Кодирование страницы:
По умолчанию указано «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.
- errorPage:
Синтаксис errorPage:
<%@ page errorPage="value" %>
Здесь значение представляет значение страницы ошибки JSP.
Пример:
<%@ page language="java" contentType="text/html;" pageEncoding="ISO-8859-1"errorPage="errorHandler.jsp"%>
Расшифровка кода:
В приведенном выше коде для обработки исключений у нас есть errroHandler.jsp
- 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 - это определенный пользовательский тег, который можно использовать где угодно.