Директивы JSP

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

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

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

<%@ directive attribute="" %>

Типы директив в JSP

В JSP существует три типа директив:

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

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

1) Директива страницы JSP

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

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

Ниже приведен список атрибутов, связанных с директивой страницы:

  1. Язык
  2. Расширяет
  3. Импортировать
  4. Тип содержимого
  5. info
  6. Сессия
  7. isThreadSafe
  8. автозапуск
  9. буфер
  10. Исеррорпаже
  11. кодировка страницы
  12. страница ошибки
  13. isELIgonored

Подробнее о каждом атрибуте

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

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

<%@ page language="value" %>

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

Это критически важно для анализа и выбора наиболее эффективных ключевых слов для улучшения рейтинга вашего сайта.

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

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

2) Расширяет: этот атрибут используется для расширения (наследования) класса, как это делает JAVA.

Синтаксис расширений:

<%@ page extends="value" %>

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

Это критически важно для анализа и выбора наиболее эффективных ключевых слов для улучшения рейтинга вашего сайта.

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

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

Расшифровка кода: В приведенном выше коде JSP расширяет DemoClass, который находится в пакете demotest, и расширяет все функции класса.

3) Импорт: этот атрибут наиболее часто используется в атрибутах директив страницы. Он используется, чтобы указать контейнеру импортировать другие классы 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 (все служебные классы), и он может использовать все методы следующего класса.

4) тип контента:

  • Он определяет схему кодировки символов, т. е. используется для установки типа контента и набора символов ответа.
  • Тип contentType по умолчанию: "text/html; charset=ISO-8859-1".

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

<%@ page contentType="value" %>

Это критически важно для анализа и выбора наиболее эффективных ключевых слов для улучшения рейтинга вашего сайта.

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

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

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

5) информация

  • Он определяет строку, доступ к которой можно получить с помощью метода 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().

6) Сессия

  • Страница JSP создает сеанс по умолчанию.
  • Иногда нам не нужно создавать сеанс в JSP, и поэтому в этом случае мы можем установить этот атрибут в false. Значение атрибута session по умолчанию — true, и сеанс создается. Когда он установлен в false, мы можем указать компилятору не создавать сеанс по умолчанию.

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

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

Здесь, в этом случае, атрибут сеанса может быть установлен в значение true или false.

Это критически важно для анализа и выбора наиболее эффективных ключевых слов для улучшения рейтинга вашего сайта.

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

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

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

7) 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», поэтому будет выполнена синхронизация и можно будет использовать несколько потоков.

8) Автопромывка:

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

Синтаксис autoFlush:

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

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

Это критически важно для анализа и выбора наиболее эффективных ключевых слов для улучшения рейтинга вашего сайта.

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

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

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

9) Buffer:

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

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

<%@ page buffer="value" %>

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

Это критически важно для анализа и выбора наиболее эффективных ключевых слов для улучшения рейтинга вашего сайта.

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

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

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

10) isErrorPage:

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

11) Кодирование страницы:

Атрибут «pageEncoding» определяет кодировку символов для страницы JSP. По умолчанию указывается «ISO-8859-1», если не указано иное.

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

<%@ page pageEncoding="vaue" %>

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

Это критически важно для анализа и выбора наиболее эффективных ключевых слов для улучшения рейтинга вашего сайта.

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

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

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

12) Страница ошибки:

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

Синтаксис errorPage:

<%@ page errorPage="value" %>

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

Это критически важно для анализа и выбора наиболее эффективных ключевых слов для улучшения рейтинга вашего сайта.

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

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

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

13) игнорируется:

  • 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 имеет значение true и, следовательно, Язык выражений (EL) здесь игнорируется. В примере ниже мы используем четыре атрибута (строка кода 1-2)

Пример с четырьмя атрибутами

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

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

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

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

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

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

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

Результат:

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

2) Директива включения JSP

  • «Директива включения» 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" %>
<!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 (который включен в основной файл)

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

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

Директива_jsp2.jsp:

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

Directive_header_jsp3.jsp:

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

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

Директива JSP Include

Вывод:

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

3) Директива JSP Taglib

  • Директива JSP taglib используется для определения библиотеки тегов с префиксом «taglib», которую мы можем использовать в JSP.
  • Более подробная информация будет рассмотрена в разделе «Пользовательские теги JSP».
  • Директива 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" %>
<!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>

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

Строка кода 3: Здесь «taglib» определяется атрибутами uri и префиксом.

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